CommunityBildgithub.com

Sprite-Generator

Erstelle, repariere, validiere, zeige Vorschauen an und verpacke spielfertige Sprite-Assets für Godot basierend auf Referenzen oder detaillierten Beschreibungen.

Was ist Sprite-Generator?

Dieses Skill ermöglicht die professionelle Erstellung von 2D-Sprite-Assets für die Godot-Engine. Es ist speziell für Spielentwickler konzipiert, die wiederholbare und zuverlässige Ergebnisse benötigen. Der Skill erstellt keine Grafiken selbst, sondern delegiert die eigentliche Bilderzeugung an ein installiertes Bildgenerierungs-Tool (z. B. `$imagegen` in Codex-Umgebungen). Die mitgelieferten Python-Skripte übernehmen ausschließlich deterministische Arbeitsschritte wie die Erstellung von Ausgabeordnern und Prompt-Dateien, das Entfernen von Chroma-Key-Hintergründen, das Aufteilen von Animationsstreifen in Einzelbilder, das Komponieren von Atlanten, die Qualitätssicherung und die Erstellung von Godot-Importdateien (`SpriteFrames`-Ressourcen, Szenen). Der Skill unterstützt verschiedene Asset-Typen (Charaktere, Möbel, Props, Karten, Räume) und verarbeitet sowohl Referenzbilder als auch textuelle Beschreibungen. Er stellt Standard-Animationen (z. B. `idle`, `walk_down`) und Zustände (z. B. `clean`, `dirty`) bereit, die bei Bedarf überschrieben werden können. Ein sichtbarer Fortschrittsplan führt den Benutzer durch den Workflow: Vorbereitung, Erstellung des kanonischen Aussehens, Generierung von Zuständen/Animationen und die abschließende Godot-Paketierung. Der Skill enthält auch einen Reparatur-Workflow und eine Qualitätsmetrik, um sicherzustellen, dass die generierten Assets konsistent und spielbereit sind.

Funktioniert mit~Claude Code✓Codex CLI~Cursor
npx skills add https://github.com/Vel-Labs/Vel-Skills/tree/HEAD/skills/game/sprite-generator

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 Sprite-Generator?

Ausgaben

Generierte und validierte Sprites, Vorschauen und Godot-Integrationsartefakte.

Nicht-Ziele

Verwendung lokaler Zeichenskripte als Ersatz für die eigentliche Bilderzeugung.

Zweck

Erstellung von produktionsorientierten 2D-Sprites für Spiele aus einem Konzept, einem oder mehreren Referenzbildern oder einem detaillierten Art-Direction-Brief. Der Skill ist bewusst stilunabhängig: Der Benutzer kann ein Referenzbild, eine Stilkarte, einen Screenshot oder eine lebendige Beschreibung bereitstellen, und der Workflow wandelt dies in einen wiederverwendbaren Sprite-Generierungslauf mit Prompts, Grounding-Bildern, einer generierten Basisreferenz, Animations-/Zustandsaufträgen, deterministischer Extraktion, Qualitätssicherung und Godot-Startdateien um.

Das Ziel ist nicht nur, ein hübsches Bild zu erstellen. Das Ziel ist es, Assets zu produzieren, die mit vorhersagbaren Dateinamen, transparenten Hintergründen, sauberen Atlanten, Frame-Metadaten, QA-Kontaktblättern und SpriteFrames-Startressourcen in ein Godot-Projekt eingefügt werden können.

Verwenden Sie diesen Skill für Anfragen wie:

  • "Erstelle Möbel für ein Haus mit sauberen und schmutzigen Versionen."
  • "Erstelle einen Charakter in diesem Kunststil mit den Animationen 'idle', 'walk', 'point' und 'clean'."
  • "Erstelle eine Puppenhaus-Raumkarte im gleichen Stil wie diese Referenz."
  • "Generiere alternative Outfits/Farbvarianten und behalte die gleichen Körperproportionen bei."
  • "Verwandle diese Objektskizze in ein spielbereites transparentes Prop-Sprite."

Eingaben

