Así que estamos haciendo una animación 2D. Tenemos recursos de personajes en PSD.
Tenemos una compilación de "personaje" que contiene lo siguiente: compilación de "ojos", compilación de "boca" y compilación de "cuerpo". "Cuerpo" tiene el ciclo de caminata de 2 segundos del personaje. Que se reasigna en el tiempo a un bucle en "Carácter". Pero a medida que el personaje camina, su cuerpo se mueve hacia arriba y hacia abajo. El problema comienza ahí: tenemos que sincronizar "Ojos" y "Boca" con el movimiento hacia arriba y hacia abajo del cuerpo. Parentear la posición de dichas capas con la posición del activo del cuerpo no es una opción, porque el activo del cuerpo tiene solo 2 segundos de animación. Después de eso, "Boca" y "Ojos" se detuvieron dondequiera que estuvieran.
Creo que debe haber una manera de hacer esto con expresiones. Pero como no somos un estudio experto en código, no podemos sentarnos y escribir uno.
¿Cómo podemos lograr tal objetivo?
Gracias por la ayuda.
Editar: puede descargar nuestra compilación desde aquí: http://www.mediafire.com/download/v255kgid7ej56m0/walk.zip
Si desea vincular ciertas propiedades a través de varias composiciones, solo puede hacerlo con expresiones. Sin embargo, no son realmente difíciles y es una cuestión de 1-2 líneas.
Fe para obtener la posición de una capa en una composición diferente, puede hacer esto:
comp("Comp Name").layer("Layer Name").transform.position
Simplemente haga clic en el cronómetro de posición de la capa a la que desea aplicar esa posición e ingrese ese comando. Para descomponerlo. Esto selecciona primero la composición que desea por nombre y luego selecciona la capa que desea dentro de esa composición:
comp("Comp Name").layer("Layer Name")
Esta parte dice que desea un valor del transform
menú y el nombre del valor es position
. La posición también podría ser simplemente rotación o cualquier otra propiedad:
.transform.position
Tenga en cuenta que a menudo obtiene varios valores a la vez. Por ejemplo, la posición puede tener 2 o 3 valores dependiendo de si la capa es 2D o 3D. Estos múltiples valores se te dan en algo llamado matriz o vector. Lo que viene ahora solo es necesario si desea un control de eje independiente y no el valor de posición de los 2 o 3 ejes aplicados a su capa. Entonces, para obtener solo la posición del eje y, puede hacer esto:
y = comp("Comp 1").layer("layer1").transform.position[1];
[transform.position[0],y]
El nombre de la variable inventada y en este caso obtiene el valor del eje y de layer1
asignado. agregando [1]
al final de position
. Usar [0]
te daría x y [2]
te daría z.
Esta parte es lo que llamas el valor de retorno. Lo escribes en forma de matriz/vector. Significado [x-axis-value,y-axis-value]
o [x-axis,y-axis,z-axis]
. transform.position[0]
solo significa que quiero el valor x de ESTA capa en la que estoy ingresando la expresión. Así que aún puede controlar ese eje manualmente.
[transform.position[0],y]
Para tener en cuenta la reasignación de tiempo, deberá aplicar la misma reasignación a comp2 que aplicó a comp1. Si eso no es lo que buscas, es posible que tenga que ver un proyecto de ejemplo.
Editar: Entonces, si usa la reasignación de tiempo para reproducir capas y no para ajustar su animación, no debe usarla en esta situación. Para mantener un mejor control, debe usar una expresión simple en los activos animados de su composición en bucle para reproducir su animación.
loopOut(type = "cycle", numKeyFrame = 0);
Agregue esto a cada propiedad de capa que esté animada y haga que la longitud de la compilación sea tan larga como necesite, su animación de 2 segundos ahora se repetirá mientras dure su composición, solo tiene que estirar la longitud de las capas a la nueva longitud de la compilación. Esto resuelve tu problema.
Si tiene más subcomposiciones en su subcomposición, también tendrá que aumentar su longitud, por supuesto, para poder extenderlas hasta el final de su composición principal.
Para obtener más información sobre esta expresión, consulte esto: http://provideocoalition.com/pvcexclusive/story/expression_shorts_-_loop
timonsku
Gokce Ozan