Communitygithub.com

vvai-pixel-mv · Pixel MV

Transformez une chanson (audio + paroles synchronisées SRT/LRC) en un MV pixel art animé avec une histoire, des personnages et des effets au tempo. Idéal pour les créateurs souhaitant réaliser un ClaudeMV narratif et rythmé.

Qu'est-ce que vvai-pixel-mv · Pixel MV ?

Ce skill permet de créer un MV pixel art au tempo (ClaudeMV) à partir d'un fichier audio et de ses paroles synchronisées (SRT ou LRC). Le processus est strict : rédaction d'un scénario, génération d'un storyboard visuel (consultable et modifiable par l'utilisateur), validation explicite de l'utilisateur, puis rendu final en MP4 via HyperFrames. Il prend en charge plusieurs personnages (moi, elle, nouveau copain…), des actions narratives (lâcher prise, se retourner, pleurer, cœur brisé, enlever ses lunettes…), 7 types d'interactions avec les paroles, 7 transitions, un point de vue fenêtre de bureau, 27 scènes et conditions météo pixel, et des effets synchronisés au tempo. Utilisation typique : « fais un MV pixel », « transforme cette chanson en ClaudeMV », « MV de petits personnages pixel », « MV au tempo » ou quand l'utilisateur télécharge une chanson et ses paroles. Ne pas utiliser pour des vidéos de doublage ou de commentaire (utiliser plutôt /xumu).

Compatible avec✓Claude Code~Codex CLI~Cursor
npx skills add cecilPENG53/vvai-pixel-mv

Demander à votre IA préférée

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

Documentation

vvai-pixel-mv · MV pixel au tempo