Akzeptiert jede Kombination dieser Eingaben:

  • Referenzbilder: Stilblatt, existierender Charakter, Prop, Screenshot, Moodboard, Palette, vorher generiertes Sprite oder In-Game-Aufnahme.
  • Lebendige Beschreibung: Asset-Name, Rolle, Form, Material, Farbe, Maßstab, Kamerawinkel, Verwendungszweck und Stil-Adjektive.
  • Asset-Typ: character, npc, player, furniture, prop, object, map, room, dollhouse oder generisches sprite.
  • Animationen: Benannte Aktionen, Frame-Anzahlen, Richtungen, Schleifen-/Einmal-Verhalten, Dauern oder FPS und spezielle Posen-Notizen.
  • Zustände und Varianten: sauber/schmutzig, offen/geschlossen, gesund/welken, leer/voll, Outfit A/B, Farbset, Schadensstufen usw.
  • Integrationsziel: Godot-Version, Zellgröße, Atlas-Spalten, Maßstab, Top-Down/isometrische/Seitenansicht-Kamera und bevorzugter Importpfad.

Wenn der Benutzer Details auslässt, leiten Sie sinnvolle Standardwerte ab und machen Sie die Ausgabe einfach iterierbar. Blockieren Sie nicht bei jedem fehlenden Detail. Stellen Sie eine klärende Frage nur dann, wenn die Auslassung zu teurer Fehlarbeit führen würde, wie z. B. unbekannter Stil, unbekannte Charakteridentität oder eine erforderliche Animationsliste.

Delegation der visuellen Generierung

Die eigentliche Kunst muss mit der bildgenerierenden Fähigkeit der Umgebung erstellt werden, nicht mit lokalen Skripten. In einer Codex-typischen Skill-Umgebung delegieren Sie an den installierten $imagegen-Skill, falls verfügbar. In ChatGPT verwenden Sie das native Bildgenerierungstool, wenn der Benutzer fragt, das visuelle Asset tatsächlich zu erstellen. Die gebündelten Python-Skripte sind nur für deterministische Produktionsschritte.

Erlaubte deterministische Schritte:

  • Erstellen von Laufordnern und Prompt-Dateien
  • Kopieren stabiler Referenzen in den Lauf
  • Erstellen von Layout-Guide-Bildern
  • Aufzeichnen ausgewählter generierter Ausgaben
  • Entfernen eines flachen Chroma-Key-Hintergrunds
  • Aufteilen von Streifen in Einzelbilder
  • Zuschneiden, Skalieren, Polstern und Zentrieren von Frames in konsistente Zellen
  • Erstellen von PNG/WebP-Atlanten
  • Generieren von Kontaktblättern und GIF-Vorschauen
  • Schreiben von JSON-Manifesten und Godot-Startressourcen

Harte Grenze: Zeichnen, malen, synthetisieren, kacheln, verzerren oder erfinden Sie die Sprite-Kunst nicht mit Pillow, SVG, CSS, HTML-Canvas oder programmatischen Formen als Ersatz für die Bilderzeugung. Die Skripte können generierte Bilder verarbeiten; sie können nicht als versteckter Kunstgenerator verwendet werden.

Stilerfassung und Stilsperre

Wenn eine Stilreferenz bereitgestellt wird, behandeln Sie sie als Quelle der Wahrheit. Extrahieren Sie diese Eigenschaften in den Prompt-Plan:

  • Kamerawinkel und Perspektive: vorne, Seite, Top-Down, isometrisch, 3/4, Puppenhaus, orthographisch
  • Proportionen: Chibi, realistisch, gedrungen, groß, spielzeugartig, Pixel, malerisch, flacher Vektor, Low-Poly-Render
  • Linien- und Kantenbehandlung: keine Umrandung, dicke Umrandung, weiche gerenderte Kante, Pixelkante, Cel-Shaded-Rand
  • Materialien und Beleuchtung: Ton, Plüsch, Plastikspielzeug, bemaltes 3D, flaches Cel, glänzend, matt, Aquarell usw.
  • Palette und Sättigung
  • Schattenrichtlinie: keine für transparente Sprites, es sei denn, sie werden explizit als Teil des Objekts beibehalten
  • Hintergrundrichtlinie: transparenter oder flacher Chroma-Key zur Extraktion
  • Maßstab und Lesbarkeit bei der Zielzellgröße

Eine Zeile oder ein Zustand schlägt fehl, wenn es wie ein verwandtes Asset in einem anderen Stil aussieht und nicht wie dasselbe Asset im Zielstil.

Standardwerte nach Asset-Typ

Charaktere/NPCs/Spieler

Standardausgaben, wenn der Benutzer keine Animationen angibt:

AnimationFramesZweck
idle4Atem-/Blink-Schleife; erster Frame fungiert als statische Pose
walk_down6Vorwärts-/Abwärtsbewegung
walk_up6Rückwärts-/Aufwärtsbewegung
walk_left6Seitwärtsbewegung nach links
walk_right6Seitwärtsbewegung nach rechts

Optionale häufige Aktionen: point, talk, pickup, carry, clean, use_item, sit, sleep, cry, celebrate, fail, interact, attack, cast, jump, push, pull.

Möbel/Props/Objekte

Standardausgaben, wenn der Benutzer keine Zustände angibt:

ZustandFramesZweck
clean1normaler/aufgeräumter Zustand
dirty1schmutziger/unordentlicher Zustand desselben Objekts

Optionale häufige Zustände: empty, half_full, full, overflowing, open, closed, on, off, healthy, wilted, broken, repaired, selected, highlighted, locked, unlocked.

Karten/Räume/Puppenhäuser

Die Standardausgabe ist ein großes map_base-Sprite oder ein Hintergrund. Geben Sie für Räume an, ob Sie eine einzelne flache Kunstepoche oder separate Ebenen wie floor, walls, furniture, interactables, path_overlay und collision_reference benötigen. Fügen Sie keine UI-Beschriftungen, Pfeile, Pfadlinien oder Tutorial-Overlays in die Produktionskarte ein, es sei denn, sie werden als separates Overlay angefordert.

Hintergrund- und Transparenzregeln

Bevorzugen Sie flache Chroma-Key-Hintergründe für die Generierung, wenn das Bildwerkzeug nicht zuverlässig echten Alpha erzeugt. Der Standard-Key ist #00ff00. Der endgültige Atlas sollte nach der Extraktion transparentes PNG/WebP sein.

Für generierte Quellbilder:

  • Verwenden Sie eine flache Hintergrundfarbe über den gesamten Streifen oder das Objekt-Render hinweg
  • Halten Sie das Asset visuell vom Chroma-Key getrennt
  • Vermeiden Sie grüne Highlights/Materialien bei Verwendung eines grünen Keys; wählen Sie stattdessen Magenta- oder Blau-Key, wenn das Asset Grün benötigt
  • Kein weißer Hintergrund, Schachbrettmuster-Hintergrund, UI-Panel, Beschriftungen, Frame-Nummern, sichtbares Gitter, Rand oder Szenerie
  • Keine Schlagschatten, Bodenschatten, Glühen, weiche transparente Halos, Staubwolken, Speedlines, Bewegungsspuren oder lose losgelöste Effekte, es sei denn, ein kleiner anhaftender undurchsichtiger Effekt ist explizit Teil des Sprites
  • Jeder Frame muss vollständig, getrennt, unbeschnitten und innerhalb seines Slots sein

Animations-Prompting-Regeln

Für jede Animationszeile/jeden Animationsstreifen:

  • Fordern Sie genau die deklarierte Frame-Anzahl an
  • Geben Sie das Layout an: normalerweise horizontaler Streifen von links nach rechts
  • Verwenden Sie ein kanonisches Basisbild und Referenzbilder als Grounding-Eingaben
  • Behalten Sie Identität, Proportionen, Palette, Material, Umriss/Kantenstil und Kamerawinkel konsistent bei
  • Kommunizieren Sie Bewegung durch Posenwechsel, nicht durch Unschärfe, Speedlines, Staub oder Schatten
  • Erste und letzte Frames sollten bei loop=true sauber schleifen
  • Fordern Sie für Richtungsanimationen die Richtung explizit an und vermeiden Sie versehentlich gespiegelte Details, wenn der Charakter seitenabhängige Accessoires hat

Akzeptieren Sie keine Zeile, die das Gesicht, die Körperform, das Outfit, das Prop-Design, den Materialstil oder den Maßstab des Charakters relativ zur Basis ändert.

Sichtbarer Fortschrittsplan

Für einen normalen Asset-Lauf führen Sie eine sichtbare Checkliste für den Benutzer:

  1. Vorbereiten der Asset-Anfrage.
  2. Erstellen des kanonischen Aussehens.
  3. Erstellen von Zuständen und Animationszeilen.
  4. Verpacken für Godot.

