godot-asset-generator について
Godot Asset Generatorは、画像生成APIで2Dゲーム素材を作成し、Godot 4.xプロジェクト向けに整えるスキルです。バッチ生成、画像処理、スプライトシートの作成、インポートファイル生成に対応します。
主な機能
- 01対応APIでの画像生成
- 02関連素材の一括生成
- 03スプライトの加工とリサイズ
- 04画像からスプライトシートを作成
- 05Godotインポートファイルの生成
活用シーン
- 01Godotゲーム用スプライトの作成
- 02アニメーションフレームの一括生成
- 03タイルセットやUIアイコンの作成
- 04生成画像のGodotインポート準備
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ jwynia/ agent-skills --skill godot-asset-generatorインストール後、Claude Code で/godot-asset-generatorを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
assets/prompts/pixel-art-templates.jsonassets/style-guides/style-guide-template.jsonreferences/api-guides/openai-dalle.mdreferences/godot-integration/import-settings.mdreferences/prompting/pixel-art.mdscripts/batch-generate.tsgenerate-image.tsgenerate-import-files.tspack-spritesheet.tsprocess-sprite.ts詳細
Godot アセットジェネレーター
AI 画像生成 API を使用してゲームアセットを生成し、Godot 4.x で使えるように準備します。このスキルでは、コンセプトから Godot で使用できるスプライトまで、アート制作の全工程を扱います。
このスキルを使う場合
次の場合にこのスキルを使います:
- AI を使用してゲームのスプライト、キャラクター、オブジェクトを生成する
- プラットフォーマーやトップダウンゲーム向けのタイルセットを作成する
- UI 要素、アイコン、メニュー用アセットを生成する
- アニメーションフレームを一括生成する
- AI 生成アセットを Godot にインポートできるよう準備する
- スタイルガイドに沿って統一感のあるアセットセットを作成する
次の場合はこのスキルを使わないでください:
- 3D モデルやテクスチャを作成する(2D アセットのみが対象です)
- 手作業でピクセルアートやイラストを作成する(アートソフトウェアを使用してください)
- 複雑なコマ送りアニメーションを作成する(アニメーションツールを使用してください)
- 既存のアセットを扱う(Godot を直接使用してください)
前提条件
必須:
- Deno ランタイムがインストールされていること
- 少なくとも 1 つの API キー:
- DALL-E 3 用の
OPENAI_API_KEY - Replicate(SDXL、Flux)用の
REPLICATE_API_TOKEN - fal.ai 用の
FAL_KEY
- DALL-E 3 用の
任意:
- 高度な画像処理用の ImageMagick
- インポートファイル生成用の Godot 4.x プロジェクト
クイックスタート
画像を 1 枚生成する
deno run --allow-env --allow-net --allow-write scripts/generate-image.ts \
--provider dalle \
--prompt "pixel art knight character, front view, 16-bit style, transparent background" \
--output ./assets/knight.png
アニメーションフレームを一括生成する
deno run --allow-env --allow-net --allow-read --allow-write scripts/batch-generate.ts \
--spec ./batch-spec.json \
--output ./generated/
スプライトシートを作成する
deno run --allow-read --allow-write scripts/pack-spritesheet.ts \
--input ./generated/*.png \
--output ./sprites/player-sheet.png \
--columns 4
基本的なワークフロー
フェーズ 1:スタイルの定義
アセットを生成する前に、アートスタイルを定義します:
- アートスタイルを選ぶ:ピクセルアート、手描き、水彩画風、またはベクター
- スタイルガイドを作成する:色、修飾語、制約を記録する
- プロンプトをテストする:サンプルを生成して、スタイルの一貫性を確認する
{
"style": "pixel-art",
"resolution": 64,
"palette": "limited-16-colors",
"modifiers": "16-bit, no anti-aliasing, clean pixels"
}
フェーズ 2:アセットの生成
適切なプロバイダーを使用してアセットを生成します:
- 個別アセット:画像 1 枚ごとに
generate-image.tsを使用します - 一括アセット:関連する複数のアセットには
batch-generate.tsを使用します - 反復調整:結果に基づいてプロンプトを改善します
フェーズ 3:後処理
AI の生の出力をゲームで使えるように準備します:
- 背景の除去:背景からスプライトを切り出します
- 色補正:必要に応じてパレットを統一します
- サイズ変更:ゲーム内の正確な解像度に合わせます
- トリミング/余白の追加:余白を取り除き、スプライトの余白を追加します
deno run --allow-read --allow-write scripts/process-sprite.ts \
--input ./raw/knight.png \
--output ./processed/knight.png \
--remove-bg \
--resize 64x64 \
--filter nearest
フェーズ 4:Godot への統合
Godot にインポートできるようアセットを準備します:
- スプライトシートをまとめる:フレームを最適化されたシートに結合します
- インポートファイルを生成する:最適な設定で
.importを作成します - アニメーションを設定する:SpriteFrames リソースをセットアップします
API プロバイダーの選択
| プロバイダー | 最適な用途 | 品質 | コスト | 速度 |
|---|---|---|---|---|
| DALL-E 3 | 一貫性、高精細 | 非常に優れている | $$$ | 中 |
| Replicate | スタイル制御、バリエーション | とても良い | $$ | 中 |
| fal.ai | 高速な反復、テスト | 良い | $ | 高速 |
DALL-E 3(OpenAI)
高品質で一貫性のある結果に最適です。プロンプトへの追従性に優れています。
--provider dalle --model dall-e-3
- サイズ:1024x1024、1792x1024、1024x1792
- 品質:standard、hd
- スタイル:vivid、natural
Replicate(SDXL/Flux)
スタイル制御や、低コストでの一括生成に最適です。
--provider replicate --model stability-ai/sdxl
- モデルの選択肢が豊富です(SDXL、Flux、特化型モデル)
- ネガティブプロンプトに対応しています
- ControlNet と img2img を利用できます
fal.ai
プロンプトの素早い反復とテストに最適です。
--provider fal --model fal-ai/flux/schnell
- 推論が最速です
- プロトタイピングに適しています
- 画像 1 枚あたりのコストが低めです
アートスタイル別のプロンプト
ピクセルアート
"pixel art [subject], 16-bit style, clean pixels, no anti-aliasing,
limited color palette, retro game sprite, transparent background"
主な修飾語:16-bit、8-bit、pixel art、retro、clean pixels、no anti-aliasing
避ける語句:realistic、detailed、smooth、gradient
手描き/イラスト
"hand-drawn illustration of [subject], ink lines, watercolor texture,
sketch style, game art, white background"
主な修飾語:hand-drawn、illustration、ink lines、sketch、watercolor
水彩画風/コンセプトアート
"digital painting of [subject], concept art style, painterly brush strokes,
dramatic lighting, game asset"
主な修飾語:digital painting、concept art、painterly、brush strokes
ベクター/フラットデザイン
"flat design [subject], vector art style, clean edges, solid colors,
minimal shading, game icon, transparent background"
主な修飾語:flat design、vector、clean edges、solid colors、minimal
スクリプトリファレンス
generate-image.ts
対応している任意のプロバイダーから画像を 1 枚生成します。
deno run --allow-env --allow-net --allow-write scripts/generate-image.ts [options]
Options:
--provider <name> Provider: dalle, replicate, fal (required)
--prompt <text> Generation prompt (required)
--output <path> Output file path (required)
--model <name> Specific model (optional, provider-dependent)
--size <WxH> Image size, e.g., 1024x1024 (default: 1024x1024)
--style <name> Style preset: pixel-art, hand-drawn, painterly, vector
--negative <text> Negative prompt (Replicate/fal only)
--quality <level> Quality: standard, hd (DALL-E only)
--json Output metadata as JSON
-h, --help Show help
batch-generate.ts
仕様ファイルから複数の画像を生成します。
deno run --allow-env --allow-net --allow-read --allow-write scripts/batch-generate.ts [options]
Options:
--spec <path> Path to batch specification JSON (required)
--output <dir> Output directory (required)
--concurrency <n> Parallel requests (default: 2)
--delay <ms> Delay between requests (default: 1000)
--resume Resume from last successful
--json Output results as JSON
-h, --help Show help
バッチ仕様の形式:
{
"provider": "replicate",
"model": "stability-ai/sdxl",
"style": "pixel-art",
"basePrompt": "16-bit pixel art, game sprite, transparent background",
"assets": [
{ "name": "player-idle", "prompt": "knight standing idle, front view" },
{ "name": "player-walk-1", "prompt": "knight walking, frame 1 of 4" },
{ "name": "player-walk-2", "prompt": "knight walking, frame 2 of 4" }
]
}
process-sprite.ts
生成した画像をゲーム用に後処理します。
deno run --allow-read --allow-write scripts/process-sprite.ts [options]
Options:
--input <path> Input image path (required)
--output <path> Output image path (required)
--remove-bg Remove background (make transparent)
--resize <WxH> Resize to dimensions
--filter <type> Resize filter: nearest, linear (default: nearest)
--trim Trim transparent whitespace
--padding <n> Add padding pixels
--color-key <hex> Color to make transparent (e.g., ff00ff)
-h, --help Show help
pack-spritesheet.ts
複数のスプライトをスプライトシートにまとめます。
deno run --allow-read --allow-write scripts/pack-spritesheet.ts [options]
Options:
--input <pattern> Input files (glob pattern, required)
--output <path> Output sprite sheet path (required)
--columns <n> Number of columns (default: auto)
--padding <n> Padding between sprites (default: 0)
--power-of-two Force power-of-two dimensions
--metadata <path> Output JSON metadata path
-h, --help Show help
出力メタデータ:
{
"image": "player-sheet.png",
"size": { "width": 256, "height": 128 },
"frames": [
{ "name": "idle", "x": 0, "y": 0, "width": 64, "height": 64 },
{ "name": "walk-1", "x": 64, "y": 0, "width": 64, "height": 64 }
]
}
generate-import-files.ts
最適な設定で Godot の .import ファイルを生成します。
deno run --allow-read --allow-write scripts/generate-import-files.ts [options]
Options:
--input <path> Input image or directory (required)
--preset <name> Preset: pixel-art, hd-sprite, ui (default: pixel-art)
--frames <n> Animation frame count (for sprite sheets)
--columns <n> Sprite sheet columns
--fps <n> Animation FPS (default: 12)
-h, --help Show help
Godot のインポート設定
ピクセルアートのスプライト
Filter Mode: Nearest
Compression: Lossless
Mipmaps: Off
Fix Alpha Border: On
HD スプライト
Filter Mode: Linear
Compression: VRAM Compressed
Mipmaps: On
UI 要素
Filter Mode: Linear (or Nearest for pixel UI)
Compression: Lossless
Mipmaps: Off
例
例 1:歩行アニメーション付きのピクセルアートキャラクター
# 1. Create batch spec
cat > character-batch.json << 'EOF'
{
"provider": "replicate",
"style": "pixel-art",
"basePrompt": "16-bit pixel art knight, game sprite, transparent background",
"assets": [
{ "name": "knight-idle", "prompt": "standing idle, front view" },
{ "name": "knight-walk-1", "prompt": "walking, left foot forward" },
{ "name": "knight-walk-2", "prompt": "walking, standing straight" },
{ "name": "knight-walk-3", "prompt": "walking, right foot forward" },
{ "name": "knight-walk-4", "prompt": "walking, standing straight" }
]
}
EOF
# 2. Generate images
deno run --allow-env --allow-net --allow-read --allow-write \
scripts/batch-generate.ts --spec character-batch.json --output ./raw/
# 3. Process sprites
for f in ./raw/knight-*.png; do
deno run --allow-read --allow-write scripts/process-sprite.ts \
--input "$f" --output "./processed/$(basename $f)" \
--remove-bg --resize 64x64 --filter nearest
done
# 4. Pack sprite sheet
deno run --allow-read --allow-write scripts/pack-spritesheet.ts \
--input "./processed/knight-*.png" \
--output ./sprites/knight-sheet.png \
--columns 5 --metadata ./sprites/knight-sheet.json
# 5. Generate Godot import
deno run --allow-read --allow-write scripts/generate-import-files.ts \
--input ./sprites/knight-sheet.png --preset pixel-art \
--frames 5 --columns 5 --fps 8
例 2:タイルセットの生成
# Generate individual tiles
deno run --allow-env --allow-net --allow-write scripts/generate-image.ts \
--provider dalle \
--prompt "seamless pixel art grass tile, top-down view, 32x32, game tileset" \
--output ./tiles/grass.png \
--style pixel-art
# Process and resize
deno run --allow-read --allow-write scripts/process-sprite.ts \
--input ./tiles/grass.png --output ./tiles/grass-processed.png \
--resize 32x32 --filter nearest
例 3:UI アイコン
# Batch generate UI icons
cat > ui-batch.json << 'EOF'
{
"provider": "fal",
"style": "vector",
"basePrompt": "flat design game icon, clean edges, solid colors, transparent background",
"assets": [
{ "name": "icon-sword", "prompt": "sword weapon icon" },
{ "name": "icon-shield", "prompt": "shield defense icon" },
{ "name": "icon-potion", "prompt": "health potion bottle icon" },
{ "name": "icon-coin", "prompt": "gold coin currency icon" }
]
}
EOF
deno run --allow-env --allow-net --allow-read --allow-write \
scripts/batch-generate.ts --spec ui-batch.json --output ./icons/
よくある問題
API キーが見つからない
Error: OPENAI_API_KEY environment variable is not set
解決策:実行前に API キーをエクスポートします。
export OPENAI_API_KEY="sk-..."
バッチ内でスタイルに一貫性がない
問題:同じプロンプトを使っても、生成画像のスタイルが異なります。
解決策:
- より具体的なスタイル指定を使用します
- 再現性を確保するため、シードパラメーターを指定して Replicate を使用します
- 画像を多めに生成し、最も一致するものを選びます
- 参照画像を使って img2img を使用します(Replicate)
背景の削除に失敗する
問題:--remove-bg でスプライトをきれいに切り抜けません。
解決策:
- プロンプトに「透明な背景」または「白い背景」を追加します
- 特定の背景色を指定して
--color-keyを使用します - 「透明な背景に単独で配置」のように、より明確なプロンプトを使用します
- 複雑な画像では手動での修正が必要になる場合があります
ピクセルアートにアンチエイリアスがかかる
問題:生成されたピクセルアートのエッジが滑らかになっています。
解決策:
- プロンプトに「アンチエイリアスなし」「くっきりしたピクセル」を追加します
- 大きいサイズで生成してから、ニアレストネイバー法で縮小します
- process-sprite.ts で
--filter nearestを使用します - パレットの色数を減らして後処理します
レート制限
問題:API が 429 レート制限エラーを返します。
解決策:
- batch-generate.ts の
--delayを大きくします --concurrencyを小さくします- 時間をおいて再試行します
- 大規模なバッチでは別のプロバイダーを使用します
追加リソース
プロンプトガイド
references/prompting/pixel-art.md- ピクセルアートの詳細な手法references/prompting/hand-drawn.md- イラスト風のスタイルガイドreferences/prompting/consistent-characters.md- キャラクターの一貫性
API ガイド
references/api-guides/openai-dalle.md- DALL-E 3 API リファレンスreferences/api-guides/replicate-sdxl.md- Replicate の連携方法references/api-guides/fal-ai.md- fal.ai ガイド
Godot 連携
references/godot-integration/import-settings.md- インポート設定references/godot-integration/animation-setup.md- AnimatedSprite2D の設定
テンプレート
assets/prompts/pixel-art-templates.json- ピクセルアートのプロンプトテンプレートassets/prompts/character-templates.json- キャラクター用プロンプトassets/style-guides/style-guide-template.json- スタイルガイドのスキーマ
制限事項
- API のみ:インターネット接続と API キーが必要です(ローカルモデルには対応していません)
- スタイルの一貫性:同じプロンプトでも、AI が異なるバリエーションを生成する場合があります
- 解像度の制約:各プロバイダーにはサイズ制限があります
- 2D アセットのみ:3D モデル、テクスチャ、複雑なアニメーションには対応していません
- 背景の削除:複雑な画像では手動での修正が必要になる場合があります
- コスト:API 呼び出しには料金が発生し、特に大規模なバッチでは高額になります