Communitygithub.com

Luan-vP/fire-sprites

Transformez la vidéo d'un artiste du feu en animations de sprites prêtes pour le jeu. Utilisez ceci lorsque vous avez des images de cracheur de feu, spinning de poi, bâton, épée ou d'autres arts du feu (généralement filmés de nuit) et que vous souhaitez découper l'artiste de l'arrière-plan pour créer des feuilles de sprites, des animations de mouvements ou des assets de jeu. Couvre la sélection de scènes, le rognage avec l'artiste, la suppression de l'arrière-plan avec des couches corps et feu séparées, et le packaging ; délègue à fire-sprites-retro pour un rendu 8-bit.

Qu'est-ce que fire-sprites ?

Ce skill transforme une vidéo brute d'un artiste du feu (feu, poi, bâton, épée, etc.) en animations de sprites prêtes pour un jeu vidéo. Il guide un assistant IA à travers un pipeline complet : ingestion avec mesure du niveau de noir réel, analyse de pose pour détecter les segments exploitables, détection des bouffées de feu par luminosité, catalogage des mouvements par sous-agents, rognage interactif par l'artiste, rendu avec séparation des couches corps et feu (le feu en mode additif pour un rendu réaliste), et packaging final au format atlas (atlas.json, frames, ancrage des pieds). Les outils sont dans un dossier tools/ et s'exécutent dans un répertoire projet dédié. Les sous-agents sont utilisés pour le catalogage visuel parallèle. Le skill impose des règles d'honnêteté : signaler les limites (secondes exploitables, membres coupés, murs dans la couche feu) et ne jamais publier les données de l'artiste sans permission. Une étape optionnelle permet de générer une version rétro 8-bit via le skill fire-sprites-retro. Ce skill est idéal pour les développeurs de jeux, les artistes VFX, ou les intégrateurs IA qui souhaitent automatiser la création d'assets de personnages à partir de vidéos de performances réelles.

Compatible avec~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/Luan-vP/fire-sprite-kit/tree/HEAD/skills/fire-sprites

Demander à votre IA préférée

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

Documentation

Vidéo de performance de feu en sprites

Vous guidez un artiste depuis une vidéo brute jusqu'à des feuilles de sprites qu'il pourra utiliser dans un jeu. Il connaît sa performance ; vous exécutez les outils. Impliquez-le aux deux endroits où son jugement compte (quels mouvements, et où chaque mouvement commence et se termine) et faites tout le reste vous-même.

Les outils se trouvent dans le dossier tools/ de ce kit (deux niveaux au-dessus de ce fichier). Appelez-le $KIT. Chaque outil s'exécute dans un répertoire projet que vous créez pour cet artiste ; les vidéos sources sont référencées, jamais copiées.

Lisez references/how-it-works.md une fois avant de commencer. Il explique les trois idées sur lesquelles repose tout le pipeline : couches corps et feu séparées, gestion de l'exposition, et normalisation ancrée sur les pieds.

0. Configuration (une fois par machine)

cd $KIT && python3 -m venv .venv && .venv/bin/pip install -r requirements.txt

Utilisez une compilation Python native pour la machine (sur Apple Silicon, un Python x86 installe silencieusement un PyTorch ancien et uniquement CPU). ffmpeg et ffprobe doivent être dans le PATH. Un GPU (Apple MPS ou CUDA) est fortement recommandé : le rendu coûte environ 3 s par image de sortie sur un M2 Max. Les poids du modèle se téléchargent lors de la première utilisation.

Ci-dessous, py signifie $KIT/.venv/bin/python et les commandes s'exécutent depuis le répertoire projet.

1. Demander les bonnes images

Demandez à l'artiste les fichiers originaux de la caméra, pas un export édité ou pour les réseaux sociaux. Regardez dans le dossier qu'il vous indique : un original 4K, 10 bits, 50 ips se trouve souvent à côté d'un final cut 720p, et tout ce qui suit en est meilleur. Demandez aussi s'il existe des images de lui marchant ou debout avant que le feu ne soit allumé : les routines de feu contiennent rarement un cycle de marche propre, et les jeux en ont besoin.

mkdir -p ~/sprite-projects/NOM && cd ~/sprite-projects/NOM
py $KIT/tools/ingest.py main "/chemin/vers/original.mov"      # répétez avec d'autres noms pour d'autres clips

Lisez ce que ingest imprime. Il mesure le niveau de noir réel (les balises de plage de fichier ne sont pas fiables) et avertit en cas de sources 8 bits, basse résolution et fréquence d'images variable. La fréquence d'images variable doit d'abord être corrigée (ré-encodage en fréquence d'images constante), sinon les numéros d'image dérivent entre la proxy et la source.