Was jeder Schritt bedeutet:

  • Vorbereiten der Asset-Anfrage: Asset-Name, Asset-Typ, Stilquelle, Ausgaben, Zellgröße, Chroma-Key und Ausgabeverzeichnis festlegen.
  • Erstellen des kanonischen Aussehens: Die Basisreferenz generieren oder auswählen, die zur Identität/Stilsperre wird.
  • Erstellen von Zuständen und Animationszeilen: Jeden Ausgabeauftrag unter Verwendung der Basis und der Referenzen generieren; nur fehlschlagende Zeilen/Zustände reparieren.
  • Verpacken für Godot: Frames extrahieren, Atlas erstellen, QA-Kontaktblatt erstellen, Manifeste schreiben, SpriteFrames-Startressource schreiben und Dateipfade melden.

Markieren Sie einen Schritt nur dann als abgeschlossen, wenn die tatsächliche Datei oder Entscheidung existiert.

Workflow

1. Einen Laufordner vorbereiten

python3 ./scripts/prepare_sprite_run.py \
  --asset-name "Marktkiste" \
  --asset-type prop \
  --description "lesbare hölzerne Marktkiste mit bunten Inhalten" \
  --style-notes "passend zur mitgelieferten Spielkunst-Referenz" \
  --reference /absoluter/pfad/zu/stil_referenz.png \
  --state full:1:"Kiste voller Gegenstände":single:once \
  --state empty:1:"gleiche Kiste leer":single:once \
  --cell-size 256x256 \
  --columns 2 \
  --output-dir /absoluter/pfad/zu/ausfuehrung

Für einen Charakter:

python3 ./scripts/prepare_sprite_run.py \
  --asset-name "Spieler" \
  --asset-type character \
  --description "freundlicher Spielercharakter mit klarer Silhouette" \
  --reference /absoluter/pfad/zu/stil_referenz.png \
  --animation idle:4:"sanftes Atmen und Blinzeln" \
  --animation walk_down:6:"Gehen zur Kamera hin" \
  --animation walk_up:6:"Gehen von der Kamera weg" \
  --animation walk_left:6:"Gehen in Seitenansicht nach links" \
  --animation walk_right:6:"Gehen in Seitenansicht nach rechts" \
  --cell-size 256x320 \
  --columns 6 \
  --output-dir /absoluter/pfad/zu/ausfuehrung

Fortgeschrittene Läufe können mit einer JSON-Konfigurationsdatei beschrieben und mit --config übergeben werden.

2. Bereite Aufträge inspizieren

python3 ./scripts/sprite_job_status.py --run-dir /absoluter/pfad/zu/ausfuehrung

Der base-Auftrag sollte zuerst generiert werden. Zeichnen Sie das ausgewählte generierte Basisbild auf, bevor Sie abhängige Aufträge generieren. Der Recorder schreibt references/canonical-base.png, das nachfolgende Aufträge als Eingabebild verwenden sollten.

3. Jeden visuellen Auftrag generieren

Verwenden Sie für jeden bereiten Auftrag die in imagegen-jobs.json aufgeführte Prompt-Datei plus alle aufgeführten Eingabebilder. Wählen Sie das beste Original-generierte Bild aus und zeichnen Sie es dann auf:

python3 ./scripts/record_imagegen_result.py \
  --run-dir /absoluter/pfad/zu/ausfuehrung \
  --job-id job-id-from-status \
  --source /absoluter/pfad/zu/generierte_ausgabe.png

Zeichnen Sie keine handbearbeiteten Vorrichtungen, Miniaturen oder Dateien aus den Ordnern final/frames des Laufs als Quellkunst auf. Zeichnen Sie die ausgewählte Original-generierte Ausgabe auf.

4. Finalisieren

python3 ./scripts/finalize_sprite_run.py --run-dir /absoluter/pfad/zu/ausfuehrung

Erwartete Ausgabe:

