CommunityBildgithub.com

LimaEdu-7x/omni-sprite

Erstellt detaillierte Pixel-Art-Sprites, Tilesets und Animationen in Aseprite über den pixel-mcp-Server. Nutze bei Anfragen nach Sprites, Charakteren, Tiles, Icons, Pixel-Art-Szenen, Sprite-Sheets, Animationszyklen oder spezifischen Stilen (8-Bit, 16-Bit, GBA, HD Pixel, Dark Fantasy, Cyberpunk, isometrisch). Auch auf englische Anfragen für Sprites, Pixel Art, Sprite Sheets und Animationszyklen auslösbar. Setzt Auflösungsstufen, Palettenvorrang, fixierte Richtung, Ebenen und visuelle Überprüfung durch, damit das Ergebnis nicht klein und flach wirkt.

Was ist omni-sprite?

OmniSprite ist ein spezialisiertes Skill-Tool für KI-Agenten (wie Claude Code, Cursor, Codex), das die Erstellung professioneller Pixel-Art-Sprites, Tilesets und Animationen direkt in Aseprite ermöglicht. Es nutzt den `pixel-mcp`-Server, um über Tool-Aufrufe mit Aseprite zu kommunizieren. Der Skill definiert einen strukturierten Workflow: Zuerst wird ein kurzes Briefing durchgeführt (z. B. über das `grill-me`-Tool), um Motiv, Stil, Größe und Animation festzulegen. Danach wird eine Farbpalette ausgewählt (z. B. über Lospec), die Leinwand im indizierten Farbmodus erstellt und eine schrittweise Konstruktion von der Silhouette über Flächenfarben, Schattierung, Details und Konturen bis hin zu FX-Effekten durchgeführt. Jeder Schritt wird mit einem Export- und Überprüfungszyklus kontrolliert. Der Skill unterstützt 12 Stil-Presets, verschiedene Größenstufen (S bis Szene) und Animationszyklen (Idle, Walk, Attack). Er kann auch das Setup von Aseprite und das Starten/Installieren des MCP-Servers automatisieren, falls nötig.

Funktioniert mit~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/LimaEdu-7x/omni-sprite/tree/HEAD

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

OmniSprite 🎮✨ — Befehl /sprite

Chirurgischer Pixel-Art-Workflow über den pixel-mcp-Server von Aseprite (Tool-Katalog: references/mcp-tools.md). Antworte dem Benutzer in seiner Sprache.

Befehl /sprite

Verwendung: /sprite [Beschreibung] [Flags]. Ohne Argumente frage, was erstellt werden soll.

