Communitygithub.com

itswenxin/ae-gsap-motion

Traduit la logique d'animation GSAP/GreenSock en keyframes, contrôleurs nuls, animateurs de texte, expressions et ExtendScript pour Adobe After Effects.

Qu'est-ce que ae-gsap-motion ?

Cette compétence permet de traduire les concepts d'animation GSAP (GreenSock) en implémentations natives pour Adobe After Effects. GSAP lui-même ne fonctionne pas dans AE, mais cette compétence mappe ses grammaires de mouvement—comme gsap.to, from, fromTo, les timelines, les easings, les staggers, les plugins (SplitText, DrawSVG, MorphSVG, etc.) et les utilitaires—vers des keyframes, des expressions, des contrôleurs nuls, des animateurs de texte, des calques de formes et des scripts ExtendScript (ES3). Elle s'appuie sur les compétences GSAP officielles installées localement et doit être utilisée après la compétence AEMotion. Le flux de travail typique consiste à rédiger une spécification de timeline compacte de style GSAP, à la convertir en un tableau d'implémentation AE avec des noms de calque précis, des propriétés, des valeurs de début/fin, une durée, un easing mappé et un offset temporel, puis à générer un script ES3. Les concepts de ScrollTrigger sont traduits en pilotes de progression (curseurs, nulls, time remap) et les plugins en équivalents AE (Trim Paths, Interpolation de forme, Animateurs de texte). L'accent est mis sur la perception du mouvement plutôt que sur une correspondance mathématique exacte, car les courbes d'interpolation d'AE diffèrent de celles de GSAP. Elle offre également des conseils de performance pour AE (privilégier les transformations, précomposer, utiliser des expressions pour le contrôle, les cuire en keyframes si nécessaire) et un flux de travail structuré : inspecter la composition, rédiger la spécification, la convertir en tableau, écrire le script, capturer les images clés, ajuster visuellement et enregistrer.

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

Demander à votre IA préférée

Ouvre une nouvelle conversation avec cette compétence d'agent déjà préchargée.

Documentation

Traduction de mouvement AE GSAP

Utilisez ceci après skills/AEMotion/SKILL.md pour les travaux After Effects qui bénéficient de la grammaire de mouvement GreenSock/GSAP. GSAP lui-même ne fonctionne pas dans AE. Traduisez ses concepts en keyframes, expressions, contrôleurs nuls, animateurs de texte, time remap, masques, caméras et scripts natifs d'AE.

Compétences sources officielles installées localement (ajustez la racine si vos compétences Codex se trouvent ailleurs) :

  • $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

Ne lisez que la compétence GSAP officielle pertinente lorsque la sémantique exacte est importante. Gardez les scripts AE compatibles ES3 comme requis par AEMotion.

Traduction Principale

Idée GSAPTraduction AE
gsap.to(cible, vars)Garder la valeur actuelle comme début ; définir une keyframe de fin à start + durée.
gsap.from(cible, vars)Définir explicitement une keyframe de début à partir de vars ; animer vers la valeur actuelle/conçue finale. Éviter le "immediateRender" indésirable en ne remplaçant pas les états ultérieurs stabilisés.
gsap.fromTo(cible, de, à)Définir explicitement les keyframes de début et de fin. Le meilleur choix pour des constructions AE scriptées fiables.
gsap.set(cible, vars)Définir la valeur au moment actuel ou créer une keyframe de maintien si une animation ultérieure en dépend.
durée, délaiConvertir les secondes en temps de composition ; pour du 30ips, 1 image = 1/30.
easeAppliquer un easing temporel sur les keyframes ou utiliser des courbes d'expression. Faire correspondre la sensation, pas le calcul exact du navigateur.
staggerDécaler les instants de début des calques/keyframes par images ; pour le texte, privilégier les sélecteurs d'animateur de texte ou décomposer les calques de texte.
répéter / yoyoUtiliser des expressions de boucle, time remap ou des cycles de keyframes dupliqués. Cuire si les expressions deviennent fragiles.
autoAlphaKeyframes d'opacité ; éventuellement désactiver/activer le calque uniquement pour les coupures franches en dehors des plages visibles.
Valeurs relatives +=, -=Lire la propriété AE actuelle et ajouter le delta avant d'écrire la nouvelle keyframe.
Valeurs basées sur des fonctionsUtiliser des calculs basés sur l'index en JSX ou des sélecteurs d'expression.
gsap.defaults()Objet de configuration partagé en JSX, ou contrôleur nul avec des curseurs pour la durée/l'éasing/l'étalement.
matchMedia() / mouvement réduitCréer des presets d'échelle/curseur alternatifs comme Quantité de Mouvement ; pour un mouvement réduit, utiliser une distance plus courte, une rotation plus faible ou seulement l'opacité.

