Muchos de los ejemplos de esta sección se basan en las expresiones ofrecidas por Dan Ebberts.

Recursos en línea para ejemplos de expresión

Dan Ebberts ofrece expresiones de ejemplo y tutoriales para aprender cómo se trabaja con expresiones en su sitio web Motionscript (en inglés). Por ejemplo, Dan proporciona una excelente página sobre detección de colisión.

Colin Braley ofrece un tutorial y un proyecto de ejemplo en su sitio web que muestra cómo utilizar expresiones para hacer que una capa rechace a otras de forma aparentemente natural.

El foro de AE Enhancers ofrece muchos ejemplos e información útil sobre expresiones, así como secuencias de comandos y ajustes preestablecidos de animación. En esta entrada del foro AE Enhancers, Paul Tuersley ofrece un tutorial y un proyecto de ejemplo que muestra cómo utilizar expresiones para animar varias capas en un enjambre.

Rick Gerard proporciona un ejemplo en su sitio web que muestra el desplazamiento de un objeto cuadrado a lo largo de un suelo de forma que los lados están en contacto con la superficie del suelo.

Carl Larsen ofrece un tutorial de vídeo en el sitio web Creative COW que muestra cómo utilizar expresiones y asociaciones para relacionar la rotación de un conjunto de ruedas en el movimiento horizontal de un vehículo.

Chris Zwar incluye un proyecto de ejemplo en su sitio web para organizar automáticamente vídeos o imágenes fijas en una cuadrícula (como un muro de vídeo). Es posible ajustar fácilmente la posición y el espaciado con reguladores que estén conectados a un sistema de expresiones. Existen tres composiciones en el proyecto: una para imágenes fijas, otra para vídeos y otra para crear un storyboard automático en el que un vídeo se muestre en intervalos definidos por el usuario y se alinee en una cuadrícula.

En el sitio web de JJ Gifford se incluyen varios proyectos de ejemplo que muestran cómo utilizar expresiones.

Maltaannon (Jerzy Drozda, Jr.) proporciona un tutorial de vídeo en su sito web (en inglés) que muestra cómo utilizar expresiones para crear un medidor de volumen utilizando los resultados del comando Convertir audio en fotogramas clave.

Harry Frank proporciona un tutorial en su sitio web graymachine que muestra cómo utilizar expresiones para leer datos desde un archivo de texto externo.

Ejemplo de expresión: Giro de una capa en círculos

Puede crear una expresión sin necesidad de utilizar propiedades de otras capas. Por ejemplo, puede hacer que una capa gire en un círculo perfecto.

  1. Seleccione una capa, presione P para mostrar la propiedad Posición en el panel Línea de tiempo y presione Alt (Windows) u Opción (Mac OS) mientras hace clic en el cronómetro situado a la izquierda del nombre de la propiedad.
  2. Introduzca el texto siguiente en el campo de expresión:
      [(thisComp.width/2), (thisComp.height/2)] + [Math.sin(time)*50, -Math.cos(time)*50]

Ejemplo de expresión: Giro de las manecillas de un reloj

Puede utilizar el icono espiral para vincular valores de rotación entre capas para animar las manecillas de un reloj: mientras la manecilla de la hora se mueve de hora en hora, el minutero realiza la circunferencia completa del reloj. La creación de este tipo de animación llevaría mucho tiempo si tuviera que definir cada fotograma clave en las dos capas de manecillas, pero con el icono espiral puede hacerlo en cuestión de minutos.

  1. Importe o cree dos capas de color sólido largas y estrechas: una manecilla de las horas y un minutero. (Consulte Capas de color sólido y elementos de material de película de color sólido).
  2. Establezca los puntos de anclaje al final de las capas. (Consulte Puntos de anclaje de capas).
  3. Mueva las capas de forma que los puntos de anclaje estén en el centro de la composición. (Consulte Movimiento de capas en espacio).
  4. Defina los fotogramas claves de Giro de la manecilla de las horas. (Consulte Configuración o adición de fotogramas clave).
  5. Seleccione la propiedad Rotación para la manecilla de los minutos y elija Animación > Agregar expresión (MS Windows) o Añadir expresión (Mac OS).
  6. Arrastre el icono espiral de la propiedad Rotación para la manecilla de las horas. Aparece la siguiente expresión:
      thisComp.layer("hour hand").rotation
  7. Para hacer que la manecilla de los minutos gire 12 veces más rápido que la manecilla de las horas, agregue *12 al final de la expresión de la siguiente manera:
      thisComp.layer("hour hand").rotation*12