Ordre fixe : Scénario → Storyboard (l'utilisateur regarde, modifie, peut faire plusieurs allers-retours) → Validation utilisateur → Rendu. Aucun rendu sans un storyboard validé par l'utilisateur.

Un exemple complet se trouve dans assets/examples/ : scénario et story.json d'une chanson, 7 segments, 3 personnages, avec fenêtre de bureau.

Préparation

  • PY : Python 3.10 ou supérieur avec librosa, faster-whisper, numpy, Pillow installés (voir INSTALL.md). Si le CLAUDE.md ou la mémoire de l'utilisateur mentionne un chemin Python, utiliser celui-ci. Sinon, vérifier d'abord que python peut importer ces paquets, demander à l'utilisateur en cas d'échec.
  • MV : PY -X utf8 <chemin_skill>/scripts/pixel_mv.py.
  • Nécessite ffmpeg et Node. Le rendu utilise par défaut npx --yes [email protected] ; pour changer de CLI, définir la variable d'environnement HF_CLI (séparer les paramètres par |).

Déroulement

  1. Collecte du matériel. Obligatoire : audio, paroles synchronisées (srt ou lrc) et titre de la chanson.
    • Optionnel : secondes de début/fin, palette de couleurs (base / neon / classic / retro), intensité (dj / standard / soft), images des personnages.
    • Demander également l'histoire : l'utilisateur a-t-il déjà une intrigue en tête ? Sinon, proposer des idées à l'étape 3.
    • Si aucun fichier de paroles n'est fourni, le demander à l'utilisateur. Ne pas utiliser la transcription automatique. Si des parties ne sont pas vocales, demander d'abord à l'utilisateur (ne pas les traiter comme une intro).
  2. Création du projet : MV new <dossier_projet> --audio <audio> --lyrics <srt/lrc> --title <titre> [--start secondes --end secondes] [--look base] [--character image].
    • Cette étape découpe l'audio, détecte le tempo et les pics d'énergie, aligne les paroles mot à mot.
    • Génère également une première ébauche story.json avec changements de scène basés sur des mots-clés, ainsi qu'un modèle storyline.md.
    • Le projet est placé dans le dossier spécifié par l'utilisateur ; s'il a un dossier de série fixe (mentionné dans CLAUDE.md ou sa mémoire), l'y placer.
  3. Rédaction du scénario. Remplir storyline.md selon la méthode de narration : histoire en une phrase, personnages, thème, actes, vers par vers. Soumettre à l'utilisateur pour validation.
  4. Rédaction de story.json. Traduire le scénario en story.json.
    • Voir le format pour les champs, les actions disponibles, les types de paroles, les transitions dans le répertoire des interactions.
    • Le plus rapide est de s'inspirer de assets/examples/bad-girl.story.json.
    • Après l'écriture, exécuter MV check <projet> jusqu'à ce qu'il n'y ait plus d'erreurs.
  5. Génération du storyboard pour l'utilisateur.
    • Exécuter MV board <projet> --frames : capture 1 à 3 images par segment, génère storyboard.md avec un aperçu général, puis par segment : personnages, actions narratives, paroles (numéros de vers et mode d'apparition), transitions, cadrage, points de synchronisation.
    • Envoyer storyboard.md et les planches contact du dossier storyboard/images/ à l'utilisateur via SendUserFile.
    • Indiquer à l'utilisateur ce qui peut être modifié.
  6. Modifications jusqu'à satisfaction. L'utilisateur demande des changements ; modifier story.json, puis réexécuter board.
    • Le numéro de version augmente automatiquement, l'ancienne version est conservée dans storyboard/history/.
    • Possibilité de faire plusieurs allers-retours, en envoyant à chaque fois le nouveau storyboard à l'utilisateur.
  7. Validation et rendu.
    • Uniquement si l'utilisateur dit explicitement « peux-tu lancer le rendu ? », exécuter MV approve <projet>, puis MV render <projet> --sample 12.
    • Les réponses vagues (« d'accord » « fais comme tu veux ») ne sont pas considérées comme une validation.
    • render vérifie l'empreinte de story.json ; si le fichier a été modifié après validation, le rendu est refusé.
    • Si le fichier dépasse 30 Mo, générer en plus une version _apercu.mp4 pour mobile.
  8. Livraison. Vérifier soi-même en assemblant une image par seconde : l'histoire est compréhensible, les scènes, paroles, transitions et titre sont présents, la durée correspond à l'audio original et la piste sonore est là.
    • Si l'utilisateur souhaite encore des modifications après le rendu, revenir à l'étape 6 : modifier story.json → nouveau storyboard → nouvelle validation → nouveau rendu.

Règles essentielles

  • L'histoire prime sur les effets. Chaque vers doit comporter au moins une action narrative ou une interaction avec les paroles ; les actions narratives doivent correspondre temporellement aux mots-clés ; les transitions doivent avoir une raison narrative. Voir la méthode de narration.
  • Changement de scène : en l'absence d'exigence narrative, par défaut « bureau principal + insertion d'images symboliques », voir les règles de storyboard. Avec une histoire, suivre les actes ; les parties de prise de conscience ou de rétrospective utilisent le point de vue fenêtre de bureau.
  • Personnages :
    • Par défaut, le petit personnage Claude représente « moi ».
    • Les autres personnages sont déclarés via cast (girl, rival, friend, ghost).
    • Si l'utilisateur fournit une image, exécuter MV character <projet> <image> pour la convertir en personnage 16×16 pixels.
  • Sync tempo :
    • Le personnage atterrit exactement sur chaque temps fort, s'écrase au sol, avec une ondulation qui se propage sous ses pieds.
    • Chaque temps fort provoque un impact de caméra et un flash de couleur ; les temps forts supplémentaires ajoutent une séparation RVB.
    • Les flashs blancs pleine écran sont réservés aux transitions et aux drops, maximum 3 par seconde.
  • Réaction de surprise : maximum 2 par vidéo, réservée aux vrais retournements.
  • Paroles :
    • Apparaissent uniquement dans les images et les fichiers du projet ; dans les réponses de chat et le storyboard, n'écrire que le numéro de vers.
    • Les droits d'auteur de la chanson sont de la responsabilité de l'utilisateur ; lui rappeler avant publication.

Liste des commandes

CommandeRôle
newCréer un projet : analyse + alignement + ébauche + scénario
storyGénérer le modèle storyline.md (--force pour recréer)
checkVérifier que les noms, temps et fenêtres dans story.json sont reconnus par le moteur
board [--frames]Générer le storyboard (version N), sauvegarder l'historique
approveEnregistrer la version validée par l'utilisateur ; nécessaire avant render
render [--sample 12] [--name nom_fichier]Lancer le rendu ; --force ignore la validation, à utiliser uniquement si l'utilisateur le demande explicitement
syncSynchroniser story.json vers assets/story.js (pour débogage ; board et render le font automatiquement)
upgradeMettre à jour un ancien projet vers le moteur de template actuel, les anciens fichiers sont sauvegardés avec .before-upgrade
characterImage → personnage pixel
analyze / align / draftÉtapes individuelles de new, à utiliser pour relancer une étape spécifique

Personnalisation au-delà du template

Le moteur de template v2 couvre déjà ce qui suit (voir le répertoire des interactions) :

  • 27 scènes, 16 actions de base ;
  • 23 actions narratives ;
  • 7 types d'interaction avec les paroles, 6 entrées, 9 sorties ;
  • 7 transitions ;
  • Fenêtre de bureau.

Si ce n'est pas suffisant, ajouter des éléments dans assets/engine.js du projet (ne pas modifier le template du skill). Se référer aux techniques de l'épisode 1. Pour intégrer une nouvelle séquence dans le template, d'abord demander l'accord de l'utilisateur. Ensuite, modifier simultanément :

  • Le template engine.js ;
  • Les listes BEAT_NAMES etc. dans pixel_mv.py, ainsi que les noms chinois ZH_* pour le storyboard ;
  • interactions.md.

Bibliothèque de scènes

  • Les données sont dans assets/scene-library/scenes.json.
  • Pour ajouter une scène, modifier à deux endroits : enregistrer les mots-clés et interactions dans scenes.json, et la méthode de dessin dans le tableau SCENES du template engine.js.

Skills associés