time e framerate
timeé a variável mais fundamental das expressões. Entender como o tempo funciona abre a porta pra animação procedural sem nenhum keyframe.
A variável time
Tempo atual da comp em segundos. No frame 0, time = 0. No frame 30 de uma comp a 30fps, time = 1.0.
// rotação que cresce com o tempotime * 90 // 90° por segundo
// position X que move com o tempo[time * 200, 540] // 200px/s pra direitaframeDuration e frameRate
thisComp.frameDuration // duração de um frame em segundos (1/24 = 0.0416...)thisComp.frameRate // frames por segundo (24, 30, 60)// frames → segundosvar frames = 15;var seconds = frames * thisComp.frameDuration;
// segundos → framesvar frameAtual = Math.round(time * thisComp.frameRate);Movimentos baseados em tempo
// rotação contínua: 1 volta por segundotime * 360
// controlada por slidervar speed = thisComp.layer("CONTROLS").effect("Rotation Speed")("Slider");time * 360 * speed// oscilação entre -50 e 50 com período de 2 segundosvar amplitude = 50;var frequency = 0.5;Math.sin(time * frequency * Math.PI * 2) * amplitude// contador de frames no source textMath.floor(time * thisComp.frameRate).toString()inPoint e outPoint
thisLayer.inPoint // quando a layer começathisLayer.outPoint // quando a layer termina// tempo relativo ao início da layervar t = time - inPoint;// t = 0 quando a layer começa, independente de onde está na timelineAnimações baseadas em t em vez de time sempre começam do zero, independente de onde a layer está posicionada na timeline.