FlagWirkung
`--tamanho SM
--estilo <Preset>Einer von 12 Stilen aus references/styles.md (Standard hd-pixel)
`--vista lateral3-4
--anim idle,walk,attack,...Zu animierende Zyklen (Rezepte in references/animation.md)
`--paleta <slug-lospec#hex,#hex
--doctorNur Diagnose: Aseprite gefunden? MCP registriert? (Schritte aus Punkt 0)
--compilarErzwingt den Workflow zum Kompilieren von Aseprite aus dem Quellcode (Punkt 0.4a)

Angegebene Flags machen die entsprechende Frage im Briefing überflüssig; was fehlt, wird in der grill-me-Runde erfragt. Beispiel: /sprite Ritter Dark Fantasy --tamanho L --anim idle,walk,attack.

0. Voraussetzungen (Plug-and-Play; einmal prüfen und Fehlendes korrigieren)

  1. Sind die MCP-Tools sichtbar? (create_canvas, draw_pixels, export_sprite…). Wenn ja, gehe zu Schritt 1.
  2. Wenn nicht, finde Aseprite: Führe scripts/find-aseprite.ps1 (Windows) oder scripts/find-aseprite.sh aus. Ausgabe 0 zeigt den Pfad; Ausgabe 2 = nicht gefunden.
  3. Aseprite gefunden → Führe scripts/install-mcp.ps1 / .sh aus (erkennt selbstständig, lädt die fixe Version von pixel-mcp herunter, prüft SHA-256 und registriert sie). Bitte den Benutzer, den Client neu zu starten, und fahre fort.
  4. Aseprite NICHT gefunden → Frage den Benutzer (eine Frage mit Optionen); nimm nichts an:
    • „Aseprite ist nicht installiert. Möchtest du, dass ich den Quellcode von GitHub herunterlade, kompiliere und konfiguriere? (benötigt git, CMake, Ninja und einen C++-Compiler; dauert ca. 10–40 Minuten; die Aseprite-Lizenz erlaubt das Kompilieren für den persönlichen Gebrauch, nicht die Weiterverteilung der Binärdatei.)“
    • Optionen: (a) Ja, kompiliere für mich (empfohlen) · (b) Ich installiere selbst (Steam / aseprite.org / itch.io; kostenpflichtig, unterstützt den Entwickler) · (c) Aseprite überspringen und Plan B mit Python/Pillow verwenden (keine .aseprite-Datei, gleiche Stilregeln).
    • Bei (a): Führe scripts/build-aseprite.ps1 (Windows) oder scripts/build-aseprite.sh aus. Falls eine Voraussetzung fehlt, nenne sie und biete an, sie mit dem Paketmanager der Plattform (winget / brew / apt) zu installieren – aber nur nach Rückfrage. Bei Fehlschlag folge references/build-aseprite.md. Wenn fertig, führe Schritt 3 aus.
  5. Zeichne niemals vor Abschluss des Briefings (Abschnitt 1). Fehlende Antworten → nachfragen oder den Standardwert verwenden und diesen nennen.

1. Briefing (nutze grill-me, wenn installiert)

Stelle die folgenden Fragen als kurze grill-me-Runde (alle unabhängigen Fragen zusammen, jede mit empfohlener Antwort, damit man mit „ja“ zustimmen kann); falls der Skill nicht existiert, frage normal. Frage nur, was noch fehlt.

FrageStandard bei keiner Antwort
Was ist es, in einem Satz + Stimmung?–
Wo wird es verwendet (Spielgenre, UI, Druck)? Kamera: seitlich / 3/4 Top-Down / isometrisch / frontalSeitenansicht
Stil (siehe references/styles.md)hd-pixel
Größenstufe (Tabelle unten)L
Animation? Welche Zyklenkeine
Palette: vorgegeben / von Lospec auswählen / von Referenz ableitenMit Skill color ableiten (/color falls vorhanden, sonst Lospec)

2. Größenstufen (gehe über „Symbolgröße“ hinaus; bleibe Pixel-Art)

StufeLeinwandTypische VerwendungFarben
S32×32Items, Symbole8–16
M64×64Kleine Charaktere, Props16–24
L128×128Hauptcharaktere, detaillierte Props24–40
XL192×192 / 256×256Heldenporträts, Bosse32–64
Szene320×180 oder 480×270Szenen, Key Art32–64

Regel: Das Pixel ist quadratisch und wird niemals mit einem nicht-ganzzahligen Wert skaliert. Detail entsteht durch mehr Pixel, nicht durch Unschärfe. Wenn der Benutzer „mehr Detail“ wünscht, erhöhe die Stufe, bevor du Rauschen hinzufügst.

3. Palette zuerst

  1. Wähle/leite die Palette ab (references/palette-workflow.md; Hex von Lospec: https://lospec.com/palette-list/<slug>.hex).
  2. create_canvas im indizierten Farbmodus, dann set_palette. Ordne die Palette innerhalb jeder Rampe von dunkel zu hell (sort_palette nach Farbton und dann Luminanz, falls nötig).
  3. Erstelle Rampen, keine losen Farben: 3–5 Abstufungen pro Material (Schatten, Mitte, Licht, Glanzlichter), mit Farbtonverschiebung (Schatten → kühler/gesättigter, Lichter → wärmer). Überprüfe mit analyze_palette_harmonies.
  4. Übergib use_palette: true in den Zeichenaufrufen, damit jedes Pixel an die Palette angepasst wird.

3b. Ausrichtung und Pose (vor dem Zeichnen festlegen; siehe references/orientation-and-pose.md)

Gib view an (seitlich / 3/4 / frontal / isometrisch), facing (zeichne Seitenansichten nach rechts gewandt), Lichtrichtung, welche Hand welches Prop hält und wohin Umhang/Haar fallen. Regeln: Gliedmaßen auf der Kameraseite vor dem Torso, die auf der gegenüberliegenden Seite dahinter, Kopf in Blickrichtung, Umhänge am Rücken befestigt und in der untersten Ebene, ein Prop pro Hand, vor dem Körper. Für alles, das animiert wird, baue zuerst das Skelett: Gelenke + 2-Knochen-IK, dann die Formen (rig.py in https://github.com/LimaEdu-7x/omni-sprite/tree/main/examples/knight). Führe die Silhouetten-/Spiegel-/Überlappungstests nach dem ersten Rendern durch.

4. Bau-Reihenfolge (Ebenen, immer in dieser Reihenfolge)

Erstelle Ebenen von unten nach oben mit add_layer: bg, shadow-cast, base, shade, light, detail, outline, fx.

  1. Silhouette – Fülle die gesamte Form mit einer dunklen, flachen Farbe in base. Betrachte bei 1×: Wenn sie nicht als Silhouette erkennbar ist, mache sie neu. Starke Asymmetrie, klare Trennung von Kopf/Torso/Gliedmaßen, lesbarer Negativraum.
  2. Flächige Farben – Ein mittlerer Ton pro Material mit fill_area / draw_rectangle / draw_circle / draw_contour.
  3. Formschatten – Wähle EINE Lichtrichtung (Standard: oben links). Verwende apply_shading (Stil hard für scharf, smooth für HD) in shade/light; füge selektive Kantenbeleuchtung auf der der Hauptlichtquelle gegenüberliegenden Seite hinzu.
  4. Textur und Detail – draw_with_dither nur dort, wo der Stil es erlaubt (siehe Stile); manuelles draw_pixels für Augen, Nähte, Schnallen, Glanzlichter. Gruppiere Pixel; vermeide einzelne Pixel (Rauschen) und „Zacken“ (unregelmäßige Stufen in Linien).
  5. Kontur – apply_outline und dann manuell anpassen: selektive Kontur (dunkelste Farbe mit Farbtonverschiebung, nicht reines Schwarz) für HD; vollständige dunkle Kontur für 8/16-Bit; keine für „ohne Kontur“.
  6. Anti-Aliasing – suggest_antialiasing bei Kurven/Diagonalen (überspringe bei 1-Bit/NES).
  7. FX – Glanz, Funken, Boden-Schatten in fx/shadow-cast.

Für komplexe organische Formen verwende die Raster-Methode: Schreibe das Sprite als ASCII-Raster (ein Zeichen = Palettenindex), konvertiere mit scripts/grid_to_pixels.py in einen Batch von draw_pixels-Aufrufen (siehe references/grid-method.md). Große Flächen mit Formwerkzeugen, Details mit dem Raster.

5. Rendern-und-Überprüfen-Zyklus (obligatorisch)

Nach jedem wichtigen Schritt: export_sprite PNG → Kopie mit scale_sprite ×4 (Nearest) oder vergrößertes PNG → betrachte das Bild (Read des PNG). Gehe die Checkliste in references/quality-checklist.md durch. Korrigiere den schlimmsten Fehler und rendere erneut. Maximal 3 Zyklen pro Schritt; danach berichte, was übrig geblieben ist.

6. Animation (wenn gewünscht)

Befolge references/animation.md: Zuerst Keyframes, dann Zwischenframes, 8–12 fps (set_frame_duration 80–125 ms), ein Tag pro Zyklus (create_tag: idle, walk, run, attack, hurt, death), duplicate_frame + Bearbeitung, link_cel für statische Teile, Anker/Füße auf derselben Pixelzeile fixiert. Exportiere mit export_sprite (GIF-Vorschau) und export_spritesheet (+JSON).

7. Abgabe

Speichere die .aseprite-Datei (save_as), exportiere PNG 1×, PNG-Vorschau ×4 und für Animationen GIF + Sheet + JSON. Gib an: Leinwandgröße, Name/Anzahl der Palettenfarben, Lichtrichtung, Stil und Dateipfade.

Fallstricke (geprüft mit pixel-mcp 0.5.0)

  • create_canvas gibt JSON {"file_path": ...} zurück; dieser Pfad ist der sprite_path für alle anderen Tools. Es gibt keinen Namensparameter; verwende save_as zum Benennen.
  • Verwende normale Schrägstriche in output_path (C:/Users/ich/ausgabe.png). Rückwärtsschrägstriche brechen das generierte Lua (\U wird als Escape gelesen) und führen zu Fehlern mit „invalid character 'U'“.
  • scale_sprite verändert das Sprite an Ort und Stelle: Mache save_as einer Kopie, skaliere die Kopie und exportiere sie.
  • Frame-Zahlen beginnen bei 1 (export_sprite mit Frame 0 = alle).
  • draw_pixels erhält [{x,y,color}], bis zu ~10.000 pro Aufruf; das ist, was grid_to_pixels.py erzeugt.
  • Bei stdio-Kommunikation mit dem Server: JSON-RPC pro Zeile, schreibe Bytes mit \n (CRLF schlägt fehl mit „invalid trailing data“).
  • Ein vollständiges Beispiel (Skelett → schattierte Teile → Ebenen → Exporte) befindet sich in https://github.com/LimaEdu-7x/omni-sprite/tree/main/examples/knight.

Zusätzliche Referenzen (bei Bedarf laden)

  • references/build-aseprite.md – Aseprite aus dem Quellcode kompilieren und Fehler beheben.
  • references/orientation-and-pose.md – Ansicht/Blickrichtung, nahe/ferne Ebenen, Rigs, Richtungssets.
  • references/styles.md – 12 Stile mit genauen Regeln.
  • references/palette-workflow.md – Rampen, Farbtonverschiebung, Lospec-Paletten, Farbbudget.
  • references/animation.md – Zyklen, Frames, Zeiten, Easing.
  • references/quality-checklist.md – Bestanden/nicht bestanden-Checkliste.
  • references/resources.md – 12+ Websites und 20+ Community-Skills/Server zum Lernen und Integrieren.
  • references/mcp-tools.md – Tool-Katalog.
  • Optionale Companion-Skills: color / /color (Palettenauswahl und -spiegelung), ein Frontend-Design-Skill, falls die Sprites für eine Web-UI sind.

Ehrliche Grenzen

Pixel-für-Pixel-Zeichnen über Tool-Aufrufe ist langsam, und das Modell „sieht“ die Leinwand nicht ohne Export. Bevorzuge Formen + Raster-Methode + Überprüfungszyklus; verwende analyze_reference / downsample_image, wenn der Benutzer ein Referenzbild sendet.

Verwandte Skills