Communitygithub.com

vvai-pixel-mv · Pixel-MV mit Figuren im Pixel-Stil

Erstelle aus einem Song (Audio + zeitcodiertem SRT/LRC) ein geschichtenbasiertes Pixel-Figuren-MV mit Takt-Synchronisation (nach dem ClaudeMV-Prinzip).

Was ist vvai-pixel-mv · Pixel-MV mit Figuren im Pixel-Stil?

Dieses Skill wandelt einen Song mit zeitcodiertem Untertitel (SRT oder LRC) in ein taktsynchrones Pixel-Figuren-MV um. Der Workflow ist streng sequenziell: zuerst wird eine Storyline entwickelt, dann ein Storyboard mit Vorschaubildern erstellt, das der Nutzer mehrfach überarbeiten kann, bevor es final freigegeben und gerendert wird. Es unterstützt mehrere Charaktere (z. B. ich, sie, neuer Freund), dramatische Aktionen (Loslassen, Umdrehen, Weinen, Herzschmerz, Sonnenbrille abnehmen), sieben Arten von Lyrik-Interaktionen, sieben Übergänge, eine Desktop-Fenster-Perspektive, 27 Pixel-Szenen und Wettereffekte sowie taktgenaue VFX. Das Rendering erfolgt mittels HyperFrames zu MP4. Das Skill spricht auf Äußerungen wie „Mach ein Pixel-MV“, „Mach das zu einem ClaudeMV“, „Pixel-Figuren-MV“, „Takt-MV“ oder „Ich habe einen Song und Lyrics hochgeladen“ an. Für reine Sprach- oder Erklärvideos wird /xumu verwendet.

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

In Ihrer bevorzugten KI fragen

Öffnet einen neuen Chat, in dem dieser Agent-Skill bereits geladen ist.

Dokumentation

vvai-pixel-mv · Pixel-Figuren-Takt-MV

Reihenfolge festgelegt: Storyline → Storyboard (Nutzer sieht, ändert, kann mehrfach hin und her) → Nutzer bestätigt → Ausgabe. Ohne bestätigtes Storyboard wird nicht gerendert.

Vollständiges Beispiel in assets/examples/: Storyline und story.json eines Songs, 7 Abschnitte, 3 Figuren, mit Desktop-Fenster.

Vorbereitung

  • PY: Python 3.10+ mit installierten Paketen librosa, faster-whisper, numpy, Pillow. Installation siehe INSTALL.md. Wenn in der CLAUDE.md oder im Gedächtnis des Nutzers ein Python-Pfad steht, wird dieser verwendet; falls nicht, zunächst prüfen, ob python die genannten Pakete importieren kann, sonst den Nutzer fragen.
  • MV: PY -X utf8 <dieses Skill>/scripts/pixel_mv.py.
  • Benötigt ffmpeg, Node. Rendering standardmäßig über npx --yes [email protected]; zum Wechseln des CLI die Umgebungsvariable HF_CLI setzen, mehrere Parameter mit | trennen.

Ablauf

  1. Material sammeln. Erforderlich: Audiodatei, zeitcodierte Lyrics (srt oder lrc) und Songtitel.
    • Optional: Start/End-Sekunden, Look (base / neon / classic / retro), Intensität (dj / standard / soft), Figurenbilder.
    • Auch die Geschichte erfragen: Hat der Nutzer eine Handlung im Kopf? Falls nein, in Schritt 3 einen Vorschlag machen.
    • Fehlt eine Lyrikdatei, den Nutzer danach fragen – nicht per Transkription raten. Abschnitte, bei denen keine Stimme transkribiert wird, zunächst beim Nutzer erfragen, nicht als Intro behandeln. (In Folge 1 wurde die Strophe fälschlich als Intro eingestuft.)
  2. Projekt anlegen: MV new <Projektverzeichnis> --audio <Audio> --lyrics <srt/lrc> --title <Songtitel> [--start Sekunden --end Sekunden] [--look base] [--character Bild].
    • Dieser Schritt schneidet das Audio, misst Beat- und Energie-Höhepunkte und aligniert die Lyrics wortgenau.
    • Gleichzeitig wird ein erster Entwurf story.json erstellt, der nur nach Schlüsselwörtern Szenen wechselt, sowie eine Vorlage Storyline.md.
    • Das Projekt wird in das vom Nutzer angegebene Verzeichnis gelegt; falls der Nutzer ein festes Serienverzeichnis hat (in CLAUDE.md oder Gedächtnis), dorthin.
  3. Storyline schreiben. Nach der Methode des Geschichtenerzählens die Storyline.md ausfüllen: Ein-Satz-Geschichte, Figuren, Motiv, Akte, Satz für Satz. Dem Nutzer zur Bestätigung vorlegen.
  4. story.json schreiben. Die Storyline in story.json übersetzen.
    • Felder siehe Format, verfügbare Aktionen, Lyrik-Modi und Übergänge siehe Interaktionskatalog.
    • Am schnellsten geht es, sich an assets/examples/bad-girl.story.json zu orientieren.
    • Nach dem Schreiben MV check <Projekt> ausführen, bis keine Fehler mehr auftreten.
  5. Storyboard für den Nutzer erstellen.
    • MV board <Projekt> --frames ausführen: Pro Abschnitt 1–3 Bilder einfangen, Storyboard.md erzeugen – mit Übersicht, abschnittsweisen Figuren, Handlungsaktionen, Textzeilen und Erscheinungsweise, Übergängen, Kameraeinstellungen, Taktschlägen.
    • SendUserFile verwenden, um dem Nutzer Storyboard.md und die Kontaktabzüge im Ordner Storyboard/Bilder/ zu senden.
    • Dem Nutzer mitteilen, welche Stellen geändert werden können.
  6. Bis zur Zufriedenheit überarbeiten. Der Nutzer schlägt Änderungen vor – dann story.json bearbeiten und erneut board ausführen.
    • Die Version wird automatisch um 1 erhöht, alte Versionen bleiben in Storyboard/Verlauf/.
    • Mehrere Iterationen sind möglich; jedes Mal das neue Storyboard an den Nutzer senden.
  7. Nach Bestätigung ausgeben.
    • Erst wenn der Nutzer explizit „Kann ausgegeben werden“ sagt, MV approve <Projekt> ausführen, danach MV render <Projekt> --sample 12.
    • Vage Antworten („OK“, „Mach mal“) gelten nicht als Bestätigung.
    • render prüft den Fingerabdruck der story.json; wurde nach approve erneut geändert, wird die Ausgabe verweigert.
    • Bei Dateien über 30 MB wird zusätzlich eine _Vorschau.mp4 für Mobilgeräte erstellt.
  8. Übergabe. Als 1 Bild/Sekunde-Kollage selbst ansehen: Geschichte verständlich, Szenen, Lyrics, Übergänge, Titel vorhanden, Dauer identisch mit Original-Audio, Tonspur vorhanden.
    • Möchte der Nutzer nach der Ausgabe noch Änderungen, zurück zu Schritt 6: story.json bearbeiten → neues Storyboard → erneut bestätigen → erneut rendern.