Grammaire de Timeline

Avant de créer des keyframes AE, rédigez une spécification de timeline compacte :

label intro @ 0.00
S06_Card_Demo.fromTo position [x0,y0,z0] -> [x1,y1,z1] dur .55 ease power3.out @ intro
S06_Card02.to scale 70 -> 100 dur .35 ease back.out @ <+.08
cartes.stagger orientation += [0,18,-8] dur .6 ease power2.inOut each .04 depuis centre

Traduisez-la ensuite en un tableau AE :

ChampSignification
calqueNom exact du calque AE ou motif.
propriétéChemin de propriété AE : Position, Échelle, Orientation, Opacité, Masque, Time Remap, etc.
de/àValeurs explicites en unités AE.
début/duréeSecondes ou images.
easeNom de style GSAP mappé à l'easing temporel AE.
offsetTemps absolu, label, début précédent <, fin précédente >, ou offset de stagger.
contrôleurNull/curseur optionnel qui doit piloter les valeurs.

Privilégiez les labels de timeline plutôt que les calculs de délai dispersés. Pour les sections complexes, créez un contrôleur nul par séquence, par exemple CTRL_S06_CARTES, avec des curseurs comme Quantité de Mouvement, Images Stagger, Étalement Profondeur, et Progression.

Mapping d'Easing

Utilisez ces points de départ et ajustez visuellement avec des captures :

Easing GSAPSensation AE
noneInterpolation linéaire. À utiliser pour les mouvements pilotés par le scrubbing/la progression.
power1.outEasing de sortie doux ; faible influence.
power2.outEasing de sortie UI standard.
power3.outDépart rapide, atterrissage marqué ; bon pour les cartes et les titres.
power3.inOutTrajet fluide symétrique ; bon pour la caméra ou les déplacements de groupe.
expo.outArrivée très rapide puis atterrissage lent ; à utiliser avec parcimonie.
back.out(1.7)Ajouter une keyframe de dépassement au-delà de la fin, puis atterrir.
elastic.out()Utiliser une expression de ressort ou 3-5 keyframes de dépassement amorti.
bounce.outUtiliser des keyframes d'impact par paliers ; ne pas simuler avec un seul Easy Ease.

Lorsque le timing exact est important, échantillonnez les images autour de la vitesse de pointe et du moment d'atterrissage. L'interpolation des keyframes d'AE ne sera pas numériquement identique à celle de GSAP ; le livrable consiste à faire correspondre la perception du mouvement.

Concepts ScrollTrigger dans AE

AE n'a pas de défilement DOM. Traduisez ScrollTrigger comme un pilote de progression :

Idée ScrollTriggerMotif AE
trigger/start/endPlage de labels de timeline ou plage de zone de travail.
scrub: trueCurseur/Null Progression 0..100, Time Remap, ou expression mappant le temps à la progression. Utiliser un easing linéaire.
scrub numérique (latence)Expression de passe-bas/ressort sur la valeur de progression, ou keyframes dupliquées avec délai.
pinMaintenir la caméra ou le null parent tout en animant les enfants. Ne pas animer le parent épinglé si les enfants ont besoin d'un mouvement indépendant.
snapKeyframes de maintien/accrochage ou expression Math.round(progression / pas) * pas.
markersCalques guides temporaires, labels ou superpositions de texte ; supprimer avant la livraison finale.
containerAnimationCarrousel horizontal/3D contrôlé par un null maître ou un chemin de caméra ; les éléments imbriqués référencent la même progression.

Pour les bobines "scroll-like" dans AE, pilotez une timeline maîtresse avec CTRL_PROGRESSION et mappez la progression aux cartes, à la profondeur de champ de la caméra, à l'opacité et au flou. Gardez le mouvement de pilotage de la progression linéaire ; n'appliquez l'easing que sur les réponses visuelles imbriquées lorsque cela améliore l'apparence.

