Animation Frames — vidéo d'abord
Le générateur d'images dessine des poses ; le générateur VIDÉO comprend le mouvement — l'alternance des jambes, la continuité des arcs, la dynamique des tissus et du feu viennent gratuitement parce que la vidéo doit les animer. Ne demandez donc pas au modèle d'image d'imaginer des poses en plein mouvement : animez la base et récoltez les frames réelles.
Exécution dans le constructeur d'applications (lire en premier)
Cette compétence est doctrine (lois du mouvement, QC de boucle, quand utiliser la vidéo). Dans le
bac à sable du constructeur d'applications, ne lancez pas une récolte libre avec ffmpeg ni n'inventez un
fond #hex aléatoire.
| Étape | Ce qu'il faut faire |
|---|---|
| Sprites de production / grilles fixes | generate2dsprite — feuilles magenta solides #FF00FF + scripts chroma |
| Locomotion plus dense à partir de la vidéo | video2dsprite — image de base sur #FF00FF → imagine_image_to_video → scripts de compétence (ffmpeg + chroma) |
| Fond incrustable | Toujours #FF00FF avec l'un ou l'autre pipeline (requis pour le chroma) |
| Cette compétence | Boucle / test de retournement / lois du mouvement ci-dessous — appliquer après l'exécution du pipeline |
Ouvrez .grok/skills/video2dsprite/SKILL.md ou .grok/skills/generate2dsprite/SKILL.md
et suivez leurs workflows pour la génération et le post-traitement. Appliquez ensuite les
lois et le test de retournement ici avant d'exporter les frames dans le jeu.
Pipeline par défaut (intention)
- Image de base. Sujet en pose neutre/départ, mots de style complets, vue de côté /
adaptée au jeu, fond
#FF00FFsolide (incrustation chroma du constructeur d'applications). Les valeurs par défaut de game-asset-core s'appliquent. - Animer.
imagine_image_to_videoà partir de la base : un mouvement clair, sur place, caméra statique ("le chevalier marche sur place, vue de côté, caméra verrouillée", 6s). Gardez la prise simple — un sujet, un mouvement. Préférez passer parvideo2dspritepour que la récolte et le chroma soient cohérents. - Récolter + nettoyer. Utilisez les scripts de
video2dsprite(pasffmpeg -i … fps=12seul). Le remplissage magenta / désencrage vit là ; ne re-incrustez pas avec un#hexplat différent à moins de quitter le pipeline magenta entièrement. - Sélectionner. Choisissez les frames qui (a) capturent les phases distinctes du mouvement et (b) BOUCLENT — la fin de la séquence doit revenir à son début. Ne forcez pas un nombre : si le mouvement est le mieux rendu avec 8, 10 ou 12 frames, livrez-en autant (plus de frames = plus fluide dans le moteur). Pour un cycle, sélectionnez une période complète à l'aide de repères de mouvement (contacts des pieds, extrêmes des ailes, pics de flamme).
- Empaqueter. Livrez les frames dans l'ordre de jeu (noms à zéros initiaux) et/ou une
feuille selon les règles de game-asset-core (cellules uniformes, sans séparateurs) — ou les
bandes/grilles transparentes émises par
video2dsprite/generate2dsprite. Indiquez le fps prévu.
Revenez à des keyframes image par image avec imagine_text_to_image (toujours sur #FF00FF lors du
post-traitement avec les scripts de sprites) uniquement lorsque la vidéo échoue pour le mouvement
(rare : poses très stylisées, keyframes dramatiques uniques) — et planifiez alors
les phases vous-même et respectez les lois ci-dessous. Préférez generate2dsprite pour
les grilles multi-images nettes de production.
Lois du mouvement (vérifier ces lois, quel que soit le pipeline)
- Les cycles bouclent ; les allures alternées passent la moitié de la période en miroir.
- Continuité : les membres, accessoires, anatomie, effets se déplacent sur des trajectoires continues — rien ne téléporte, ne disparaît ni ne se duplique entre des frames adjacentes.
- La physique se lit dans les images fixes : en l'air montre l'air, l'anticipation se comprime, le suivi dépasse ; les effets restent ancrés à leur origine sauf si la demande les déplace.
- L'énergie correspond à la demande : repos/subtil signifie frames à peine différentes.
Vérifier — le test de retournement
Visualisez les frames finales strictement dans l'ordre et racontez le mouvement ; vérifiez la fermeture de la boucle explicitement (dernière→première). Une hésitation dans votre narration est un frame échoué. Le pipeline vidéo réussit généralement ce test du premier coup — c'est pourquoi il est le pipeline par défaut.