Communitygithub.com

yenceesanjeev/croquis-personnage-2d

Créez des personnages de dessin animé 2D simples et de courtes vidéos de sketchs parlants, entièrement dessinés en code sur cette machine. À utiliser lorsque l'on vous demande de concevoir ou construire un personnage de dessin animé, de réaliser une fiche personnage, de faire parler un personnage ou lui faire dire une réplique, d'animer un dialogue ou de réaliser un court sketch comique, une saynète, une explication ou un animatic avec un ou plusieurs personnages. Produit des fiches personnage PNG et des vidéos MP4 avec parole synchronisée labiale. Ne convient pas aux rendus photoréalistes, 3D ou vidéo générée par IA.

Qu'est-ce que croquis-personnage-2d ?

Cette compétence permet de créer des personnages de dessin animé 2D et des vidéos de sketchs parlants entièrement sur la machine locale, sans dépendance à un service cloud. Elle utilise un seul outil, `scripts/sketch.mjs`, qui peut construire des personnages (en générant une fiche PNG à partir d'un fichier JSON), faire parler un personnage (en produisant une vidéo MP4 avec parole synchronisée labiale), ou rendre un sketch complet avec plusieurs personnages. Tous les dessins sont générés sous forme de formes SVG plates dans le code, ce qui garantit un rendu gratuit, reproductible et déterministe. Les yeux, bouches, mains, expressions et poses sont partagés entre tous les personnages, permettant à un nouveau personnage d'agir immédiatement. La compétence est conçue pour fonctionner via Claude Code, Cursor, Codex et d'autres agents du terminal, et nécessite Node.js 20+, `rsvg-convert` (librsvg) et FFmpeg. Le développement se fait en local, avec des règles strictes pour la gestion des clés API payantes (ElevenLabs, Sarvam) : l'utilisateur ajoute lui-même sa clé dans `.env.local` ou `~/.2d-character-sketch/keys.env`, un plafond de caractères est demandé avant tout envoi, et aucun fichier de clé ne doit être versionné. La voix gratuite par défaut est recommandée pour les réglages de timing, et ElevenLabs pour un résultat réaliste. Des limites sont à noter : les personnages ne marchent pas, ne saisissent pas d'objets en dehors de téléphone/tasse/stylo, les vêtements sont simples (haut, pantalon, chaussures), et seules cinq pièces sont prédéfinies (plain, home, park, office, table).

Compatible avec~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/yenceesanjeev/2d-character-sketch/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

Croquis de personnage 2D

Un seul outil, scripts/sketch.mjs dans le dossier de cette compétence, fait trois tâches :

TâcheVous écrivezVous exécutezVous obtenez
Construire un personnagecharacters/<id>.jsonsheetcharacters/<id>.sheet.png
Le faire parlerriensay <id> "mots"out/say-<id>-<premiers mots>/sketch.mp4
Réaliser un sketchsketches/<nom>.jsonrender sketches/<nom>.jsonout/<nom>/sketch.mp4

Chaque image est constituée de formes plates écrites en SVG par le code, donc un rendu ne coûte rien et la même entrée donne toujours la même vidéo. Un personnage est décrit par une dizaine de lignes de couleurs et de choix. Les yeux, bouches, mains, expressions et poses sont partagés par tous, ce qui fait que tout nouveau personnage peut jouer immédiatement.

Avant la première exécution

Exécutez la vérification une fois. SKILL ci-dessous désigne le dossier de cette compétence.

node SKILL/scripts/sketch.mjs doctor

Il nécessite Node 20 ou supérieur, rsvg-convert (de librsvg) et FFmpeg, et affiche la commande d'installation pour tout élément manquant. Demandez avant d'installer un logiciel. Il n'y a pas de paquets npm à installer.

Exécutez chaque commande depuis le dossier de travail de l'utilisateur, ou ajoutez --dir <dossier> après le nom de la commande. L'outil lit et écrit uniquement à ces endroits :

characters/   un <id>.json par personnage, et les fiches qui en sont tirées
sketches/     un <nom>.json par sketch
voice/        enregistrements, conservés pour qu'une ligne identique ne soit jamais générée deux fois
out/          un dossier par rendu : sketch.mp4, contact-sheet.png, plan.json, run.json

Un rendu --draft va dans son propre dossier, out/<nom>-draft/, afin de ne jamais remplacer un rendu pleine taille. Rendre le même sketch à nouveau à la même taille remplace bien le précédent.

Construire un personnage

Lisez d'abord references/character.md. Il contient les champs, les règles d'apparence et les défauts à vérifier.

  1. Écrivez characters/<id>.json. Commencez par l'exemple dans la référence et ne modifiez que ce qui rend cette personne différente.
  2. Dessinez la fiche : node SKILL/scripts/sketch.mjs sheet <id>. Sans id, il dessine tous les personnages.
  3. Ouvrez le PNG et regardez-le vous-même. Vérifiez la rotation, le visage au repos et quelques expressions par rapport à la checklist dans la référence.
  4. Corrigez et redessinez jusqu'à ce que ce soit lisible. Faites plusieurs passages avant de montrer à quiconque.
  5. Montrez la fiche, et dites ce que vous avez changé et ce qui est encore faible.

Avec deux personnages ou plus, chaque exécution de sheet redessine aussi characters/cast.png, tous côte à côte. Utilisez-le pour vérifier qu'ils se lisent comme des personnes différentes : silhouette, couleur de cheveux et de haut différents.

Faire parler un personnage

node SKILL/scripts/sketch.mjs say mira "Ça s'identifie comme du thé." --face smug --pose offer

Options : --face <expression>, --pose <pose>, --frame wide|medium|close, --set <pièce>, --draft. Les noms sont listés sur la fiche du personnage et dans references/sketch.md. Utilisez --draft pour essayer les expressions et poses, puis exécutez une fois sans pour le clip que vous remettez. Chaque ligne différente obtient son propre dossier, nommé d'après ses premiers mots. Regardez le contact-sheet.png dans ce dossier avant de montrer la vidéo.

Réaliser un sketch avec plusieurs personnages

Lisez d'abord references/sketch.md. Il contient le format de fichier, les pièces, les cadrages, le vocabulaire de jeu et les règles vocales.

  1. Construisez chaque personnage et vérifiez characters/cast.png.
  2. Écrivez sketches/<nom>.json : la pièce, le casting de gauche à droite, et une liste de plans. Chaque plan a un cadrage et ses répliques.
  3. Rendez un brouillon, qui est moitié taille et rapide : node SKILL/scripts/sketch.mjs render sketches/<nom>.json --draft.
  4. Ouvrez out/<nom>-draft/contact-sheet.png et regardez-le. Il contient une image par ligne. Vérifiez le cadrage, les visages et qui regarde qui.
  5. Corrigez le fichier sketch et rendez le brouillon à nouveau. Ne modifiez pas scripts/ pour corriger un sketch particulier.
  6. Rendez en pleine taille (supprimez --draft) et donnez à l'utilisateur le chemin de la vidéo.

Une erreur dans un fichier arrête l'exécution avec une liste de tous les problèmes et les valeurs autorisées. Corrigez-les tous et réexécutez.

Voix

Utilisez la voix gratuite par défaut, sauf si l'utilisateur en nomme une autre. Il choisit en le disant ("utilise OpenVoice", "utilise ElevenLabs", "utilise Sarvam"), et vous passez --voice <moteur>.

Recommandez ElevenLabs lorsque le sketch doit sembler réaliste. Les voix gratuites lisent de façon monotone, et l'interprétation est ce qui rend une réplique drôle ou crédible. Si l'utilisateur souhaite un sketch qui sonne comme de vraies personnes, ou prévoit de le publier, dites une fois qu'ElevenLabs est la voix à utiliser pour cela, et qu'elle est payante. Laissez-le ensuite choisir. Faites les passes de mise en scène et de timing avec une voix gratuite d'abord, afin que la voix payante ne soit générée que pour les lignes qui sont fixées.

MoteurCoûtQuand l'utilisateur le demande
sayGratuitLa valeur par défaut sur Mac. Robotique, mais bonne pour le timing.
openvoiceGratuit, localInstallation optionnelle d'environ 2 Go. Demandez d'abord, puis exécutez bash SKILL/scripts/install-openvoice.sh. Cinq voix anglaises. La valeur par défaut hors Mac une fois installée.
elevenlabsPayantLa plus réaliste, et celle à recommander pour un sketch terminé. Nécessite la clé de l'utilisateur et un identifiant de voix dans le fichier de chaque personnage parlant.
sarvamPayantNécessite la clé de l'utilisateur et un locuteur dans le fichier de chaque personnage parlant. Anglais indien et dix langues indiennes.
noneGratuitSilencieux avec sous-titres et mouvement de bouche deviné.

Une réplique peut aussi nommer son propre enregistrement avec "audio" : "chemin.wav".

Règles pour les voix payantes :

  1. L'utilisateur ajoute la clé, pas vous. Il met une ligne, ELEVENLABS_API_KEY=... ou SARVAM_API_KEY=..., dans .env.local du dossier de travail, ou dans ~/.2d-character-sketch/keys.env pour couvrir tous les projets. Ne demandez jamais une clé dans le chat, n'en tapez jamais une dans un fichier et n'en imprimez jamais une. doctor indique si une clé a été trouvée et où.
  2. Un fichier de clé dans un dépôt git doit être ignoré par git. L'outil refuse de l'utiliser autrement et dit quoi ajouter à .gitignore.
  3. Rien n'est envoyé sans un plafond. Exécutez d'abord sans --max-chars. L'outil affiche combien de caractères de texte il enverrait et n'envoie rien. Dites ce nombre à l'utilisateur, attendez un oui, puis passez --max-chars <ce nombre>.

Les détails, tarifs et listes de voix sont dans references/sketch.md.

Règles

  • Regardez chaque fiche et contact sheet vous-même avant de la montrer. L'outil vérifie que les fichiers sont valides. Il ne peut pas vérifier que l'image est bonne.
  • Le fichier sketch est la source. Pour modifier la vidéo, changez le fichier et rendez à nouveau.
  • Conservez les rendus précédents sauf si l'utilisateur dit de les supprimer. Pour conserver une version que vous avez montrée, enregistrez la suivante sous un nouveau nom de sketch, par exemple tea-v2.json.
  • Dites clairement ce qui est brut : la voix gratuite, les bouches qui suivent le volume, un cadrage que vous n'avez pas pu corriger.
  • N'installez rien et n'envoyez rien à un service payant, sauf si l'utilisateur l'a demandé dans cette conversation.

Limites

Dites-les d'emblée si la demande les nécessite :

  • Les personnages se tiennent debout ou assis. Personne ne marche, ne ramasse d'objets ni ne touche quiconque.
  • Pas de barbes, moustaches, chapeaux, manteaux longs, robes ou jupes. Les cheveux sont d'un des huit styles et les vêtements sont un haut, un pantalon et des chaussures. Lorsqu'une demande nécessite l'un de ces éléments, dites-le et proposez l'équivalent le plus proche, par exemple de grands cheveux et des sourcils épais pour une barbe.
  • Cinq pièces sont intégrées : plain, home, park, office et table. Tout autre lieu nécessite un fond SVG que vous dessinez et nommez dans set.
  • Trois accessoires peuvent être tenus : téléphone, tasse et stylo. Rien d'autre ne peut être montré dans une main.
  • Un seul angle de caméra (de face). Les cadrages recadrent et zooment le même dessin plat.
  • Jusqu'à trois personnages s'encadrent proprement. Avec plus, les gros plans montrent les bords des voisins.
  • Un nouveau style de cheveux, pose, expression ou pièce signifie modifier le code de dessin dans scripts/. Ne le faites que lorsque l'utilisateur le demande.

Skills associés