Équivalents des Plugins

Plugin GSAPÉquivalent AE
FlipEnregistrer les première et dernière transformations du calque ; animer par offset inverse ou nulls parents. Utiliser pour les réorganisations de mise en page et les échanges de cartes.
Draggable / ObserverLe rendu AE n'est pas interactif ; représenter les gestes avec des curseurs de contrôleur ou des keyframes enregistrées.
InertiaUtiliser une expression basée sur la vélocité, une expression de ressort ou des keyframes de dépassement amorti.
SplitTextUtiliser les animateurs de texte AE, les sélecteurs d'expression ou décomposer le texte en calques par mot/par caractère.
ScrambleTextKeyframes de maintien du Texte source, expression de mappage de caractères ou animateur de texte d'opacité/décalage de caractère.
DrawSVGTrim Paths sur calque de forme.
MorphSVGKeyframes de masque/chemin ou interpolation de chemin de forme ; s'assurer que le nombre/l'ordre des sommets correspondent.
MotionPathChemin de masque AE + parentage de calque, ou keyframes de position échantillonnées le long d'une Bézier.
CustomEase / CustomWiggle / CustomBounceCourbes de l'éditeur de graphes AE, valeurs d'easing temporel ou fonctions d'expression personnalisées.
GSDevToolsContrôleurs nuls temporaires, calques guides, captures d'images et rapports d'audit JSX.

Équivalents des Fonctions Utilitaires

Utilisez les utilitaires GSAP comme vocabulaire mathématique en JSX/expressions :

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(pas, v) { return Math.round(v / pas) * pas; }

Utilisations courantes dans AE :

  • normalize/mapRange : mapper le temps, l'amplitude audio ou la progression d'un curseur à la position/échelle/opacité.
  • random : générer des décalages déterministes par calque en JSX ; éviter le caractère aléatoire non déterministe dans les expressions sauf si le jitter est intentionnel.
  • snap : machine à écrire par paliers, mouvement avec saut d'images, accrochage de grille/cartes.
  • distribute : éventails de cartes, staggers de texte, dévoilements depuis le centre.

Règles de Performance pour AE

  • Privilégier les transformations, l'opacité, le time remap et le mouvement de caméra/null plutôt que les effets lourds par image.
  • Éviter d'avoir de nombreux calques avec des effets coûteux qui animent tous en même temps ; précomposer ou cuire lorsque le look est approuvé.
  • Utiliser des expressions pour le contrôle et l'itération ; cuire en keyframes lorsque l'expression devient lente ou fragile.
  • Le flou de mouvement améliore la qualité perçue mais peut masquer les erreurs de mise en page ; vérifier avec et sans lors du diagnostic.
  • Pour les cartes répétées, utiliser des nulls parents et des contrôleurs partagés plutôt que de keyframer indépendamment chaque propriété.
  • Garder les masques et les déformations de maillage aussi simples que le visuel le permet. Capturer les images exactes après avoir modifié les masques.

Flux de Travail de Construction AE

  1. Lire AEMotion et la compétence GSAP officielle pertinente si l'utilisateur nomme un concept GSAP.
  2. Inspecter la comp et les calques AE avant de modifier. Ne pas déduire les noms de calque.
  3. Rédiger une spécification de timeline de style GSAP avec des labels, une durée, un easing, un stagger et des calques cibles.
  4. Convertir en tableau d'implémentation AE.
  5. Écrire des helpers JSX compatibles ES3 pour les keyframes/easing/contrôleurs.
  6. Appliquer une séquence logique par script.
  7. Capturer les images exactes autour du début, de la vitesse de pointe, de l'atterrissage et du maintien final.
  8. Ajuster les valeurs à partir de preuves visuelles, puis enregistrer.

À NE PAS FAIRE

  • Ne pas coller de code GSAP de navigateur dans AE.
  • Ne pas utiliser de syntaxe JavaScript moderne dans ExtendScript.
  • Ne pas animer la même propriété AE dans plusieurs rigs non liés sans vérifier le chevauchement.
  • Ne pas compter sur un timing dispersé de style délai pour les sections complexes ; utiliser des labels/un timing de contrôleur.
  • Ne pas laisser de calques guides/marqueurs temporaires visibles dans les rendus finaux sauf si l'utilisateur les a demandés.

Individual skills in this repo

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

Skills associés