run/
  asset_request.json
  imagegen-jobs.json
  prompts/
  references/
  decoded/
  frames/frames-manifest.json
  final/spritesheet.png
  final/spritesheet.webp
  final/validation.json
  qa/contact-sheet.png
  qa/previews/*.gif
  qa/run-summary.json
  godot/<asset>_spriteframes.tres
  godot/<asset>_animated_sprite_2d.tscn
  godot/godot_import_manifest.json
  godot/README_GODOT.md

5. In Godot kopieren

python3 ./scripts/package_godot_assets.py \
  --run-dir /absoluter/pfad/zu/ausfuehrung \
  --project-dir /absoluter/pfad/zu/godot-projekt \
  --dest assets/sprites

Überprüfen Sie godot/README_GODOT.md nach der Paketierung. Wenn Sie Dateien an einen anderen res://-Speicherort kopieren, aktualisieren Sie den Texturpfad innerhalb der generierten .tres-Datei.

Reparatur-Workflow

Wenn die Qualitätssicherung fehlschlägt, reparieren Sie zuerst den kleinsten Bereich:

  1. Ein einzelner schlechter Zustand oder eine einzelne Animationszeile.
  2. Ein einzelner schlechter Frame nur, wenn Ihr Bildwerkzeug zuverlässig Frame-Level-Bearbeitung unterstützt.
  3. Die kanonische Basis nur, wenn Identität/Stil überall falsch ist.
  4. Den gesamten Atlas nur als letzte Option.

Häufige Reparatur-Prompts:

  • "Nur walk_left neu generieren; den exakten kanonischen Charakter, das Outfit, die Proportionen und den Spielzeug-Render-Stil beibehalten."
  • "Nur dirty neu generieren; es muss dieselbe Couch wie clean sein, aber mit unordentlicher Decke/Kissen."
  • "Den Streifen mit genau 6 Frames und ohne Frame-Nummern oder Beschriftungen neu generieren."
  • "Magenta-Chroma-Key verwenden, da das Objekt grünes Material benötigt."

Nach dem Aufzeichnen des Reparaturbilds die Finalisierung erneut ausführen.

QA-Qualitätskriterien

Akzeptieren Sie ein Asset erst, wenn diese Prüfungen bestanden sind:

  • Die generierte Basis entspricht dem angeforderten Stil oder den bereitgestellten Stilreferenzen.
  • Jeder Zustand/jede Animation ist dieselbe Asset-Identität, kein Redesign.
  • Exakte Frame-Anzahlen sind vorhanden.
  • Die transparente Extraktion entfernt keine wichtigen Teile des Sprites.
  • Frames sind vollständig, zentriert, gepolstert und nicht beschnitten.
  • Keine Beschriftungen, Frame-Nummern, Gitterlinien, Wasserzeichen, UI-Panels oder Szenerie in die Produktionskunst eingeflossen.
  • Keine unerwünschten Schatten, Glühen, Staub, Speedlines, Unschärfe oder losgelösten Effekte nach der Extraktion vorhanden.
  • Das Kontaktblatt liest sich bei Zielgröße korrekt.
  • final/validation.json hat keine Fehler; Warnungen wurden visuell überprüft.
  • Godot-Manifestnamen stimmen mit den Animationsnamen überein, die Sie im Code aufrufen möchten.

Abnahmekriterien

Ein abgeschlossener Lauf sollte Folgendes enthalten:

  • eine kanonische Basisreferenz in references/canonical-base.png
  • ausgewählte generierte Quellen, aufgezeichnet in imagegen-jobs.json
  • extrahierte transparente Frame-PNGs
  • final/spritesheet.png und, falls unterstützt, final/spritesheet.webp
  • qa/contact-sheet.png
  • GIF-Vorschauen für Multi-Frame-Animationen
  • final/validation.json ohne Fehler
  • Godot-Startdateien unter godot/
  • einen kurzen benutzerorientierten Bericht, der alle reparierten oder trotz Warnungen manuell akzeptierten Zeilen/Zustände auflistet

Regeln

  • Verwenden Sie visuelle Generierung für Visuals; verwenden Sie Skripte nur für deterministische Verarbeitung.
  • Verwenden Sie immer eine kanonische Basis für Multi-Output-Assets.
  • Behalten Sie Referenzen für jeden abhängigen visuellen Auftrag bei, wenn das Bildwerkzeug Referenzen unterstützt.
  • Bevorzugen Sie transparente oder chroma-key-kompatible Ausgaben gegenüber Szenenillustrationen.
  • Fügen Sie keine UI-Beschriftungen, Anleitungspfeile, Pfadlinien oder Kollisionshilfen in Produktionssprites ein, es sei denn, sie werden als separate Overlay-Assets angefordert.
  • Halten Sie für Godot die Animationsnamen stabil und in Kleinbuchstaben, mit...

[Für die Übersetzung gekürzt]

Individual skills in this repo

This repo contains 3 individual skills — each has its own dedicated page.

Verwandte Skills