Communitygithub.com

nnesu/animated-shorts

Crée un court métrage animé vertical (environ 40-90 s) dans le style « personnages de dessin animé 2D dans un monde 3D peint », avec narration vocale, effets sonores libres de droits CC0 et musique par scène, rendu avec three.js dans Remotion en 1080×1920.

Qu'est-ce que animated-shorts ?

Ce skill permet de générer automatiquement des courts métrages animés au style « personnages de dessin animé 2D dans un monde 3D peint », à partir d'une histoire vraie et surprenante. Il est conçu pour les agents IA comme Claude Code, Cursor ou Codex, et repose sur un pipeline complet allant de la recherche de faits à la livraison d'une vidéo finale en 1080×1920 à 30 fps. Le skill utilise three.js pour le rendu 3D et Remotion pour la composition vidéo, avec une intégration poussée de la narration vocale, des effets sonores et de la musique. Le processus comprend 12 étapes : choix du sujet, écriture du script, enregistrement vocal, construction du décor en 3D, planification des plans, rendu des images de test, validation, mixage audio, rendu final et contrôle qualité. L'agent est guidé par des fichiers de référence (API, style, son, rendu) et ne doit jamais modifier les fichiers partagés du moteur (src/shared/). Le skill respecte des règles strictes de licence (CC0 uniquement), de montage (pas de légendes, ton unique) et de flux de travail (validation utilisateur à deux étapes : script et images clés).

Compatible avec✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/nnesu/animated-shorts/tree/HEAD

Demander à votre IA préférée

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

Documentation

Court métrage animé 3D (three.js + Remotion)

Les commandes sont exécutées depuis la racine du projet, en Bash (pas PowerShell). references/ et templates/ sont relatifs à ce skill ; SK = .claude/skills/cartoon-3d-short.

Les courts métrages terminés dans src/videos/ ne sont jamais modifiés. Ne les lisez pas pour apprendre le code : references/API.md est la carte.

references/STYLE_BIBLE.md et references/reports/ sont du matériel d'étude provenant d'un autre canal. Ne copiez jamais les scripts, personnages ou plans de ce canal, ne les nommez jamais dans une voix-off ou une description.

Règles

  • Pas de sous-titres ni d'étiquettes. Anglais uniquement. Un seul ton de voix constant. Les blagues sont des faits réels documentés.
  • Chaque plan cache l'horizon derrière des bâtiments, des arbres avec des buissons de 2-3 m dans les trous du tronc, ou une colline lointaine. Remplissez uniquement ce que la caméra voit. Les décors sont riches : foules denses, ornements, textures, drapeaux.
  • L'export final est en 1080×1920 à 30 ips, jamais avec --scale.
  • Mixage : voix, effets sonores CC0 gratuits environ 6 dB en dessous, indices musicaux par scène (jamais une seule piste continue) atténués sous la voix, l'ensemble à -15 LUFS.
  • Approbation permanente pour les effets sonores et modèles 3D gratuits sans copyright : vérifiez la licence sur la page du fichier, ignorez les licences avec attribution / non-commercial / partage à l'identique, enregistrez-la dans _sfx/LICENSES.md, indiquez ce que vous avez récupéré et sa taille. Demandez avant toute connexion, paiement, autre téléchargement, ou exécution d'un package non installé.
  • Liste de vérification des images clés (references/QA.md) : agent Opus-medium sur le premier jeu complet et une fois de plus avant le rendu, vos propres revérifications entre les deux, puis l'utilisateur approuve les images clés. Aucun score absolu n'est un blocage.
  • Les corrections ne rendent à nouveau que les parties modifiées (--redo), jamais la vidéo entière.
  • Enregistrez après chaque étape. Deux arrêts pour l'utilisateur : approbation du script, et approbation des images clés finales avant le rendu final. Sinon, travaillez jusqu'à la livraison sans demander.

