Skip to main content

Keyframes, Graph Editor e Timing

Keyframe é o que você coloca. Timing é o que você sente. Graph editor é onde a diferença entre os dois é feita.

Keyframes

Marcação de um valor num momento específico. O after interpola o que tem no meio.

  1. Leva a agulha pro frame desejado
  2. Clica no reloginho ao lado da propriedade
  3. Vai pra outro frame, muda o valor — próximos keyframes saem automático

Pra adicionar keyframe sem mudar valor: Alt+Shift+P (position), Alt+Shift+S (scale), etc. Ou clica no losanguinho na esquerda da propriedade.

Interpolação

Botão direito num keyframe, todas as opções aparecem. As que você vai usar todo dia:

Graph Editor

Shift+F3. Aqui é onde a animação vira de fato sua.

O F9 é só o começo — o Easy Ease padrão é simétrico: acelera e desacelera na mesma medida. Na prática fica “balançando”. O graph editor é onde você quebra essa simetria e cria curvas com intenção.

Handles

Cada keyframe bezier tem dois handles. Arrastar muda a curva:

  • Juntos (padrão): mexe num, o outro espelha
  • Alt+drag: quebra o link, cada handle independente

Entrada rápida + saída lenta

O padrão mais usado em motion design. Handle de saída curto (perto do keyframe) = arranca rápido. Handle de entrada longo = desacelera devagar. Experimenta e você nunca mais volta pro Easy Ease simétrico.

Overshoot

Ultrapassa o destino antes de recuar. Dá energia e vida à animação.

Não precisa de um terceiro keyframe — dá pra fazer com 2 keyframes no value graph. Puxa o handle do keyframe final pra além do valor destino. A curva ultrapassa e volta naturalmente.

Não quer fazer na mão? Expressão de bounce

Cola isso na propriedade animada. Calcula o bounce automaticamente com base na velocidade dos keyframes:

n = 0;
if (numKeys > 0) {
n = nearestKey(time).index;
if (key(n).time > time) n--;
}
if (n == 0) { t = 0; }
else { t = time - key(n).time; }
if (n > 0) {
v = velocityAtTime(key(n).time - thisComp.frameDuration / 10);
amp = 0.05; // intensidade
freq = 4.0; // frequência
decay = 6.0; // quão rápido amortece
value + v * amp * Math.sin(freq * t * 2 * Math.PI) / Math.exp(decay * t);
} else { value; }

Timing

Distância em frames entre os keyframes. Não tem fórmula, só referência:

açãoframes
impacto / snap4-8
antecipação3-5
movimento expressivo20-30
acomodação (follow through)5-8

Depende de onde vai rodar

Timing pra reel no Vimeo é diferente de animação de UI num app. Contexto muda tudo. Esses valores são ponto de partida, não lei.

Offset entre elementos: em vez de tudo entrar junto, 3-5 frames de delay entre cada elemento cria muito mais ritmo. Shift+Alt+arrastar na timeline move os keyframes de uma layer de vez.

Pra delay automático em múltiplas layers, cola isso na propriedade (cada layer pega o valor da anterior com delay):

delay = 3; // frames
d = delay * thisComp.frameDuration * (index - 1);
valueAtTime(time - d)

Referência rápida de easing

Não existe certo, mas existe convencional:

contextoeasing
UI / interfaceentrada rápida, saída muito lenta
título / heroentrada dramática, overshoot suave
backgroundlento, quase linear
ícone / microrápido com bounce leve
textooffset entre caracteres, entrada rápida

Plugins que valem

Atalhos

  • F9 — Easy Ease
  • Shift+F3 — abre/fecha o graph editor
  • J / K — pula pro keyframe anterior/próximo
  • PageUp/PageDown — move keyframe 1 frame
  • Shift+PageUp/PageDown — move keyframe 10 frames
  • Alt+Shift+P/S/R/T/A — adiciona keyframe da propriedade sem mudar valor