Communitygithub.com

Feuerperformance-Video zu Sprites

Verwandle das Video eines Feuerkünstlers in spielfertige Sprite-Animationen. Nutze dies bei Aufnahmen von Feuerspinnen, Feueratem, Poi, Stab, Schwert oder ähnlichen Flow-Arts (normalerweise nachts gefilmt), um den Künstler als Sprite-Sheets, animierte Moves oder Game-Assets freizustellen. Deckt Szenenauswahl, Trimmen mit dem Künstler, Hintergrundentfernung mit separaten Körper- und Feuer-Ebenen sowie Packing ab; übergibt an fire-sprites-retro für einen 8-Bit-Look.

Was ist Feuerperformance-Video zu Sprites?

Diese Skill ist speziell für die Verarbeitung von Nachtaufnahmen von Feuerperformern (Feuerspinnen, Feueratem, Poi, Stab, Schwert und andere Flow-Arts) in spielfertige Sprite-Animationen konzipiert. Sie führt den Benutzer in mehreren Schritten von der Rohvideoauswahl – unter Einbeziehung des Künstlers an zwei entscheidenden Punkten (Auswahl der Moves und Festlegung ihrer Start- und Endpunkte) – bis zur Erstellung von Sprite-Sheets mit separaten Körper- und Feuer-Ebenen. Die Pipelines basieren auf den Grundkonzepten der Trennung von Körper- und Feuer-Ebenen, Belichtungsbehandlung und fußverankerten Normalisierung, wie in `references/how-it-works.md` erläutert. Sie unterstützt Apple MPS und CUDA für GPU-Beschleunigung und erfordert ffmpeg/ffprobe. Der Workflow umfasst Tools wie `ingest.py` (Import), `pose_pass.py` (Posenfindung), `find_segments.py` (Segmenterkennung), `find_bursts.py` (Feueratem-Erkennung), `catalog.py` (Katalogisierung mit parallelen Subagenten), `make_trim.py` (Trimmschnitt mit HTML-Interface) und `render_move.py` (Rendering). Die Ergebnisse werden in einem Projektverzeichnis gespeichert, und die Kommunikation mit dem Künstler erfolgt über eine HTML-Seite (`trim.html`), deren Zustand im Browser gespeichert wird. Besondere Aufmerksamkeit gilt der Ehrlichkeit gegenüber dem Künstler: Es werden nicht nur Erfolge, sondern auch Grenzen (Anzahl der nutzbaren Sekunden, abgeschnittene Gliedmaßen, Feuereffekte mit Wänden) berichtet, und die Daten des Künstlers bleiben vertraulich.

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

In Ihrer bevorzugten KI fragen

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

Dokumentation

Was macht Feuerperformance-Video zu Sprites?

Du führst einen Künstler von einem Rohvideo zu Sprite-Sheets, die in einem Spiel abgespielt werden können. Der Künstler kennt seine Performance; du bedienst die Werkzeuge. Binde ihn an den beiden Punkten ein, an denen sein Auge wichtig ist (welche Moves und wo sie beginnen und enden) und erledige alles andere selbst.

Die Werkzeuge befinden sich im tools/-Ordner dieses Kits (zwei Ebenen über dieser Datei). Nenne ihn $KIT. Jedes Werkzeug wird in einem Projektverzeichnis ausgeführt, das du für diesen Künstler erstellst; Quellvideos werden referenziert, niemals kopiert.

Lies references/how-it-works.md einmal durch, bevor du beginnst. Es erklärt die drei Ideen, auf denen die gesamte Pipeline basiert: getrennte Körper- und Feuer-Ebenen, Belichtungsbehandlung und fußverankerte Normalisierung.

0. Einrichtung (einmal pro Rechner)

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

Verwende eine native Python-Build für den Rechner (auf Apple Silicon installiert ein x86-Python stillschweigend ein altes, CPU-only PyTorch). ffmpeg und ffprobe müssen sich im PATH befinden. Eine GPU (Apple MPS oder CUDA) wird dringend empfohlen: Das Rendern dauert auf einem M2 Max etwa 3 s pro Ausgabebild. Modellgewichte werden bei der ersten Nutzung heruntergeladen.

Im Folgenden bedeutet py $KIT/.venv/bin/python und die Befehle werden aus dem Projektverzeichnis ausgeführt.

1. Nach dem richtigen Filmmaterial fragen

Bitte den Künstler um die Original-Kameradateien, nicht um eine bearbeitete oder für soziale Medien exportierte Version. Suche in dem Ordner, den er dir nennt: Ein 4K-, 10-Bit-, 50-fps-Original liegt oft neben einem 720p-Endschnitt, und alles Weitere wird davon besser. Frage auch, ob es Aufnahmen gibt, auf denen er läuft oder steht, bevor das Feuer angezündet wurde: Feuer-Routinen enthalten selten einen sauberen Gehzyklus, und Spiele brauchen einen.

mkdir -p ~/sprite-projects/NAME && cd ~/sprite-projects/NAME
py $KIT/tools/ingest.py main "/Pfad/zum/original.mov"      # Wiederholen mit anderen Namen für andere Clips

