¿Cómo vincular el inicio y la pausa de una animación a una altura específica de un objeto nulo?

Intentaré explicar un poco más en profundidad, estoy haciendo un conjunto de animaciones para un sitio web y el cliente esencialmente quiere una vista previa de cómo reacciona cada elemento entre sí a medida que se desplaza hacia abajo en la página. No tengo experiencia con el desarrollo de sitios web y eso está bien para este trabajo, ya que todo lo que hago es configurar una vista previa interactiva para el desarrollador.

Hasta ahora he relacionado todos los elementos con un objeto nulo y el valor de posición Y de ese nulo con los controles deslizantes y hasta ahora todo bien.

Ahora, donde estoy perdido o, de hecho, confundido si es posible dentro de AE ​​es configurar cada elemento de animación para comenzar su secuencia una vez que desplazo el control deslizante a un valor específico. No estoy muy familiarizado con las expresiones, por lo que cualquier ayuda será apreciada.

Si necesita que le explique con más detalle, pregunte, espero haber tratado de aclarar lo que estoy preguntando 👍🏽

Respuestas (1)

Debe proporcionar un poco más de detalles, pero si desea que una expresión ocurra solo cuando un control deslizante está por encima de cierto valor, puede usar if(something > somethingElse){do stuff here}.

Temporizar una animación para que comience en ese punto es más complicado. Las expresiones no pueden almacenar variables; simplemente evalúan cada fotograma. Entonces, para saber qué tan lejos debe estar la animación de la acción, debe calcular el primer cuadro en el que la propiedad superó el umbral. Puedes hacer esto con un bucle:

var propertyToWatch = thisComp.layer("someLayer").someProperty;
var threshold = 12345;
if (propertyToWatch > threshold){ // above the threshold, time to do stuff
    var t = 0;
    // now search for the time when the property went above the threshold
    while (t <= thisComp.duration && propertyToWatch.valueAtTime(t) < threshold){
        t += thisComp.frameDuration; //add one frame
    }
    // t now equals the time when the property went above the threshold.
    // so the animation's relative age is time - t
    var animationAge = time - t;
    //do the animation stuff here, using animationAge as the time constant
}

Esta expresión se volverá progresivamente más lenta para calcular a medida que la secuencia envejece, porque el whileciclo interno debe evaluarse para cada cuadro anterior. Pero, por lo general, solo es un problema si tiene muchas capas con este tipo de expresión, o si su compilación dura media hora.