Communitygithub.com

Motion Graphics

Utilisez cette compétence lorsque l'utilisateur souhaite une animation graphique courte, centrée sur le design, où le mouvement est le message : typographie cinétique, compteur de statistiques, hit de données, logo sting, bloc de marque, tiers inférieur, appel, superposition sociale, titre/ tweet/ actualité animé, affiche animée ou mise en évidence rapide d'une page. Durée généralement inférieure à 10s et jusqu'à ~30s, sans narration, voix-off ni sujet en prise de vues réelles. Peut être rendu en MP4 ou en superposition transparente. Ne convient pas aux pièces plus longues, multi-scènes, narrées ou aux réels de marque (utiliser general-video), aux vidéos de sites web narrées (website-to-video), aux vidéos explicatives (faceless-explainer), aux promotions de produits (product-launch-video), aux vidéos RP (pr-to-video) ou aux sous-titres sur des séquences existantes (embedded-captions). En cas de doute entre une pièce courte centrée sur le mouvement ou un traitement plus long/narré, consultez /hyperframes.

Qu'est-ce que Motion Graphics ?

Cette compétence, motion-graphics, est conçue pour générer de courtes animations graphiques centrées sur le design, où le mouvement est le message principal. Elle est particulièrement adaptée pour créer des typographies cinétiques, des compteurs de statistiques, des animations de données, des logos ou des superpositions sociales, avec une durée typique inférieure à 30 secondes et sans narration. La compétence suit un processus structuré en plusieurs phases, allant de l'initialisation du projet à la vérification finale, en passant par la planification, la recherche de ressources, la conception, la construction et le rendu. Elle prend en charge plusieurs catégories, dont certaines nécessitent une recherche de contenu (pages web, articles, tweets) et d'autres où le contenu est fourni par l'utilisateur (texte, statistiques, graphiques, logos, tiers inférieurs). La compétence est destinée aux plateformes d'agents IA comme Claude Code et Cursor, et utilise un environnement basé sur Node.js et FFmpeg pour le rendu. Le flux de travail met l'accent sur la réutilisation des ressources et des blocs de catalogue, minimisant la création manuelle de code.

Compatible avec~Claude Code~Codex CLI✓Cursor✓Gemini CLI
npx skills add https://github.com/MatheusEdson/RepoSkillLaxtro/tree/HEAD/skills/HyperFrames/motion-graphics

Demander à votre IA préférée

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

Documentation

motion-graphics — entrée de répartition

Confirmez la route avant l'étape 0. Cette compétence crée une animation graphique courte, centrée sur le design, sans narration (le mouvement est le message ; ~moins de 10s, pas de voix-off). Un traitement plus long, multi-scène ou narré → /general-video ; une vidéo narrée d'un site web → /website-to-video ; un sujet explicatif → /faceless-explainer ; une promotion de produit → /product-launch-video ; sous-titres sur des séquences existantes → /embedded-captions. Hors périmètre : données en direct / au moment du rendu, ou séquences qu'elle ne peut pas capturer. Vous hésitez entre une pièce courte centrée sur le mouvement ou une pièce narrée ? Lisez /hyperframes d'abord.