Pipeline

  1. Sujet et faits. Une histoire vraie surprenante avec une cause et un effet visuels et physiques, plus une analogie tirée de la vie quotidienne. Les faits avec sources sont placés en haut de src/videos/<nom>/SCRIPT.md.
  2. Script. La longueur suit l'histoire. Le nombre de mots = secondes × mots/s, mesuré à partir d'un échantillon d'une phrase de la voix choisie (pas d'échantillon : supposer 3 et vérifier après la prise). Temps forts : accroche (fait absurde, une ligne), cadre (année, lieu, fierté), action (3-4 temps forts croissants), retournement, voix blague (« Heureusement... / Malheureusement... »), explication (une idée, analogie quotidienne), conséquence, coup de théâtre final. Ne décrivez jamais ce que le spectateur voit déjà. Disposition uniquement : templates/SCRIPT_example.md. Arrêtez-vous ici jusqu'à ce que l'utilisateur approuve le script.
  3. Voix. L'utilisateur génère la prise dans _voiceover/<nom>/voice_raw.wav. Ensuite python scripts/voice_trim.py _voiceover/<nom>/voice_raw.wav _voiceover/<nom>/voice.wav et python scripts/words_whisper.py _voiceover/<nom>/voice.wav _voiceover/<nom>/words.json. Tout est synchronisé sur words.json : ne le lisez jamais, imprimez-le sous forme de mot@image et corrigez les mots erronés avec un petit script. Agissez sur la ligne kept pauses (references/GOTCHAS.md « Voice »).
  4. Dossier vidéo. Copiez les quatre fichiers de templates/starter/ dans src/videos/<nom>/, renommez Short.tsx en <Nom>.tsx et StarterShort / STARTER_FRAMES à l'intérieur, enregistrez la composition dans src/Root.tsx. Ils contiennent uniquement les données de l'histoire plus une démo de 2 plans marquée EXAMPLE ; le moteur est dans src/shared/. Lisez references/API.md avant de modifier. Si src/shared/ ou scripts/ est manquant ou ne contient pas de fichier, copiez-le depuis templates/shared/ ou templates/scripts/.
  5. Recherche d'accessoires. Pour chaque temps fort, grep public/kenney/INDEX.txt et mettez les sélections dans un tableau dans src/videos/<nom>/PROPS.md. Accessoire manquant : récupérez un pack CC0 gratuit (references/GOTCHAS.md) dans public/kenney/<pack>/, ajoutez-le à INDEX.txt, ajoutez <pack>/<model> à KENNEY dans world.ts.
  6. Plan de tournage dans story.ts : TOTAL = ceil(secondes voix × 30), puis SHOTS, XFADE, FLASH_AT, CAMS, KICKS, DOF_V2. Les réactions visuelles se placent 0-3 images avant leur mot. Chaque plan fixe bouge imperceptiblement. Chaque mouvement en boucle a un temps de commutation explicite.
  7. Construisez les plans en remplaçant les parties EXAMPLE. L'apparence de la maison est intégrée dans le moteur (references/LOOK.md) ; ne modifiez jamais src/shared/ pour une seule vidéo.
    • Monde (world.ts) : décors, accessoires, matériaux, accessoires mobiles dans pose(). Le ciel, les lumières, la ville, le port, le soleil et l'élimination des lignes de vue proviennent du moteur. Passez keep = true à prop() pour les accessoires principaux.
    • Personnages (cast.ts) : tenues et un cas stage() par mise en scène. Les cartes, les contours, les clignements et les ombres proviennent du moteur.
    • Composition (<Nom>.tsx) : nom et poolShots uniquement. La chaîne de post-traitement (encre, flou d'objectif, bloom, mappage des tons, étalonnage) est dans le moteur.
  8. Vérification des images clés, avant tout rendu long (references/QA.md) : image milieu de plan de chaque plan, vérifications scriptées, vérification agent, correction et auto-vérification, deuxième vérification agent, correction et auto-vérification. Arrêtez-vous ici jusqu'à ce que l'utilisateur approuve les images clés.
  9. Préparation sonore (references/SOUND.md) : événements SFX dans _sfx/<nom>_events.json, indices musicaux dans _sfx/<nom>_music_cues.json.
  10. Rendu final (references/RENDER.md) : REMOTION_TMP=C:/remotion-tmp node scripts/render_chunks.mjs <Comp> out/<nom>/video.mp4 <TOTAL>.
  11. Mixage et QA. Assemblez la musique (music_cues.py, voir references/SOUND.md), puis python SK/templates/audio/build_mix.py _voiceover/<nom>/voice.wav out/<nom>/video.mp4 out/<nom> _sfx/<nom>_events.json [_sfx/<nom>_music.wav] écrit video_final.mp4. Ensuite python scripts/bridge_shots.py src/videos/<nom>/story.ts out/<nom>/shots.json et python scripts/short_qa.py out/<nom>/video_final.mp4 out/<nom>/qa out/<nom>/shots.json --voice _voiceover/<nom>/voice.wav, qui doit se terminer avec le code 0. Corrigez avec render_chunks.mjs ... --redo A-B,C-D, puis mixez et QA à nouveau. Remarques de l'utilisateur sur la vidéo finale : references/QA.md « User review ».
  12. Livrez. Envoyez video_final.mp4 (plus de 30 Mo : un aperçu plus petit plus le chemin), supprimez les dossiers groupés de ce court métrage dans C:/remotion-tmp, mettez à jour la mémoire.

Fichiers de référence

FichierÀ lire quand
references/QA.mdvérification des images clés, invite de checklist, short_qa
references/SOUND.mdbibliothèques SFX, indices musicaux, mixage
references/RENDER.mdparamètres de rendu, boucle de correction, reprise
references/API.mdavant de modifier les fichiers de démarrage : quoi mettre où, signatures de fonctions
references/GOTCHAS.mdvoix, accessoires et décors, pièges de cadrage, ce PC
references/LOOK.mdvaleurs d'apparence de la maison, règles de caméra et de personnages
references/LOOK_MATCH.mduniquement pour l'apparence de référence d'origine ou un passage de correspondance d'apparence
references/house/GRADER_PROMPT.mdcomparaison A/B par paire, uniquement lors d'un changement d'apparence

Pour modifier le skill lui-même (docs, starter, moteur, scripts) : lisez d'abord MAINTAINING.md.

Skills associés