Ejemplo de expresión: Colocación de una capa entre otras dos

Esta expresión de ejemplo coloca y mantiene una capa a una distancia equilibrada entre otras dos capas.

  1. Empiece con tres capas. (Consulte Creación de capas.)

  2. Anime las posiciones de las dos primeras capas en el panel Línea de tiempo. (Consulte Trazados de movimiento).

  3. Seleccione la tercera capa, presione P para mostrar la propiedad Posición y presione Alt (Windows) u Opción (Mac OS) mientras hace clic en el botón del cronómetro situado a la izquierda del nombre de la propiedad.
  4. Introduzca el texto siguiente en el campo de expresión:
      (thisComp.layer(1).position + thisComp.layer(2).position)/2

Ejemplo de expresión: Creación de una trayectoria de imágenes

Esta expresión de ejemplo ordena a una capa que se sitúe en la misma posición que la capa inmediatamente superior del panel Línea de tiempo, pero retrasada una cantidad específica de tiempo (en este caso, 0,5 segundos). Puede definir expresiones parecidas para las otras propiedades geométricas.

  1. Comience con dos capas de color sólido que estén en escala aproximadamente al 30 % del tamaño de la composición. (Consulte Capas de color sólido y elementos de material de película de color sólido).
  2. Anime la posición de la primera capa. (Consulte Trazados de movimiento).
  3. Seleccione la segunda capa, presione P para mostrar la propiedad Posición y presione Alt (Windows) u Opción (Mac OS) mientras hace clic en el botón del cronómetro situado a la izquierda del nombre de la propiedad.
  4. Introduzca el texto siguiente en el campo de expresión:
      thisComp.layer(thisLayer, -1).position.valueAtTime(time - .5)
  5. Duplique la última capa cinco veces seleccionándola y pulsando Ctrl+D (Windows) o Comando+D (Mac OS) cinco veces.

Todas las capas siguen la misma trayectoria y cada una de ellas se retrasa 0,5 segundos con relación a la anterior.

Dan Ebberts incluye más ejemplos y técnicas para la creación de rastros de imágenes en su sitio web MotionScript (en inglés).

Ejemplo de expresión: Creación de un abombado entre dos capas

Esta expresión de ejemplo sincroniza el argumento Centro del abombado del efecto Abombar de una capa con la posición de otra capa. Por ejemplo, puede crear un efecto que parezca una lupa que se desplaza sobre una capa y que haga que el contenido situado bajo la lupa se abombe a medida que se mueve la lente (es decir, la capa superpuesta). Esta expresión utiliza el método fromWorld, que hace que la expresión funcione correctamente independientemente de si se mueve o no la capa de la lupa o la capa subyacente. Puede girar o escalar la capa subyacente y la expresión permanecerá intacta.

También puede utilizar otros efectos, como Rizo, con esta expresión.

  1. Empiece con dos capas. Convierta una capa en una lupa u objeto similar con un orificio en el medio y asígnele el nombre de Lupa. (Consulte Creación de capas).
  2. Anime la posición de la capa de la lupa. (Consulte Trazados de movimiento).
  3. Aplique el efecto Abombar a la otra capa. (Consulte Aplicar un efecto o ajuste preestablecido de animación).
  4. Seleccione la propiedad Centro del abombado del efecto Abombar en el panel Línea de tiempo y elija Animación > Agregar expresión, o bien, presione Alt y haga clic (Windows) o presione Opción y haga clic en el botón del cronómetro para la propiedad.
  5. Seleccione el texto de la expresión predeterminada y escriba lo siguiente:
      fromWorld(thisComp.layer("Magnifier").position)

