Loop expression
Em vez de duplicar keyframes, uma linha de código faz o ciclo rodar pra sempre.
loopOut(): repetindo pro futuro
Repete os keyframes para frente no tempo. A layer precisa ter pelo menos 2 keyframes.
loopOut() // padrão: "cycle"loopOut("cycle") // repete do inícioloopOut("pingpong") // vai e voltaloopOut("continue") // continua na velocidade do último keyframeloopOut("offset") // repete com offset acumulativoloopIn(): repetindo pro passado
loopIn("cycle")loopIn("pingpong")Os tipos
cycle: repete do início ao fim e recomeça. Para loop perfeito, o valor do primeiro e último keyframe devem ser iguais. Senão tem um salto na transição.
pingpong: vai até o final e retrocede. Não precisa que primeiro e último sejam iguais.
loopOut("pingpong") // ícone que pulsa entre 100% e 110%offset: a cada repetição, adiciona o delta entre início e fim. Para movimento contínuo:
// keyframes: 0° no frame 0, 360° no frame 30loopOut("offset")// gira pra sempre sem voltar ao 0continue: após o último keyframe, mantém a velocidade. Bola que para de ser animada mas continua rolando.
Número de ciclos
loopOut("cycle", 2) // repete só 2 vezesloopOut("pingpong", 3) // vai e vem 3 vezesLoop com stagger por index
A forma mais prática de deslocar o timing entre layers é usar valueAtTime numa layer master:
// layer 1 (master): keyframes normais + loopOut("cycle")// layers 2, 3, 4... (escravas):var delay = thisLayer.index * 0.1;thisComp.layer("Layer 1").transform.position.valueAtTime(time - delay)