Communitygithub.com

itswenxin/ae-gsap-motion

Traduza lógicas de animação GreenSock/GSAP para keyframes nativos do After Effects, nulls de controle, animadores de texto, expressões e ExtendScript. Use após o AEMotion quando o usuário solicitar animação profissional no estilo GSAP, sequenciamento GreenSock, padrões timeline/stagger/ease/scrub/Flip/SplitText no AE, ou pedir para converter ideias de movimento GSAP em implementação no AE.

O que é ae-gsap-motion?

Esta skill traduz a gramática de animação do GreenSock/GSAP para implementações nativas do Adobe After Effects (AE). Embora o GSAP não seja executado no AE, a skill converte seus conceitos - como `gsap.to()`, `gsap.fromTo()`, timelines, eases, stagger, ScrollTrigger e plugins - em keyframes, expressões, nulls de controle, animadores de texto e scripts ExtendScript. Ela é útil para desenvolvedores e motion designers que desejam aplicar a lógica e o fluxo de trabalho do GSAP (conhecido por sua sintaxe concisa, facilidade de uso e alta performance) em projetos do AE, onde a animação precisa ser feita com ferramentas nativas. A skill fornece mapeamentos detalhados: cada conceito do GSAP é associado a uma técnica correspondente no AE (por exemplo, `ease` vira curvas de interpolação, `stagger` vira offsets de layer, `ScrollTrigger` vira sliders de progresso). Também inclui regras de performance e um fluxo de construção passo a passo para garantir resultados profissionais e confiáveis.

Funciona com✓Claude Code✓Codex CLI~Cursor
npx skills add https://github.com/itswenxin/motion-agent/tree/HEAD/agent-skills/ae-gsap-motion

Perguntar na sua IA favorita

Abre um novo chat com esta habilidade de agente já pré-carregada.

Documentação

Tradução de Movimento AE GSAP

Use esta skill após skills/AEMotion/SKILL.md para trabalhos no After Effects que se beneficiam da gramática de animação GreenSock/GSAP. O GSAP não é executado no AE. Traduza seus conceitos para keyframes nativos do AE, expressões, nulls de controle, animadores de texto, time remap, máscaras, câmeras e scripts.

Skills oficiais de origem instaladas localmente (ajuste a raiz se suas skills do Codex estiverem em outro local):

  • $CODEX_HOME/skills/gsap-core/SKILL.md
  • $CODEX_HOME/skills/gsap-timeline/SKILL.md
  • $CODEX_HOME/skills/gsap-scrolltrigger/SKILL.md
  • $CODEX_HOME/skills/gsap-plugins/SKILL.md
  • $CODEX_HOME/skills/gsap-utils/SKILL.md
  • $CODEX_HOME/skills/gsap-performance/SKILL.md

Leia apenas a skill oficial do GSAP relevante quando a semântica exata for importante. Mantenha os scripts do AE compatíveis com ES3, conforme exigido por AEMotion.

Tradução Principal

Ideia GSAPTradução AE
gsap.to(target, vars)Mantenha o valor atual como início; defina keyframe final em início + duração.
gsap.from(target, vars)Defina um keyframe inicial explícito a partir de vars; anime até o valor final atual/projetado. Evite "immediateRender" indesejado não sobrescrevendo estados posteriores já definidos.
gsap.fromTo(target, from, to)Defina keyframes inicial e final explicitamente. Melhor para builds scriptados confiáveis no AE.
gsap.set(target, vars)Defina o valor no tempo atual ou crie um keyframe de retenção se uma animação posterior depender dele.
duration, delayConverta segundos para tempo da composição; para 30fps, 1 frame = 1/30.
easeAplique suavização temporal nos keyframes ou use curvas de expressão. Combine a sensação, não a matemática exata do navegador.
staggerDesloque o início de layers/keyframes por frames; para texto, prefira seletores de Animador de Texto ou camadas Decompor Texto.
repeat / yoyoUse expressões de loop, time remap ou ciclos de keyframes duplicados. Converta para keyframes se as expressões se tornarem frágeis.
autoAlphaKeyframes de opacidade; opcionalmente desabilite/habilite a camada apenas para cortes abruptos fora dos intervalos visíveis.
Valores relativos +=, -=Leia a propriedade atual do AE e adicione o delta antes de escrever o novo keyframe.
Valores baseados em funçãoUse cálculos baseados em índice no JSX ou seletores de expressão.
gsap.defaults()Objeto de configuração compartilhado no JSX, ou null de controle com sliders para duração/suavidade/espalhamento.
matchMedia() / reduced motionCrie predefinições alternativas de escala/slider, como Motion Amount; para movimento reduzido, use distância menor, rotação menor ou apenas opacidade.