Lies, was ingest ausgibt. Es misst den echten Schwarzpegel (Dateibereichs-Tags sind unzuverlässig) und warnt vor 8-Bit-Quellen, niedriger Auflösung und variabler Bildrate. Variable Bildrate muss zuerst behoben werden (erneut codieren auf konstante Bildrate), sonst driften die Bildnummern zwischen Proxy und Quelle.

2. Nutzbares Filmmaterial finden

py $KIT/tools/pose_pass.py main                             # langsam: etwa 15 Proxy-Bilder pro Sekunde
py $KIT/tools/find_segments.py main --strips                # --performer skin hinzufügen, wenn eine bekleidete Menschenmenge im Bild ist
py $KIT/tools/find_bursts.py main                           # Feueratem, erkannt durch Helligkeit
  • find_segments behält Läufe, bei denen der gesamte Körper im Bild und aufrecht ist. Erwarte, dass nur ein Bruchteil des Filmmaterials qualifiziert: Handkameras schneiden ständig Füße ab. Das ist normal; teile dem Künstler die Anzahl mit.
  • Sieh dir selbst ein paar strips/*.jpg an. Wenn sie die falsche Person verfolgen, wechsle in den --performer-Modus.
  • Sieh dir bursts/main.jpg an. Behalte nur echte Feueratem-Aktionen, dann py $KIT/tools/catalog.py add-bursts main (und lösche alle falschen Einträge aus catalog/selected.json). Feueratem wird auf diese Weise gefunden, weil die posenbasierte Suche überbelichtete Bilder verwirft.

3. Die Moves katalogisieren (Subagenten verwenden)

py $KIT/tools/catalog.py batches 5

Gib jedes Batch einem Subagenten mit der Eingabeaufforderung in references/catalog-prompt.md (füge die Batch-Nummer ein und beschreibe den Künstler in einer Zeile, sodass die Prüfer die falsche Person ablehnen können). Sie lesen die Bildnummern-Filmstreifen und schreiben catalog/outK.json. Dies ist der Schritt, der am meisten von parallelen Agenten profitiert: Es ist reines Anschauen, und jedes Batch ist unabhängig. Dann:

py $KIT/tools/catalog.py select            # Shortlist: Qualität >= 4, plus Walks/Turns/Spins/Strikes bei 3
py $KIT/tools/catalog.py list

Teile dem Künstler klar mit, was gefunden wurde und was nicht (zum Beispiel: "13 Idles, 8 Spins, aber nur einen echten Walk aus dem Clip, bevor das Feuer angezündet wurde").

4. Der Künstler trimmt und wählt aus

py $KIT/tools/make_trim.py                 # einen Kontextclip pro Move + trim.html
open trim.html

Die Bereiche der Prüfer sind bewusst knapp; echte Moves brauchen etwas Luft für das, was davor und danach kommt. In trim.html zieht der Künstler den Start- und Endpunkt jedes Moves über einige Sekunden des umgebenden Filmmaterials, markiert Behalten oder Verwerfen und kopiert die Liste aus dem Feld unten. Bitte ihn, sie dir zu schicken. Die Seite speichert ihren Zustand im Browser, sodass du sie nicht selbst auslesen kannst. Speichere den eingefügten Text in einer Datei und:

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

5. Rendern, packen, überprüfen

py $KIT/tools/render_move.py --kept        # langlaufend: im Hintergrund ausführen
py $KIT/tools/pack.py --kept
open review.html

Bevor du Bericht erstattest, sieh dir selbst mehrere moves/NAME/preview.jpg-Dateien an. Dinge, die du überprüfen und laut sagen solltest:

  • eine andere Person, die in den Ausschnitt geraten ist (setze "gate": true für diesen Move in catalog/selected.json, wenn der Move kein Requisit hat, und rendere dann mit --force neu);
  • feuerbeleuchtete Wand, die in der Feuer-Ebene erscheint;
  • abgeschnittene Füße oder Kopf: render_move gibt den Anteil jedes Bereichs an, in dem der gesamte Körper im Bild ist. Verlängerte Trimmbereiche laufen oft in Filmmaterial, in dem der Künstler das Bild verlässt.

review.html spielt jeden Move mit Hintergrund- und Ebenenumschaltung ab, einschließlich "body + additive fire glow", was die Zeichenweise im Spiel ist. atlas.json enthält das Bildraster, fps, Fußanker und Quellbereich pro Move.

6. Optional: 8-Bit-Look

Wenn der Künstler eine Retro-Version wünscht, verwende die fire-sprites-retro-Skill.

Ehrlichkeitsregeln für diese Arbeit

  • Berichte über Anzahlen und Grenzen, nicht nur über Erfolge: Wie viele Sekunden waren nutzbar, welche Moves haben abgeschnittene Gliedmaßen, welche Feuer-Ebenen enthalten Wände.
  • Das Filmmaterial setzt harte Grenzen. Eine Feuerwolke, die den Kamerabildausschnitt verlässt, hat eine gerade Kante; eine überbelichtete Flamme hat keine innere Textur, die wiederherstellbar ist. Sag es, anstatt eine Lösung zu versprechen.
  • Veröffentliche niemals das Filmmaterial, den Namen oder die gerenderten Sprites des Künstlers. Die Ausgaben bleiben im Projektverzeichnis, es sei denn, der Künstler wünscht etwas anderes.

Siehe references/troubleshooting.md für in der Praxis aufgetretene Probleme und deren Lösungen.

Verwandte Skills