Formelle Kunstproduktion
Produziere auslieferbare 2D-Ressourcen: Stehbilder, Hintergründe, UI, Gegenstände, Symbole. Keine Platzhalter-Rechtecke – aber sage zuerst klar die Grenzen (siehe Ende).
Schritt 0: Bildgenerierungsfähigkeit bestätigen
In der angegebenen Reihenfolge prüfen, nicht annehmen:
- Zuerst prüfen, ob native Bildgenerierungs- oder -bearbeitungswerkzeuge in der aktuellen Sitzung verfügbar sind, und diese gegebenenfalls direkt aufrufen; schreibe nicht nur Prompts.
- Die Bildgenerierungsfähigkeit von Codex verwendet standardmäßig das integrierte
image_gen-Tool und benötigt keinen API-Key. Wenn der User sich explizit für den direkten API-Weg entscheidet, kann der folgende Plugin-Adapter verwendet werden; dieser Weg erfordert eine separate Konfiguration von Key und Modellberechtigungen. - Wenn nichts funktioniert, klarstellen: Dieser Weg kann derzeit keine formelle Kunst produzieren, verwende keine Skripte, um Rechtecke als Kunst auszugeben.
OpenAI Images API (Optional)
Nur verwenden, wenn der User sich explizit für den API-Dienst entscheidet: Erfordert, dass der User OPENAI_API_KEY auf seinem Rechner gesetzt hat, die Organisation Zugriff auf Bildmodelle hat, und echte Generierungsanfragen können kostenpflichtig sein. Zuerst mit --dry-run eine Vorschau anzeigen. Das Skript erfordert --backup-dir, um die ursprünglich von der API zurückgegebenen Bilder zu sichern, bevor sie in das Laufzeitverzeichnis kopiert werden, ohne vorhandene Dateien zu überschreiben.
python scripts/gen_ai_image.py --prompt "single centered hand-painted blue space-helmet pickup icon, transparent background" --format png --background transparent --out assets/art/items/helmet.png --backup-dir doc/temp
python scripts/gen_ai_image.py --prompt "A tiny green robot waves, then turns and walks away; clean looping pixel-art animation" --format gif --frames 8 --frame-duration-ms 100 --out assets/animation/robot.gif --backup-dir doc/temp
Der Standardspeicherort des integrierten image_gen ist $CODEX_HOME/generated_images/. Nachdem das Bild für das aktuelle Projekt generiert wurde, sofort eine Kopie des Originalbilds in das vom Projekt festgelegte Sicherungsverzeichnis (in diesem Projekt doc/temp/) speichern, bevor Zuschneiden, Skalieren, Freistellen usw. durchgeführt werden; das endgültige Asset verbleibt ebenfalls im Laufzeit-Ressourcenverzeichnis. Gehe nicht davon aus, dass das integrierte Tool das direkte Angeben eines Dateipfads unterstützt.
--format gif verwendet modellgenerierte 2–16-Frame-Kurzanimationen, die nicht mit einem für Spiele optimierten Spritesheet gleichzusetzen sind; GIF-Vorschauberechtigungen, Größenbeschränkungen und unterstützte Modelle richten sich nach der offiziellen Bild-API-Dokumentation. Wenn Frame-für-Frame-Kontrolle benötigt wird, generiere statische Spritesheets und verwende game-animation-production. Das integrierte Bildgenerierungswerkzeug der Codex-Sitzung kann Bilder direkt generieren oder bearbeiten; es ist von der API-Key-Konfiguration dieses Skripts getrennt.
Schritt 1: Zuerst die Style-Bibel erstellen (entscheidend für den Erfolg)
Wenn eine einheitliche Stilrichtung für eine Serie von Assets benötigt wird, kann ein vorhandenes Bild oder ein Key Visual als visueller Anker dienen; für die Bearbeitung eines einzelnen Assets wird das vorhandene Material verwendet, es ist kein neues Key Visual erforderlich.
Ausgabe: docs/art-style-bible.md
## Stilanker-Abschnitt (muss bei jeder Generierung unverändert eingefügt werden)
<Einsatz: Medium + Malstil + Beleuchtung + Farbpalette + Linien-/Materialeigenschaften>
Bsp.: 2D handgezeichnet Cartoon, dicke Konturen, weiches Oberlicht, lila-goldene Hauptpalette (#7C3AED / #FBBF24),
flächige Farben mit leichter Rauschtextur, kein verlaufender Hintergrund
## Farbpalette (HEX)
Hauptfarbe / Sekundärfarbe / Akzentfarbe / Schattenfarbe / Glanzlichtfarbe
## Verbote
Keine fotorealistische Textur / keine Cyber-Neon-Optik / kein 3D-Render-Look / keine Text-Wasserzeichen
Der Stilanker-Abschnitt muss fester Text sein und bei jedem Bild unverändert mitgeführt werden. Dies ist das wichtigste Mittel, um 40 Bilder in einem einheitlichen Spielstil zu halten.
Schritt 2: Asset-für-Asset generieren
Struktur des Einzel-Prompts (Reihenfolge nicht ändern):
[Stilanker-Abschnitt] + [Motiv & Pose] + [Größe/Komposition: frontal/zentriert/freiraum] + [Hintergrund: reinweiß zum Freistellen] + [Technische Anforderungen: kein Text, kein Schlagschatten]
- Wenn ein transparenter Hintergrund benötigt wird, priorisiere die direkte Ausgabe eines transparenten Hintergrunds durch das Generierungstool; verwende Volltonhintergrund und Farbfreistellung nur bei geeignetem Material.
- Generiere je nach Bedarf und Budget Varianten, keine feste Anzahl erzwingen.
- Gleiche Figur: Verwende das ausgewählte Bild als Referenz (sofern der Host Image-to-Image unterstützt) und verwende denselben Ankertext erneut.
- Siehe
game-animation-productionfür Spritesheet- und Animationserstellung, Frame-Schnitt und Abnahme; prüfe die Konsistenz Frame für Frame und korrigiere bei Bedarf. - Befolge die ProjektrRichtlinien zur Bildsicherung: Originale, Entwürfe und alle bearbeiteten Bilder müssen zuerst gemäß den Projektanforderungen gesichert werden, bevor sie weiterverarbeitet werden.
Schritt 3: Nachbearbeitung gemäß Spezifikation
python scripts/process_art.py \
--in raw/ui_btn_raw.png \
--out assets/art/ui/ui_btn_primary.png \
--size 256x64 --mode fit \
--key-color "#FFFFFF" --key-tolerance 14 \
--nine-slice 24 --check-nine \
--report assets/art/ui/ui_btn_primary.report.json
Wichtige Entscheidungen:
--mode fitskaliert proportional + zentriert mit transparentem Füllraum, kein stretch verwenden, da dies die Proportionen verzerrt.--check-ninevalidiert, ob der äußere Rand für Nine-Slice-Stretching geeignet ist; falls nicht, neu gestalten, nicht erzwingen.- Wenn
transparent_ratioim Bericht nahe 0 ist, war das Freistellen nicht erfolgreich.
Schritt 4: Atlas & Komprimierung
python scripts/pack_atlas.py --input assets/art/ui --out-sheet assets/art/ui_atlas.png \
--out-data assets/art/ui_atlas.json --max-size 2048 --padding 2
Atlas-Aufteilung nach "gleicher Bildschirm, gleicher Atlas", nicht nach Ressourcentyp. Einzelne Blätter nicht größer als 2048×2048, für schwächere Geräte ist 1024×1024 stabiler.
Schritt 5: Registrierung & Endkontrolle
Jede Ressource muss in assets/manifest.json vollständig dokumentiert sein:
{
"path": "assets/art/ui/ui_btn_primary.png",
"kind": "ui",
"tier": "final",
"size": [256, 64],
"nine_slice": 24,
"source": "ai",
"ai_generated": true,
"model": "gpt-image",
"license": "AI-generated, commercially cleared under <service> terms",
"commercial_ok": true,
"note": "Hauptschaltfläche, drei Zustände"
}
python scripts/validate_assets.py --manifest assets/manifest.json --final --strict-license
Die Endkontrolle blockiert: Assets, die noch draft sind, fehlende Lizenz, Sprite/UI ohne Alpha-Kanal, vollständig undurchsichtig (Freistellung nicht durchgeführt), falsche Maße.
Lizenzierung & Überprüfung (nicht überspringen)
- Die kommerziellen Nutzungsbedingungen für KI-generierte Assets richten sich nach dem Dienst. Prüfe jeden Dienst einzeln und dokumentiere die Quelle im Feld
license. - Einige Plattformen (insbesondere bei der Überprüfung chinesischer Minigames) erfordern die Angabe der Quelle des Materials;
ai_generated: trueist das Kennzeichen für die Überprüfung, nicht vergessen. - Schriftarten dürfen nur Open-Source-OFL-Schriftarten (Noto / Source Han Serif/Sans) sein; kommerzielle Schriftarten müssen vom User lizenziert werden. Lade keine Schriftarten aus unbekannten Quellen herunter.
Was nicht möglich ist (muss dem User mitgeteilt werden)
| Anforderung | Ergebnis |
|---|---|
| 2D-Stehbilder / Hintergründe / UI / Symbole / Gegenstände | Möglich, erfordert manuelle Auswahl und Nachbearbeitung |
| Frame-für-Frame-Animation derselben Figur | KI-Spritesheet oder Sequenz möglich, Konsistenz prüfen und ggf. nachbearbeiten |
| 3D-Modelle / Skelettanimation | Dieser Workflow nicht möglich |
| Pixelgenaue Einheitlichkeit (z. B. strenges Pixel-Art-Raster) | Erfordert manuelle Pixel-für-Pixel-Korrektur; KI-Bilder haben oft Halbpixel-Versatz |
| Kommerzielle Schriftarten | Nur Open-Source-Alternativen möglich |