Gramática de Timeline

Antes de criar keyframes no AE, escreva uma especificação de timeline compacta:

label intro @ 0.00
S06_Card_Demo.fromTo posição [x0,y0,z0] -> [x1,y1,z1] dur .55 ease power3.out @ intro
S06_Card02.to escala 70 -> 100 dur .35 ease back.out @ <+.08
cards.stagger orientação += [0,18,-8] dur .6 ease power2.inOut each .04 from center

Em seguida, traduza-a em uma tabela AE:

CampoSignificado
layerNome exato da camada no AE ou padrão.
propertyCaminho da propriedade no AE: Posição, Escala, Orientação, Opacidade, Caminho da Máscara, Time Remap, etc.
from/toValores explícitos em unidades do AE.
start/durationSegundos ou frames.
easeNome no estilo GSAP mapeado para suavização temporal do AE.
offsetTempo absoluto, label, início anterior <, fim anterior >, ou offset de stagger.
controllerNull ou slider opcional que deve controlar os valores.

Prefira labels de timeline em vez de matemática de delay dispersa. Para seções complexas, crie um null de controle por sequência, por exemplo CTRL_S06_CARDS, com sliders como Motion Amount, Stagger Frames, Depth Spread e Progress.

Mapeamento de Ease

Use estes como pontos de partida e ajuste visualmente com capturas:

Ease GSAPSensação AE
noneInterpolação linear. Use para movimento acionado por scrub/progresso.
power1.outSuavização suave; baixa influência.
power2.outSuavização padrão de UI.
power3.outInício rápido, parada forte; bom para cartões e títulos.
power3.inOutTrajeto simétrico suave; bom para câmera ou movimentos de grupo.
expo.outChegada muito rápida, depois parada lenta; use com moderação.
back.out(1.7)Adicione um keyframe de ultrapassagem além do final, depois estabilize.
elastic.out()Use expressão spring ou 3-5 keyframes de ultrapassagem decrescente.
bounce.outUse keyframes de impacto escalonados; não finja com um único Easy Ease.

Quando o tempo exato for importante, amostre frames ao redor do pico de velocidade e do momento de parada. A interpolação de keyframes do AE não será numericamente idêntica ao GSAP; o resultado deve combinar a percepção de movimento.

Conceitos do ScrollTrigger no AE

O AE não tem rolagem DOM. Traduza o ScrollTrigger como um driver de progresso:

Ideia ScrollTriggerPadrão AE
trigger/start/endIntervalo de label de timeline ou intervalo da área de trabalho.
scrub: trueSlider/Null Progress 0..100, Time Remap, ou expressão mapeando tempo para progresso. Use ease linear.
scrub numérico com lagExpressão low-pass/spring no valor de progresso, ou keyframes duplicados com atraso.
pinSegure a câmera ou null pai enquanto anima os filhos. Não anime o pai fixado se os filhos precisarem de movimento independente.
snapKeyframes de retenção/snap ou expressão Math.round(progress / step) * step.
markersCamadas guia temporárias, labels ou sobreposições de texto; remova antes da entrega final.
containerAnimationCarrossel horizontal/3D controlado por um null mestre ou caminho de câmera; elementos aninhados referenciam o mesmo progresso.

Para reels "tipo scroll" no AE, acione uma timeline mestre com CTRL_PROGRESS e mapeie o progresso para cartões, posição Z da câmera, opacidade e desfoque. Mantenha o movimento que aciona o progresso linear; coloque ease nas respostas visuais aninhadas apenas quando melhorar a aparência.

Equivalências de Plugins