Wichtige Regeln

  • Geschichte vor Effekten. Jeder Satz benötigt mindestens eine Handlungsaktion oder eine Lyrik-Interaktion; Handlungsaktionen auf den Zeitpunkt des Schlüsselworts legen; Übergänge müssen einen erzählerischen Grund haben. Siehe Methode des Geschichtenerzählens.
  • Szenenwechsel: Ohne erzählerische Vorgabe standardmäßig „Desktop im Vordergrund + Bildeinschübe“, siehe Storyboard-Regeln. Bei einer Geschichte nach Akten vorgehen; Abschnitte wie Erkenntnis oder Rückblick verwenden die Desktop-Fenster-Perspektive.
  • Figuren:
    • Standardmäßig Claude-Figur für „ich“.
    • Andere Figuren per cast deklarieren (girl, rival, friend, ghost).
    • Wenn der Nutzer ein Bild bereitstellt, MV character <Projekt> <Bild> ausführen, um es in eine 16×16-Pixel-Figur umzuwandeln.
  • Takt:
    • Die Figur landet genau auf jedem Beat, beim Aufprall gestaucht, unter den Füßen breitet sich eine Wasserwelle aus.
    • Jeder Beat erhält einen Kamera-Impact und Farbflash; starke Beats zusätzlich RGB-Separation.
    • Vollbild-Weißblitz nur bei Übergängen und Drops, maximal 3× pro Sekunde.
  • Schreckreaktionen maximal 2× im gesamten Video, nur bei echten Wendungen.
  • Lyrik-Text:
    • Erscheint nur im Bild und in den Projektdaten; in Chat-Antworten und Storyboard nur Satzzeichen verwenden.
    • Das Urheberrecht an den Songtexten liegt beim Nutzer; vor Veröffentlichung einen Hinweis geben.

Befehlsübersicht

BefehlZweck
newProjekt anlegen: analyze + align + draft + story
storyVorlage Storyline.md generieren (--force zum Neuaufbau)
checkstory.json auf korrekte Namen, Zeiten, Fenster (von der Engine bekannt) prüfen
board [--frames]Storyboard erstellen (Version N), Version speichern
approveVom Nutzer bestätigte Version vermerken; erst danach gibt render frei
render [--sample 12] [--name Dateiname]Rendern; --force überspringt die Bestätigung, nur verwenden, wenn der Nutzer es explizit sagt
syncNur story.json → assets/story.js synchronisieren (Debug; board und render synchronisieren automatisch)
upgradeAltes Projekt auf aktuelle Template-Engine umstellen, alte Dateien als .before-upgrade sichern
characterFigurenbild → Pixel-Figur
analyze / align / draftEinzelschritte von new; zum separaten Wiederholen

Anpassungen über die Vorlage hinaus

Die Template-Engine v2 deckt bereits Folgendes ab (siehe Interaktionskatalog):

  • 27 Szenen, 16 Basisaktionen;
  • 23 erzählerische Aktionen;
  • 7 Lyrik-Modi, 6 Auftritte, 9 Abgänge;
  • 7 Übergänge;
  • Desktop-Fenster.

Reicht das nicht aus, im Projektverzeichnis assets/engine.js erweitern – nicht die Vorlage dieses Skills verändern. Siehe auch Techniken aus Folge 1. Möchte man neue Elemente in die Vorlage aufnehmen, vorher mit dem Nutzer abstimmen. Beim Aufnehmen müssen gleichzeitig geändert werden:

  • Die Vorlage engine.js;
  • Die Listen wie BEAT_NAMES in pixel_mv.py sowie die chinesischen Bezeichnungen ZH_* für das Storyboard;
  • interactions.md.

Szenenbibliothek

  • Daten in assets/scene-library/scenes.json.
  • Beim Hinzufügen einer Szene gleichzeitig zwei Stellen ändern: in scenes.json die Schlüsselwörter und Interaktionen eintragen, in der Vorlage engine.js im SCENES-Block die Zeichenmethode definieren.

Verwandte Skills