Une animation graphique courte centrée sur le design. Priorité aux ressources : décidez de la stratégie de ressources et procurez-vous du matériel réel avant de concevoir le plan, puis concevez le plan autour de ce que vous avez, et enfin composez en réutilisant les capacités du catalogue. Tous les artefacts vont dans PROJECT_DIR = videos/<project-name>/ (créé à l'étape 0) ; tous les chemins ci-dessous sont relatifs à ce répertoire.

PhaseExécutionArtefact principalDéroulement détaillé
initBashhyperframes.jsonÉtape 0
plansous-agent — décider de la recherche ? + classifier + stratégie de ressourcesshot-plan.json (brouillon : catégorie, requêtes asset_needs, brief)agents/director.md (Partie 1)
source ◇Bash — résolution média (Ignorer si asset_needs est vide)assets/ + assets/index.mdphases/source/guide.md
designsous-agent — conception du plan autour des ressources résoluesshot-plan.json (final : bloc(s) + layout + mouvement + positions)agents/director.md (Partie 2)
buildsous-agent — composition priorisant la réutilisationcompositions/index.htmlagents/builder.md
renderBash — hyperframes render (MP4, ou --format webm/mov pour superposition)renders/video.mp4Étape 5
verifyBash — lint / inspect -> sous-agent de réparation en cas d'échec(corrections sur place)agents/finalize.md

◇ source s'exécute uniquement lorsque la catégorie choisie déclare des ressources. Les catégories de code/texte pur (par exemple kinetic-type, la plupart des charts/stat) ont asset_needs: [] et passent directement de la planification à la conception.

Catégories — divisées par la décision de recherche

La première décision du plan est : cela nécessite-t-il une recherche ? Cette bifurcation divise les catégories en deux groupes ; ensuite, la catégorie spécifique est choisie — pour celles pilotées par la recherche, selon le type de contenu renvoyé par la recherche. Chaque catégorie est un categories/<id>/module.md (ses règles de planification + construction) ; le vocabulaire de mouvement partagé se trouve dans references/motion-vocabulary.md (→ règles/plans hyperframes-animation + blocs de registre).

Catégories de formulaire — pas de recherche ; l'utilisateur fournit le contenu :

CatégorieIntentionS'appuie sur
kinetic-typeligne / citation / titre percutant, texte animéblocs caption-* + règles d'animation
statnombre héroïque unique / compteur + anneauapple-money-count / rules/{counting-dynamic-scale, stat-bars-and-fills}
chartsbarres / courbes / camembert / course / % à partir de donnéesbloc data-chart
logo-reveallogo sting / bloc de marque (logo utilisateur)logo-outro / rules/svg-path-draw
lower-thirdsbarres de nom / titre, appels, superpositions socialescaption-* + blocs de superposition du registre

Catégories pilotées par la recherche — recherchez d'abord, puis animez par type de contenu (le chemin RWA) :

Contenu renvoyéCatégorieAnimation
page web / lienwebpageanimation de page web / UI (défilement, révélation, curseur, appels)
article de pressenewsrévélation de titre + carte source + appels aux faits clés
tweettweetcarte tweet animée
image / entitéasset-fusionla géométrie de la ressource devient le graphique (fusion diégétique RWA)

Ordre de construction : un par un, priorité à la couverture (l'esquisse est acceptable). kinetic-type porté depuis le prototype ; les autres suivent.

Prérequis

macOS Apple Silicon ou Linux x64. Outils système : brew install node ffmpeg. npx hyperframes doctor une fois. Rendu GPU macOS : export PRODUCER_BROWSER_GPU_MODE=hardware.

Clés optionnelles (valeurs de repli locales si non définies) — nécessaires uniquement pour les catégories qui recherchent/génèrent des ressources via la résolution média :

CléUtilisée pourValeur de repli
GEMINI_API_KEY / GOOGLE_API_KEYgénération d'images (résolution média)ignorer génération / recherche uniquement
(fournisseurs de recherche asset_scout)recherche de ressources réelles webpage/news/tweet + asset-fusionla catégorie se dégrade en version sans ressource

Déroulement

Étape 0 — Initialisation

Le répertoire de travail courant est la racine de l'espace de travail de l'agent ; écrivez tous les artefacts sous PROJECT_DIR = videos/<project-name>/. <project-name> : utilisez le répertoire donné par l'utilisateur, sinon un nom court en kebab-case dérivé de l'intention (<sujet>-motion). Pas le nom de base de l'espace de travail ou un horodatage.

Uniquement lorsque $PROJECT_DIR/hyperframes.json est absent :

PROJECT_DIR="${MOTION_GRAPHICS_DIR:-videos/<project-name>}"
mkdir -p "$(dirname "$PROJECT_DIR")"
npx hyperframes init "$PROJECT_DIR" --non-interactive --skip-skills --example=blank

Contraintes : ne jamais hyperframes init dans la racine de l'espace de travail ; ne jamais imbriquer un autre hyperframes/ à l'intérieur de PROJECT_DIR ; chaque commande Bash (maître + sous-agents) est un sous-shell (cd "$PROJECT_DIR" && ...) — jamais de cd nu.

Étape 1 — Planification (sous-agent : Directeur Partie 1)

Lancez un sous-agent. invite = agents/director.md complet + ## Contexte de répartition (SKILL_DIR / PROJECT_DIR / la demande de l'utilisateur / Schéma : <SKILL_DIR>/references/shot-plan-ir.md). Il doit :

  1. Décider : cela nécessite-t-il une recherche ? (la première bifurcation)
    • Non → choisir une catégorie de formulaire (kinetic-type / stat / charts / logo-reveal / lower-thirds) ; le contenu est fourni par l'utilisateur ; asset_needs: [].
    • Oui → émettre un plan de recherche dans asset_needs[] (news / web / tweet / image ; requêtes bipolaires). La catégorie pilotée par la recherche spécifique (webpage / news / tweet / asset-fusion) est confirmée par le type de contenu renvoyé à l'étape 2, et finalisée à l'étape 3.
  2. Écrire un brouillon shot-plan.json (enveloppe + catégorie de formulaire choisie ou intention de recherche + asset_needs + un brief de plan d'un paragraphe). Schéma : references/shot-plan-ir.md.

Validation : [ -s "$PROJECT_DIR/shot-plan.json" ] && echo ok || echo missing.

Étape 2 — Source ◇ (Bash : résolution média, conditionnelle)

Si shot-plan.json.asset_needs n'est pas vide, résoudre les ressources (recherche / génération / récupération → chemins locaux figés dans le projet + registre). Voir phases/source/guide.md (encapsule media-use resolve ; les catégories pilotées par la recherche utilisent la recherche news/web/tweet/image). Si asset_needs est vide, passer à l'étape 3.

# illustratif — voir phases/source/guide.md
(cd "$PROJECT_DIR" && node <SKILL_DIR>/phases/source/resolve.mjs --plan ./shot-plan.json --out ./assets)

Dégrader avec élégance : si un moteur de recherche / fournisseur est indisponible, la catégorie revient à une version sans ressource (le noter dans context.log).

Étape 3 — Conception (sous-agent : Directeur Partie 2)

Lancez un sous-agent (invite = agents/director.md Partie 2 + contexte de répartition incluant le assets/index.md résolu si l'étape 2 a été exécutée + catalog-map.md). Il conçoit le plan autour des ressources disponibles : choisir le(s) bloc(s) du catalogue + les règles/plans hyperframes-animation, la disposition, le mouvement, les battements et (pour asset-fusion) les element_positions + la palette de pipette. Finalise shot-plan.json (content.block + content.customize + contenu par catégorie).

Étape 4 — Construction (sous-agent : Constructeur, priorité à la réutilisation)

Lancez un sous-agent. invite = agents/builder.md complet + contexte de répartition (shot-plan.json, catalog-map.md, le module.md de la catégorie, references/motion-vocabulary.md, references/builder-contract.md). Priorité à la réutilisation : npx hyperframes add <block> + personnaliser sur place ; n'écrire à la main que les lacunes + l'affordance de fusion des ressources. Sortie compositions/index.html respectant le contrat HF (timeline GSAP en pause sur window.__timelines, class="clip" + identifiants stables, tl.seek(0), déterministe).

Étape 5 — Rendu (Bash)

(cd "$PROJECT_DIR" && npx hyperframes render . -q draft -o ./renders/video.mp4)
# variante superposition transparente : --format webm  (ou mov)

Étape 6 — Vérification (Bash → sous-agent de réparation en cas d'échec)

(cd "$PROJECT_DIR" && npx hyperframes lint . && npx hyperframes inspect .)

exit 0 → terminé. En cas d'erreurs de lint/inspect, lancer le sous-agent de réparation (agents/finalize.md : QA instantané + un passage de correction sur place + nouveau rendu). Ne jamais changer une durée fixe pendant la réparation.

Rapport + aperçu optionnel

Rapporter la sortie finale (renders/video.mp4, ou la variante de superposition .webm / .mov) + la durée. Ne pas ouvrir d'aperçu pendant l'exécution. N'en proposer un que sur demande, démarré après le rendu afin qu'il serve le fichier final :

(cd "$PROJECT_DIR" && npx hyperframes preview)   # Interface utilisateur Studio ; ou `npx hyperframes play` pour un lien partageable

Les indicateurs se trouvent dans la compétence hyperframes-cli (references/preview-render.md).

Tableau de reprise

ÉtatContinuer à partir de
pas de shot-plan.jsonÉtape 1 (planification)
shot-plan.json a asset_needs, pas de assets/Étape 2 (source)
shot-plan.json final, pas de compositions/index.htmlÉtape 3/4 (conception+construction)
compositions/index.html existe, pas de renders/video.mp4Étape 5 (rendu) + Étape 6
renders/video.mp4 existeRapport + arrêt

Notes de conception (mainteneurs — l'exécution ne lit pas ceci)

  • Justification de la priorité aux ressources : la recherche de sources est effectuée en amont et informe la conception du plan (le flux RWA : analyser → rechercher → examiner → composer). Les catégories pilotées par la recherche (webpage/news/tweet) et asset-fusion s'appuient toutes deux sur la recherche média (news/web/tweet/image), qui est la lignée RWA documentée de la résolution média.
  • Priorité à la réutilisation : l'analogue intra-écosystème des modèles générés par LLM est « composer des blocs de catalogue + règles hyperframes-animation ». La timeline GSAP en pause de HF ≙ useCurrentFrame de Remotion.
  • Contrat de module de catégorie : un categories/<id>/module.md (planification + construction), partageant references/motion-vocabulary.md (+ évaluation optionnelle). Ajouter une catégorie = déposer le dossier + enregistrer sa ligne de classificateur dans agents/director.md + sa ligne dans catalog-map.md ; le pipeline de phase est inchangé.
  • Structure du répertoire :
    videos/<project-name>/
      hyperframes.json  context.log
      shot-plan.json            # le RI (sortie du Directeur)
      assets/  assets/index.md  # sortie de la résolution média (si recherchée)
      compositions/index.html   # sortie du Constructeur
      renders/video.mp4
    
  • Enregistrement : dans le routeur hyperframes — ajouter l'intention « animation graphique courte centrée sur le design » + la description du Workflow ; retirer les déclencheurs motion-graphics de /general-video ; ajouter les arêtes inverses « NE PAS UTILISER ». Voir motion-graphics-genre.md §5-7.

Skills associés