CommunityBildgithub.com

8-Bit-Feuer-Sprites mit neugebautem Feuer

Erstelle 8-Bit-/Pixel-Art-Versionen von Feuer-Performance-Sprites mit neugebautem Feuer. Nutze es nach dem `fire-sprites` Skill, wenn der Darsteller einen Retro-Look im 8-Bit- oder 16-Bit-Stil für Feuerwirbel- oder Feueratem-Animationen wünscht.

Was ist 8-Bit-Feuer-Sprites mit neugebautem Feuer?

Dieser Skill wandelt gerenderte Feuer-Performance-Animationen (Feuerspucken, Feuertanz) in pixelige 8-Bit- oder 16-Bit-Sprites um. Er baut das Feuer dabei komplett neu auf, anstatt es einfach zu verkleinern, was die Farbdetails und die Lesbarkeit des Feuers deutlich verbessert – selbst bei stark überbelichteten Aufnahmen. Der Skill arbeitet mit den bereits vom `fire-sprites` Skill erzeugten separaten Körper- und Feuerschichten (keine flachen Videos) und erzeugt vier Varianten pro Bewegung: neugebautes Feuer und direkte Quantisierung bei 64px und 40px Körperhöhe. Die Ausgabe erfolgt als animierte PNG-Spritesheets und ein Atlas-JSON, das per CSS mit `image-rendering: pixelated` in ganzen Vielfachen skaliert werden sollte. Der Skill ist kompatibel mit Tools wie Claude Code, Cursor und anderen, die Python-Skripte und Markdown-gesteuerte Workflows unterstützen. Der Workflow ist einfach: Zuerst die `retro.py` ausführen, dann die `retro.html` öffnen, um die Ergebnisse zu begutachten. Die wichtigsten Konstanten (Paletten, Größen, Tiefenkurve) sind in den Python-Headern editierbar, sodass Anpassungen schnell möglich sind.

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

Installed? Explore more Bild skills: steipete/songsee, affaan-m/frontend-design, mattpocock/improve-codebase-architecture · View all 6 →

In Ihrer bevorzugten KI fragen

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

Dokumentation

Was macht 8-Bit-Feuer-Sprites mit neugebautem Feuer?

Erfordert bereits vom fire-sprites Skill gerenderte Bewegungen: Dies arbeitet mit den separaten Körper- und Feuer-Schichten in moves/NAME/, nicht mit flachen Videos. $KIT ist das Kit-Root (zwei Ebenen über dieser Datei); py ist $KIT/.venv/bin/python; führe das Skript aus dem Projektverzeichnis aus.

py $KIT/tools/retro.py                 # jede gerenderte Bewegung
py $KIT/tools/retro.py "breath_*"      # oder nur einige (Namen oder Platzhalter)
open retro.html

Warum das Feuer neugebaut wird, nicht verkleinert

Das Verkleinern eines Feuer-Sprites und das Anpassen an eine Palette ergibt einen flachen weißen Klumpen: In der Kamera ist die Flamme bis auf Weiß überbelichtet, sodass kein Farbe darin bleibt. Stattdessen:

  • Körper: herunterskaliert, harter Alpha-Rand, auf eine feste 8-Farben-Haut-und-Leder-Palette abgebildet (helligkeitsgewichtet, sodass die Schattierung erhalten bleibt), mit einem 1-Pixel-dunklen Umriss.
  • Feuer: Die reale Flammenform wird Bild für Bild beibehalten, aber ihre Farbe wird neu gezeichnet. Wie tief ein Pixel innerhalb der Flamme sitzt, wählt einen Schritt auf einer 7-Farben-Wärmekurve: dunkelrot am Rand über orange und gelb bis zu einem weißen Kern, mit einem 4x4 geordneten Dither zwischen den Stufen. Die Tiefe wird relativ zur Dicke dieser Flamme gemessen, sodass eine dünne Schwertflamme immer noch einen heißen Kern und eine riesige Atemwolke einen breiten Verlauf erhält. Ein kleiner Öffnungsdurchgang entfernt dünne Wandlinien, die in die Feuerschicht ausgelaufen sind.

retro.html zeigt jede Bewegung auf vier Arten: neugebautes Feuer und direkte Quantisierung, bei 64 px und 40 px Körperhöhe. Die direkte Version ist vorhanden, damit der Darsteller den Unterschied sehen kann; neugebautes Feuer ist das, was ausgeliefert werden soll. Die Animation läuft "auf Zweien" (die Hälfte der Master-Framerate), was retro wirkt und die Sheet-Größe halbiert.

Ausgabe: retro/NAME_B64.png, NAME_B40.png (neugebaut), NAME_A64.png, NAME_A40.png (direkt) und retro/atlas.json mit Rasterrahmen, Bildrate und Fußanker. Zeichne sie mit Nearest-Neighbour-Skalierung nur in ganzzahligen Vielfachen (image-rendering: pixelated in CSS).

Was dem Darsteller gesagt werden soll

Sieh dir das Ergebnis an, bevor du es beschreibst. Typische Feststellungen:

  • Atemwolken lesen sich sehr gut; die Neufärbung gibt ihnen eine Struktur, die das Filmmaterial vermissen lässt.
  • Wolken, die den Bildrand, ein Fenster oder eine überbelichtete Wand berührt haben, wirken in dieser Größe kastenförmig.
  • Der Körper leuchtet bei einem Atemspitzen nahezu weiß auf und wird in Silhouetten-Bildern zu dunklem Marineblau abgebildet, da die Palette der Helligkeit des Filmmaterials folgt. Biete an, die Hauttöne stabil zu halten, falls das stört (noch nicht implementiert).

Ändern des Look

Bearbeite die Konstanten am Anfang von tools/retro.py: BODY_PAL (Körper-Palette, dunkelste zuerst), FIRE_RAMP (Rand zu Kern), die Größen in for B in (64, 40) und die Tiefenkurve in der heat = Zeile. Halte die Palette über alle Bewegungen eines Darstellers fest, damit die Animationen zueinander passen.

Individual skills in this repo

This repo contains 1 individual skill — each has its own dedicated page.

Verwandte Skills