Plugin GSAPEquivalente AE
FlipRegistre as transformações inicial e final da camada; anime através de offset inverso ou nulls pai. Use para reordenações de layout e trocas de cartões.
Draggable / ObserverA renderização do AE não é interativa; represente gestos com sliders de controle ou keyframes gravados.
InertiaUse expressão baseada em velocidade, expressão spring ou keyframes de ultrapassagem decrescente.
SplitTextUse Animadores de Texto do AE, Seletores de Expressão ou camadas Decompor Texto por palavra/por caractere.
ScrambleTextKeyframes de retenção de Texto de Origem, expressão de mapa de caracteres ou opacidade/deslocamento de caractere do animador de texto.
DrawSVGTrim Paths de camada de forma.
MorphSVGKeyframes de máscara/caminho ou interpolação de caminho de forma; garanta que a contagem/ordem de vértices corresponda.
MotionPathCaminho de máscara AE + parenting de caminho de camada, ou keyframes de posição amostrados ao longo de uma Bezier.
CustomEase / CustomWiggle / CustomBounceCurvas do editor de gráficos do AE, valores de suavização temporal ou funções de expressão personalizadas.
GSDevToolsNulls de controle temporários, camadas guia, capturas de frames e relatórios JSX de auditoria.

Equivalências de Funções Utilitárias

Use utilitários do GSAP como vocabulário matemático em JSX/expressões:

function clamp(v, lo, hi) { return Math.max(lo, Math.min(hi, v)); }
function mapRange(in0, in1, out0, out1, v) {
  var p = (v - in0) / (in1 - in0);
  return out0 + (out1 - out0) * p;
}
function lerp(a, b, p) { return a + (b - a) * p; }
function snap(step, v) { return Math.round(v / step) * step; }

Usos comuns no AE:

  • normalize/mapRange: mapeie tempo, amplitude de áudio ou progresso de slider para posição/escala/opacidade.
  • random: gere offsets determinísticos por camada no JSX; evite aleatoriedade não determinística em expressões, a menos que a flutuação seja intencional.
  • snap: máquina de escrever escalonada, movimento com pulo de frame, snapping de grade/cartões.
  • distribute: leques de cartões, staggers de texto, revelações do centro para fora.

Regras de Performance para AE

  • Prefira transformações, opacidade, time remap e movimento de câmera/null em vez de efeitos pesados por frame.
  • Evite muitas camadas com efeitos caros animando simultaneamente; pré-componha ou converta para keyframes quando o visual estiver aprovado.
  • Use expressões para controle e iteração; converta para keyframes quando a expressão se tornar lenta ou frágil.
  • O desfoque de movimento melhora a qualidade percebida, mas pode esconder erros de layout; verifique ambos com e sem ele ao diagnosticar.
  • Para cartões repetidos, use nulls pai e controladores compartilhados em vez de animar cada propriedade independentemente.
  • Mantenha máscaras e mesh warps tão simples quanto o visual permitir. Capture frames exatos após alterar máscaras.

Fluxo de Construção no AE

  1. Leia AEMotion e a skill oficial do GSAP relevante se o usuário mencionar um conceito do GSAP.
  2. Inspecione a composição/camadas do AE antes de editar. Não infira nomes de camadas.
  3. Esboce uma especificação de timeline no estilo GSAP com labels, duração, ease, stagger e camadas alvo.
  4. Converta para uma tabela de implementação do AE.
  5. Escreva helpers JSX compatíveis com ES3 para keyframes/ease/controladores.
  6. Aplique uma sequência lógica por script.
  7. Capture frames exatos ao redor do início, pico de velocidade, parada e retenção final.
  8. Ajuste valores a partir de evidências visuais e salve.

Não Faça

  • Não cole código GSAP de navegador no AE.
  • Não use sintaxe JavaScript moderna no ExtendScript.
  • Não anime a mesma propriedade do AE em múltiplos rigs não relacionados sem auditar sobreposição.
  • Não confie em temporização dispersa no estilo delay para seções complexas; use labels/temporização de controlador.
  • Não mantenha camadas guia/marcadores temporárias visíveis nas renderizações finais, a menos que o usuário as tenha solicitado.

Individual skills in this repo

This repo contains 3 individual skills — each has its own dedicated page.

Habilidades Relacionadas