Ejemplo de expresión: Opacidad de transición de una capa 3D en función de la distancia desde la cámara

  1. Aplique la siguiente expresión a la propiedad Opacidad de una capa 3D:
      startFade = 500; // Start fade 500 pixels from camera. 
      endFade = 1500;  // End fade 1500 pixels from camera. 
      try
      { // Check whether there's a camera
          C = thisComp.activeCamera.toWorld([0,0,0]); 
      }
      catch(err)
      { // No camera, so assume 50mm
          w = thisComp.width * thisComp.pixelAspect; 
          z = (w/2)/Math.tan(degreesToRadians(19.799)); 
          C = [0,0,-z]; 
      } 
      P = toWorld(anchorPoint); 
      d = length(C,P); 
      linear(d,startFade,endFade,100,0)

    El fundido comienza a una distancia de 500 píxeles de la cámara y se completa a 1.500 píxeles de la cámara. El método de interpolación lineal se emplea para asignar valores de distancia a valores de opacidad.

Ejemplo de expresión: Invisibilización una capa 3D si se sitúa de forma opuesta a la cámara

  1. Aplique la siguiente expresión a la propiedad Opacidad de una capa 3D:
      if (toCompVec([0, 0, 1])[2] > 0 ) value else 0

Dan Ebberts explica esta expresión en su sitio web Motionscript.

Ejemplo de expresión: Volteo horizontal de la capa si se sitúa de forma opuesta a la cámara

  1. Aplique la siguiente expresión a la propiedad Escala de una capa 3D:
      if (toCompVec([0, 0, 1])[2] > 0 ) value else [-value[0], value[1], value[2]]

Ejemplo de expresión: Animación de una escala en cada marcador de la capa

  1. Aplique la siguiente expresión a una propiedad Escala para hacer que una capa tiemble en cada marcador:
      n = 0; 
      t = 0; 
      if (marker.numKeys > 0){ 
          n = marker.nearestKey(time).index; 
          if (marker.key(n).time > time) n--; 
      } 
      if (n > 0) t = time - marker.key(n).time; 
        
      amp = 15; 
      freq = 5; 
      decay = 3.0; 
        
      angle = freq * 2 * Math.PI * t; 
      scaleFact = (100 + amp * Math.sin(angle) / Math.exp(decay * t)) / 100; 
      [value[0] * scaleFact, value[1] / scaleFact];

Ejemplo de expresión: Inicio o parada de la ondulación en un momento determinado

Puede utilizar cualquier expresión en el lugar de la expresión ondulación utilizada aquí para comenzar y finalizar la influencia de cualquier expresión en un momento determinado.

Aplique la siguiente expresión a una propiedad para ondularla comenzando en el tiempo 2 segundos:

timeToStart = 2;
if (time > timeToStart)
{
  wiggle(3,25);
}
else
{
  value;
}

Aplique la siguiente expresión a una propiedad para parar la ondulación en el tiempo 4 segundos:

timeToStop = 4;
if (time > timeToStop)
{
  value;
}
else
{
  wiggle(3,25);
}

Aplique la siguiente expresión a una propiedad para comenzar a ondularla en el tiempo 2 segundos y dejar de ondularla en 4 segundos:

timeToStart = 2;
timeToStop = 4;
if ((time > timeToStart) && (time < timeToStop))
{
  wiggle(3,25);
}
else
{
  value;
}

Ejemplo de expresión: Coincidencia del plano focal de la cámara con otra capa

  1. Aplique la siguiente expresión a la propiedad Distancia de enfoque de una capa de cámara para que coincida su distancia focal con la distancia del punto de anclaje de una capa denominada "target":
      target = thisComp.layer("target"); 
      V1 = target.toWorld(target.anchorPoint) - toWorld([0,0,0]); 
      V2 = toWorldVec([0,0,1]); 
      dot(V1,V2);

Dan Ebberts explica este ejemplo de expresión en detalle en su sitio Web de Motionscript.

Esta obra está autorizada con arreglo a la licencia de Reconocimiento-NoComercial-CompartirIgual 3.0 Unported de Creative Commons.  Los términos de Creative Commons no cubren las publicaciones en Twitter™ y Facebook.

Avisos legales   |   Política de privacidad en línea