Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Expresiones PDF
Expresiones PDF
Las expresiones son lneas de cdigo que le permiten establecer animaciones ms o menos
sofisticadas, reduciendo al mnimo las tareas repetitivas de produccin de fotogramas clave que
requeriran en un proceso normal. Producen un enlace entre propiedades y efectos dentro de una misma
capa o entre diferentes capas. Le resultar fcil copiar valores de animacin de una propiedad o efecto,
para reproducirlos en otras capas o propiedades, o tomar los valores de otra propiedad para sincronizarlo
con otra u otras propiedades o efectos.
Supongamos que buscamos una animacin de un objeto que proyecta una sombra y que se desplaza por
la composicin al tiempo que gira. Si quiere animar todo el conjunto, necesitar un montn de fotogramas
clave. A travs de las expresiones, conseguiremos que todo se mueva de la forma apropiada con un
mnimo esfuerzo en la produccin de fotogramas clave.
El lenguaje de expresiones de After Effects est basado en JavaScript 1.2, aunque utiliza solo el ncleo de
este lenguaje y lo adapta a sus necesidades, sustituyendo las extensiones relacionadas con la Web por
otras propias de la aplicacin. Si tiene conocimientos de JavaScript le resultar muy sencillo dominar esta
potente herramienta. Si no conoce nada de este lenguaje, no se apure, an podr crear expresiones ms o
menos sofisticadas sin escribir una lnea de cdigo, o alterando mnimamente expresiones existentes para
adaptarlas a sus necesidades. Es decir, dispone de dos maneras de crear expresiones: bien escribiendo el
cdigo de forma manual; o bien, utilizando un proceso semiautomtico con ayuda del icono espiral (Pick
Whip). En este captulo abordaremos las expresiones en sus aspectos ms sencillos, pues profundizar ms
saldra del alcance de esta gua.
Nota: Para abrir, en la ventana Lnea de Tiempo, solo las propiedades de una capa con expresin
14.1.1.
aplicada pulseUsar el icono
dos veces espiral
seguidas para
la tecla E. crear expresiones
Esta utilidad le permite poder hacer uso de las expresiones sin necesidad de saber acerca de cdigos
JavaScript. Relaciona propiedades entre capas copiando sus valores y creando automticamente
expresiones. Puede relacionar los valores de la misma propiedad o efecto en distintas capas para evitar la
repeticin de los fotogramas clave con un importante ahorro de tiempo, o relacionar valores de
propiedades o efectos diferentes dentro de una misma capa o de otra distinta para sincronizar acciones.
Por ejemplo, imagine que varios objetos o capas tienen que hacer un mismo recorrido en la composicin.
nicamente necesitar establecer los fotogramas clave para una de ellas y despus, por medio de este
icono podr copiar fcilmente los valores de la propiedad de posicin. Si posteriormente modifica la
expresin creada, aumenta las posibilidades de manipulacin de la animacin. Por ejemplo, podra
introducir un retardo en el tiempo para que una capa comenzase unos segundos despus que la otra, o
podra reducir la velocidad para que la capa haga el recorrido a una velocidad diferente.
Veamos el mtodo a seguir para usar este elemento:
1. Seleccione, en la ventana Lnea de Tiempo, la propiedad que llevar la expresin y ejecute el
comando del men principal Animation>Add Expression.
2. Haga un clic y arrastre desde el icono espiral (Pick Whip) hasta la propiedad de la cual
quiere copiar los valores. En el campo de expresin de la ventana aparecer la expresin.
Vase la figura 13.2.
Si apunt con el icono espiral (Pick Whip) al nombre de la propiedad la expresin resultante mostrar
los valores en conjunto de la propiedad. Si por el contrario apunt a uno de los valores en la expresin se
mostrar detallado cada uno de los valores. Tenga en cuenta que no todas las propiedades tienen un
mismo nmero de variables. Por ejemplo, la propiedad de posicin muestra los valores X e Y para capas 2D
o X, Y, Z para capas 3D, mientras que la propiedad de opacidad tiene un nico valor.
Es posible establecer ms de un enlace con el icono espiral (Pick Whip), aunque para separar las
expresiones debe previamente fijar un punto y coma que separe las lneas. Las nuevas expresiones se
situarn inmediatamente detrs del cursor en el campo de expresiones, cuando ste se encuentre all. Si no
estuviera activo el campo, entonces la nueva expresin reemplazar al texto previo. Si el campo est activo
y con texto seleccionado, este se reemplaza con la nueva propiedad marcada por el icono espiral.
Una vez generadas las expresiones automticas con este elemento, puede modificarlas para adaptarlas a
sus necesidades. La manera de hacerlo es escribir directamente sobre la expresin en el campo de
expresiones de la ventana Lnea de Tiempo. Uno de los cambios ms comunes y sencillos es la
introduccin de operadores matemticos para incrementar o disminuir la accin del cdigo. As, puede
utilizar el signo (+) para sumar, el signo (-) para restar, el signo (/) para dividir y el signo (*) para multiplicar.
No son las nicas posibilidades, puede utilizar funciones matemticas ms complejas y disfrutar de mayor
libertad de accin. Por ejemplo, la funcin (*-1) consigue que la accin se aplique a la inversa.
Probablemente entienda esto mejor con un ejemplo sencillo: imitaremos los movimientos de las manecillas
de un reloj. Tenemos cuatro capas: la esfera del reloj, la aguja de las horas, la de los minutos y la de los
segundos que corre en una esfera ms pequea. En realidad lo que hay que modificar es la propiedad de
rotacin. Pero previamente tendremos que cambiar el eje de anclaje para que el giro se produzca desde la
base de la aguja, que coincidir, obviamente, con el centro del reloj, y con el centro del crculo pequeo en
el caso del segundero. Podramos lograr este efecto animando la rotacin de las tres agujas de forma
independiente, de manera que las velocidades fueran distintas en cada una de ellas. Sin embargo,
comprobar que usando una expresin muy simple lograr el mismo objetivo de una manera mucho ms
rpida y sencilla, sin necesidad siquiera de escribir una lnea de cdigo.
1. Establecemos para la capa que contiene la aguja de los minutos los fotogramas clave para
hacerla rotar 360. Por ejemplo, en tiempo 0 segundos fijamos un valor de rotacin 0 y en el
tiempo 6 segundos, valor de rotacin 360 para el 2 fotograma clave (o 1 en el nmero de
revoluciones).
2. Animamos ahora la capa de la aguja de las horas, pero en lugar de crear fotogramas clave
aplicaremos una expresin: abra la propiedad de rotacin y ejecute el comando del men
principal Animation>Add Expresin.
3. Hecho esto, hay que relacionar la propiedad de rotacin de la capa anterior con esta ltima.
Emplearemos el icono espiral (Pick Whip) de las propiedades de la expresin haciendo un
clic y arrastrando hasta la propiedad de rotacin de la capa con la aguja de los minutos, la
que tena los fotogramas clave. Observe que, tras efectuar esta accin, aparece en el campo
de expresin una lnea de cdigo como la siguiente: thisComp.layer("minutos.jpg").rotation.
Vase la figura 14.2.
4. Si no alteramos este cdigo ambas capas rotarn al unsono, pero nosotros queremos retrasar
la velocidad de la aguja de las horas. Con este objetivo aadiremos, escribiendo directamente
en la expresin, los caracteres /12. As lograremos que la velocidad de la aguja se reduzca, de
manera que, cada vez que el minutero d una vuelta completa, la aguja de las horas avanzar
una hora. La expresin debe quedar: thisComp.layer("minutos.jpg").rotation/12.
5. Repitamos el mismo proceso para la aguja de los segundos. Abra su propiedad de rotacin y
aplique una expresin (Animation>Add Expression). Arrastre el icono espiral (Pick Whip)
hacia la propiedad de rotacin del minutero. En esta ocasin la aguja de los segundos debera
moverse ms rpido que la de los minutos, 60 veces ms deprisa. Entonces modificaremos la
expresin aadiendo *60 y lo habremos conseguido. As de fcil!
Nota: Si precisa ms espacio en el campo de expresiones para ver la totalidad de las lneas de
cdigo, puede ampliar la altura del campo situando el cursor en el lado inferior y arrastrando hacia
abajo.
El lenguaje de expresiones se utiliza para relacionar objetos o propiedades con unos valores numricos.
Para acceder a estos se usa una cadena de objetos u operadores separados por un punto. Una vez que se
llega a un valor numrico, a una matriz de nmeros o a un booleano (como verdadero o falso) se concluye
la cadena y no se pueden aadir ms atributos, aunque s se pueden aadir operadores matemticos como
/,*,-,+, etc.
Objetos globales
Todas las expresiones comienzan con un objeto global y el objeto global por defecto, es siempre la
capa en la que se escribi la expresin. De modo que en las expresiones se puede obviar su presencia. Por
ejemplo, si queremos "llamar" a los valores de la propiedad rotacin de una capa denominada "capa1",
podramos utilizar cualquiera de las siguientes expresiones, todas equivalentes:
thisComp.layer("capa1").rotation
thisLayer.rotation
rotation
Tambin podramos escribir directamente un valor para la propiedad suprimiendo incluso la palabra
Rotation, pues tambin est implcita. En este caso si escribimos por ejemplo nicamente 90 en el campo de
expresiones, hace referencia al valor de la propiedad de rotacin para esa capa, y este ser su valor fijo.
Unas lneas adelante veremos cmo podemos introducir variables.
Si los valores a los que queremos "llamar" estn en otra capa, deberemos sustituir el nombre "capa1" en la
primera lnea por el de la nueva capa. En esta ocasin esta lnea sera la nica vlida.
Echemos un vistazo a la expresin creada en el apartado anterior con el icono espiral (Pick Whip), para
tratar de entender cuales eran sus instrucciones:
thisComp.layer("minutos.jpg").rotation.
Esta expresin relaciona la capa y la propiedad actual con la capa de nombre "minutos.jpg" dentro de la
composicin activa (thisComp), y copia los valores (fotogramas clave) de la propiedad de rotacin en la
capa con la expresin. Si recuerda el ejemplo anterior, con esta expresin conseguamos que las dos agujas
rotaran al unsono. Recuerde tambin, que vimos cmo podamos introducir un operador para cambiar la
velocidad, en el ejemplo anterior aadimos /12 para reducir la velocidad con respecto a la otra aguja.
Matrices y dimensiones
Los valores de las propiedades se representan por nmeros, matrices de ellos o por vectores, cuando
indican una direccin, aunque en realidad a estos ltimos After Effects los trata igual que cualquier otra
matriz.
Las matrices aparecen como nmeros separados por una coma y metidos entre corchetes. La cantidad de
elementos de la matriz indica la dimensin de la propiedad. As, tendremos hasta un total de cuatro: una
dimensin para aquellas propiedades que muestran un valor nico, como por ejemplo las propiedades de
rotacin y opacidad; dos dimensiones para las propiedades con dos valores, como pueden ser la posicin
de una capa 2D (ejes X e Y), la escala (altura y anchura) y el punto de anclaje (X,Y); tres dimensiones para
las propiedades anteriores en capas 3D (X,Y,Z); y cuatro dimensiones para el color que presenta cuatro
canales o variables (rojo, verde, azul y alfa).
Por ejemplo, una matriz de dos dimensiones poda ser:
[30,100]
matriz que podra representar los valores de posicin (x,y) de una capa.
Tambin podemos utilizar los valores independientes, para ello aadimos al nombre de la composicin [0]
para el valor de la X, [1] para el valor de la Y y [2] para el valor de la Z.
Position[0] corresponde pues al valor X, en el ejemplo anterior sera igual a 30.
Position[1] corresponde al valor Y, en nuestro ejemplo sera 100.
Es posible establecer variables:
X=position[0];
[X, 45]
Una expresin equivalente sera:
[position[0],45]
Estas seran las coordenadas de posicin para la capa con la expresin. Podramos relacionarla con el valor
del eje X de otra capa, para ello deberamos escribir una expresin como la siguiente:
[thisComp.layer("capa1").position[0],45]
Con estas instrucciones logramos que el valor en el eje X de la capa sea el valor X de otra capa de nombre
"capa1", mientras que el eje Y permanece fijo.
Si quisiramos que ambos parmetros fueran variables y que cada uno dependiera de una capa distinta
podramos escribir la siguiente lnea:
X= thisComp.layer("capa1").position[0];
Y= thisComp.layer("capa2").position[1];
[X,Y]
O expresado de otra forma:
[thisComp.layer("capa1").position[0], thisComp.layer("capa2").position[1]]
Hemos utilizado el nombre de la capa para hacer referencia a ella, pero tambin es posible usar un nmero
en el orden de apilamiento en la ventana Lnea de Tiempo. El nmero 1 corresponde con la capa superior,
el 2 con la segunda y as sucesivamente. Tiene el inconveniente de que si cambiamos el orden de
apilamiento la accin de la expresin se puede ver modificada.
As pues, es posible utilizar la expresin thisComp.layer(1).position para relacionar los valores de posicin
de la primera capa en el orden de apilamiento con la capa que contiene la expresin.