After Effects - Plantilla EG: De 2 fotogramas clave, solo quiero cambiar el segundo en EG, ¡ayuda!

Estoy tratando de crear una nueva plantilla de gráficos esenciales en After Effects.

Tengo una animación (en su forma más básica, es un rectángulo que se expande desde un conjunto, de tamaño pequeño a, ¡con suerte!, un tamaño definido por el usuario) que se puede controlar moviendo 4 controles deslizantes (me costó un poco, pero tengo un Nulo superior izquierdo y un Nulo inferior derecho y los 4 controles deslizantes controlan sus posiciones (TL X & Y y BR X & Y), que, a su vez, determinan las posiciones de las cuatro esquinas del rectángulo).

Sin embargo, después de haber comenzado a configurar la plantilla, estoy un poco preocupado de que esto no vaya a funcionar. Mover el control deslizante desde dentro de la ventana de la plantilla solo establece nuevos fotogramas clave (por lo que la animación está por todas partes) y, pensándolo ahora, incluso si usar la plantilla en PP no crea nuevos fotogramas clave, ¿cómo lo sabrá el panel EG? ¿Qué fotograma clave (si lo hay) afectar?

Supongo que lo que realmente me pregunto es si podemos, usando una expresión, hacer que los controles deslizantes afecten solo al ÚLTIMO fotograma clave de una animación (no soy un genio de las expresiones, pero no puedo encontrar nada así siguiendo algunos mucho buscando en Google y no puedo encontrar una manera de escribir esto yo mismo).

Además, si cree que podría haber una manera más fácil de hacer algo de esto, ¡hágamelo saber!

Respuestas (1)

Para usar el valor de fotograma clave de una propiedad en una expresión, hay un valueatributo. Y las propiedades también tienen el key()método para acceder a sus claves, así como el numKeysatributo para saber cuántas claves tiene la propiedad. timePor último, está el atributo global .

Así que ahora que hemos ensamblado la lista de ingredientes, así es como podría ponerlos todos juntos. Esta expresión utilizará el valor del fotograma clave hasta el último fotograma clave y luego entregará las riendas al resultado de una expresión, en este caso el valor del control deslizante:

// link to your slider, or any calculated value:
var sliderVal = effect("Slider Control")("Slider"); 
var lastKey = key(numKeys);
if (time <= lastKey.time){ // before the last keyframe
  // use the keyframe value before the last keyframe
  value;
} else {  // after the last keyframe
  // control using the sliders, or any expression
  sliderVal;
}

Por supuesto, esto saltará del valor del fotograma clave al valor de la expresión instantáneamente en el último fotograma clave. Puede interpolar entre los valores utilizando una de las funciones de interpolación. Entonces, para interpolar entre el valor del fotograma clave y el valor de la expresión entre el penúltimo fotograma clave y el último fotograma clave, puede usar:

var sliderVal = effect("Slider Control")("Slider"); 
var k2 = key(numKeys); //last key
var k1 = key(numKeys - 1); //second last key    
// linear can take 5 arguments: 
// time, start time, end time, start val, end val
// and interpolates between start val and end val
linear(time, k1.time, k2.time, value, sliderVal)

También puede aprovechar las funciones ease()de interpolación easeIn()o easeOut(), que puede sustituir por linear().

Wow, eso es increíble, ¡muchas gracias! No estoy en condiciones de probar esto en este momento, pero cuando lo haga, les dejaré saber cómo va. ¡Gracias de nuevo!