2. Trouver les images utilisables

py $KIT/tools/pose_pass.py main                             # lent : environ 15 images proxy par seconde
py $KIT/tools/find_segments.py main --strips                # ajoutez --performer skin si une foule habillée est dans le champ
py $KIT/tools/find_bursts.py main                           # bouffées de feu, détectées par luminosité
  • find_segments conserve les séquences où tout le corps est dans le cadre et debout. Attendez-vous à ce qu'une fraction des images soit qualifiée : les caméras portatives coupent constamment les pieds. C'est normal ; dites le nombre à l'artiste.
  • Regardez vous-même quelques strips/*.jpg. Si elles suivent la mauvaise personne, passez en mode --performer.
  • Regardez bursts/main.jpg. Conservez uniquement les vraies bouffées de feu, puis py $KIT/tools/catalog.py add-bursts main (et supprimez les entrées erronées de catalog/selected.json). Les bouffées de feu sont trouvées de cette manière car la recherche basée sur la pose rejette les images surexposées.

3. Cataloguer les mouvements (utiliser des sous-agents)

py $KIT/tools/catalog.py batches 5

Confiez chaque lot à un sous-agent en utilisant le prompt dans references/catalog-prompt.md (remplissez le numéro de lot et décrivez l'artiste en une ligne pour que les réviseurs puissent rejeter la mauvaise personne). Ils lisent les filmstrips numérotés par image et écrivent catalog/outK.json. C'est l'étape qui bénéficie le plus des agents en parallèle : c'est purement visuel, et chaque lot est indépendant. Ensuite :

py $KIT/tools/catalog.py select            # shortlist : qualité >= 4, plus marches/tours/tours/attaques à 3
py $KIT/tools/catalog.py list

Dites clairement à l'artiste ce qui a été trouvé et ce qui ne l'a pas été (par exemple : "13 idles, 8 tours, mais une seule vraie marche, à partir du clip avant que le feu ne soit allumé").

4. L'artiste rogne et choisit

py $KIT/tools/make_trim.py                 # un clip contextuel par mouvement + trim.html
open trim.html

Les plages des réviseurs sont délibérément serrées ; les vrais mouvements ont besoin de respirer dans ce qui précède et suit. Dans trim.html, l'artiste fait glisser le début et la fin de chaque mouvement sur quelques secondes d'images environnantes, marque Garder ou Supprimer, et copie la liste depuis la boîte en bas. Demandez-lui de vous la coller. La page stocke son état dans son navigateur, vous ne pouvez donc pas la lire vous-même. Sauvegardez le texte collé dans un fichier et :

py $KIT/tools/catalog.py apply-trim gardes.txt

5. Rendu, packaging, révision

py $KIT/tools/render_move.py --gardes        # longue durée : exécutez-la en arrière-plan
py $KIT/tools/pack.py --gardes
open review.html

Avant de faire votre rapport, regardez vous-même plusieurs fichiers moves/NOM/preview.jpg. Choses à vérifier et à dire à voix haute :

  • une autre personne fusionnée dans le découpage (mettez "gate": true sur ce mouvement dans catalog/selected.json si le mouvement n'a pas d'accessoire, puis re-rendu avec --force);
  • mur éclairé par le feu apparaissant dans la couche feu ;
  • pieds ou tête coupés : render_move imprime la proportion de chaque plage avec tout le corps dans le champ. Les rognages étendus tombent souvent sur des images où l'artiste quitte le cadre.

review.html joue chaque mouvement avec des commutateurs d'arrière-plan et de couche, y compris "corps + lueur de feu additive", ce qui est la façon dont un jeu devrait le dessiner. atlas.json contient la grille d'images, les ips, l'ancrage des pieds et la plage source par mouvement.

6. Optionnel : rendu 8 bits

S'il souhaite une version rétro, utilisez le skill fire-sprites-retro.

Règles d'honnêteté pour ce travail

  • Signalez les comptes et les limites, pas seulement les succès : combien de secondes étaient utilisables, quels mouvements ont des membres coupés, quelles couches de feu incluent le mur.
  • Les images imposent des limites strictes. Un nuage de feu qui sort du cadre de la caméra a un bord droit ; une flamme surexposée n'a pas de texture interne à récupérer. Dites-le au lieu de promettre une correction.
  • Ne mettez jamais les images, le nom ou les sprites rendus de l'artiste dans un espace public. Les sorties restent dans le répertoire projet sauf s'il demande autrement.

Voir references/troubleshooting.md pour les problèmes rencontrés en pratique et ce qui les a résolus.

Skills associés