精靈產生器 是做什麼的?
輸出
已生成並驗證的精靈、預覽圖以及 Godot 整合成品。
非目標
使用本地繪圖腳本作為實際圖像生成的替代品。
目的
根據概念、一張或多張參考圖像,或詳細的藝術指導簡報,創建以製作為導向的 2D 遊戲精靈。此技能特意與風格無關:使用者可以提供參考圖像、樣式卡、螢幕截圖或生動的描述,而工作流程會將其轉換為可重複使用的精靈生成作業,其中包含提示詞、基礎圖像、生成的基礎參考、動畫/狀態任務、確定性提取、品質保證和 Godot 入門檔案。
目標不僅僅是創建漂亮的圖像。目標是產出能夠以可預測的檔案名稱、透明背景、整潔的圖集、影格後設資料、品質保證接觸表和 SpriteFrames 入門資源的方式,放置到 Godot 專案中的資產。
對此技能的請求範例:
- "建立一套家具,有乾淨和骯髒的版本。"
- "用這個美術風格製作一個角色,包含待機、行走、指向和清理動畫。"
- "根據此參考圖,創建一個相同風格的娃娃屋房間地圖。"
- "生成替換的服裝/顏色變體,並保持相同的身體比例。"
- "將這個物體草圖轉換為準備好用於遊戲的透明道具精靈。"
輸入
接受以下任何輸入的組合:
- 參考圖像: 樣式表、現有角色、道具、螢幕截圖、情緒板、調色板、先前生成的精靈或遊戲內截圖。
- 生動描述: 資產名稱、角色、形狀、材質、顏色、比例、相機角度、預期用途和風格形容詞。
- 資產類型:
character、npc、player、furniture、prop、object、map、room、dollhouse或通用sprite。 - 動畫: 已命名的動作、影格數、方向、循環/一次性行為、持續時間或 FPS,以及特殊姿勢說明。
- 狀態與變體: 乾淨/骯髒、打開/關閉、健康/枯萎、空/滿、服裝 A/B、顏色集、損壞等級等。
- 整合目標: Godot 版本、格狀大小、圖集欄數、比例、俯瞰/等距/側視相機,以及偏好的導入路徑。
如果使用者遺漏細節,請推斷合理的預設值,並使輸出易於迭代。不要在每個遺漏的細節上卡住。僅在遺漏會導致昂貴的錯誤工作時才提出釐清問題,例如未知的風格、未知的角色身份或必需的動畫列表。
視覺生成委派
實際美術必須使用環境的圖像生成能力來生成,而不是本地腳本。在 Codex 風格的技能環境中,如果可用,請委派給已安裝的 $imagegen 技能。在 ChatGPT 中,當使用者要求實際創建視覺資產時,請使用原生的圖像生成工具。捆綁的 Python 腳本僅用於確定的生產步驟。
允許的確定性步驟:
- 創建執行資料夾和提示詞檔案
- 將穩定的參考圖複製到執行資料夾
- 創建版面指南圖像
- 記錄選取的生成輸出
- 移除單色色鍵背景
- 將條狀圖分割成影格
- 將影格裁剪、縮放、填補並置中到一致的格狀中
- 組合 PNG/WebP 圖集
- 生成接觸表和 GIF 預覽
- 編寫 JSON 清單和 Godot 入門資源
硬性界限:不要使用 Pillow、SVG、CSS、HTML Canvas 或程式化形狀來繪製、塗畫、合成、平鋪、扭曲或發明精靈藝術,作為圖像生成的替代品。腳本可以處理生成的圖像;它們不能被用作隱藏的藝術生成器。
風格捕捉與風格鎖定
當提供風格參考時,將其視為真理的來源。將以下特質提取到提示詞計畫中:
- 相機角度與視角:正面、側面、俯瞰、等距、3/4、娃娃屋、正交
- 比例:Q 版、寫實、矮胖、高大、玩具感、像素風、油畫風、扁平向量、低多邊形渲染
- 線條與邊緣處理:無外框、粗外框、柔邊渲染、像素邊緣、賽璐珞邊框
- 材質與光照:黏土、毛絨、塑膠玩具、3D 上色、扁平賽璐珞、光澤、霧面、水彩等
- 調色板與飽和度
- 陰影策略:透明精靈不使用陰影,除非明確保留為物體的一部分
- 背景策略:背景應為透明或單色,以便提取
- 在目標格狀大小下的比例與可讀性
如果某行或某狀態看起來像是不同風格的相關資產,而不是目標風格的相同資產,則視為失敗。
資產類型預設值
角色/NPC/玩家
如果使用者未指定動畫,則預設輸出:
| 動畫 | 影格數 | 用途 |
|---|---|---|
idle | 4 | 呼吸/眨眼循環;第一影格可作為靜態姿勢 |
walk_down | 6 | 向前/向下移動 |
walk_up | 6 | 向後/向上移動 |
walk_left | 6 | 側視圖左移 |
walk_right | 6 | 側視圖右移 |
可選的常見動作:point、talk、pickup、carry、clean、use_item、sit、sleep、cry、celebrate、fail、interact、attack、cast、jump、push、pull。
家具/道具/物體
如果使用者未指定狀態,則預設輸出:
| 狀態 | 影格數 | 用途 |
|---|---|---|
clean | 1 | 正常/整潔狀態 |
dirty | 1 | 同一物體的骯髒/雜亂狀態 |
可選的常見狀態:empty、half_full、full、overflowing、open、closed、on、off、healthy、wilted、broken、repaired、selected、highlighted、locked、unlocked。
地圖/房間/娃娃屋
預設輸出是一張大的 map_base 精靈或背景。對於房間,請指定是需要單個扁平化的美術圖層,還是分離的圖層,例如 floor、walls、furniture、interactables、path_overlay 和 collision_reference。除非要求作為單獨的疊加層,否則不要在生產地圖美術中包含 UI 標籤、箭頭、路徑線或教學疊加層。
背景與透明度規則
當圖像工具無法可靠地生成真正的 Alpha 通道時,首先生成帶有單色色鍵背景的圖像。預設色鍵為 #00ff00。最終的圖集在提取後應為透明的 PNG/WebP。
對於生成的原始圖像:
- 在整個條狀圖或物體渲染中使用單一的背景顏色
- 將資產與色鍵保持視覺上的分離
- 當使用綠色鍵時,避免資產帶有綠色亮點/材質;如果資產需要綠色,則選擇洋紅色或藍色鍵
- 不要有白色背景、棋盤格背景、UI 面板、標籤、影格編號、可見網格、邊框或風景
- 不要有投射陰影、地板陰影、輝光、柔和的透明光暈、塵埃雲、速度線、運動模糊或鬆散分離的特效,除非一個微小的附加不透明效果明確是精靈的一部分
- 每個影格必須完整、分離、未被裁剪,並位於其插槽內
動畫提示規則
對於每個動畫行/條:
- 請求確切的宣告影格數
- 指定版面:通常為從左到右的水平條
- 使用規範基礎圖像和參考圖像作為基礎輸入
- 保持身份、比例、調色板、材質、外框/邊緣風格和相機角度一致
- 透過姿勢變化來傳達運動,而不是透過模糊、速度線、塵埃或陰影
- 當
loop=true時,第一影格和最後一影格應能乾淨地循環 - 對於方向性動畫,明確請求方向,如果角色有側面特定配件,則避免意外的鏡像細節
如果某一行改變了角色的臉部、身體形狀、服裝、道具設計、材質風格或相對於基礎的比例,則不接受該行。
可見的進度計畫
對於標準的資產執行,為使用者保持一個可見的檢查清單:
- 準備資產請求。
- 創建規範外觀。
- 創建狀態和動畫行。
- 打包給 Godot。
每個步驟的含義:
- 準備資產請求: 建立資產名稱、資產類型、風格來源、輸出內容、格狀大小、色鍵和執行目錄。
- 創建規範外觀: 生成或選擇成為身份/風格鎖定的基礎參考。
- 創建狀態和動畫行: 使用基礎和參考生成每個輸出任務;僅修復失敗的行/狀態。
- 打包給 Godot: 提取影格、組合圖集、創建品質保證接觸表、編寫清單、編寫
SpriteFrames入門資源,並報告檔案路徑。
僅在實際檔案或決策存在時,才將某步驟標記為完成。
工作流程
1. 準備執行資料夾
python3 ./scripts/prepare_sprite_run.py \
--asset-name "Market Crate" \
--asset-type prop \
--description "readable wooden market crate with colorful contents" \
--style-notes "match the supplied game art reference" \
--reference /absolute/path/to/style_reference.png \
--state full:1:"crate full of items":single:once \
--state empty:1:"same crate empty":single:once \
--cell-size 256x256 \
--columns 2 \
--output-dir /absolute/path/to/run
對於角色:
python3 ./scripts/prepare_sprite_run.py \
--asset-name "Player" \
--asset-type character \
--description "friendly player character with a clear silhouette" \
--reference /absolute/path/to/style_reference.png \
--animation idle:4:"gentle breathing and blink" \
--animation walk_down:6:"walking toward camera" \
--animation walk_up:6:"walking away from camera" \
--animation walk_left:6:"walking left side view" \
--animation walk_right:6:"walking right side view" \
--cell-size 256x320 \
--columns 6 \
--output-dir /absolute/path/to/run
進階的執行可以使用 JSON 設定檔來描述,並透過 --config 傳遞。
2. 檢查準備就緒的任務
python3 ./scripts/sprite_job_status.py --run-dir /absolute/path/to/run
應首先生成 base 任務。在生成依賴任務之前,記錄選取的生成基礎圖像。記錄器會寫入 references/canonical-base.png,後續任務應將其作為輸入圖像使用。
3. 生成每個視覺任務
對於每個準備就緒的任務,使用 imagegen-jobs.json 中列出的提示詞檔案以及所有列出的輸入圖像。選取最佳的原始生成圖像,然後記錄它:
python3 ./scripts/record_imagegen_result.py \
--run-dir /absolute/path/to/run \
--job-id job-id-from-status \
--source /absolute/path/to/generated-output.png
不要記錄手動編輯的固定圖、縮圖或來自執行目錄中 final/frames 資料夾的檔案作為原始美術。記錄選取的原始生成輸出。
4. 最終化
python3 ./scripts/finalize_sprite_run.py --run-dir /absolute/path/to/run
預期輸出結構:
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. 複製到 Godot 專案
python3 ./scripts/package_godot_assets.py \
--run-dir /absolute/path/to/run \
--project-dir /absolute/path/to/godot-project \
--dest assets/sprites
打包後請檢視 godot/README_GODOT.md。如果您將檔案複製到不同的 res:// 位置,請更新生成的 .tres 檔案內的紋理路徑。
修復工作流程
如果品質保證失敗,請先修復最小範圍:
- 單個錯誤的狀態或動畫行。
- 僅當您的圖像工具能可靠地支援影格級別編輯時,才修復單個錯誤影格。
- 僅當身份/風格在各方面都錯誤時,才修復規範基礎。
- 僅作為最後手段,才修復整個圖集。
常見的修復提示:
- "僅重新生成
walk_left;保留確切的規範角色、服裝、比例和玩具渲染風格。" - "僅重新生成
dirty;它必須是與clean相同的沙發,但毯子/枕頭凌亂。" - "重新生成這個條狀圖,精確地包含 6 個影格,且沒有影格編號或標籤。"
- "使用洋紅色色鍵,因為物體需要綠色材質。"
在記錄修復後的圖像後,重新執行最終化。
品質保證評分標準
在通過以下檢查之前,不接受資產:
- 生成的基礎與請求的樣式或提供的樣式參考相符。
- 每個狀態/動畫都是相同的資產身份,而不是重新設計。
- 精確的影格數存在。
- 透明提取不會移除精靈的重要部分。
- 影格完整、置中、填補且未被裁剪。
- 生產美術中沒有洩漏的標籤、影格編號、網格線、浮水印、UI 面板或風景。
- 提取後沒有不必要的陰影、輝光、塵埃、速度線、模糊或分離的特效。
- 接觸表在目標大小下視覺上閱讀正確。
final/validation.json沒有錯誤;警告已進行視覺檢查。- Godot 清單中的名稱與您打算在程式碼中呼叫的動畫名稱相符。
驗收標準
一個完成的執行應包含:
references/canonical-base.png中的規範基礎參考- 在
imagegen-jobs.json中記錄的選取生成來源 - 提取後的透明影格 PNG
final/spritesheet.png以及支援時的final/spritesheet.webpqa/contact-sheet.png- 多影格動畫的 GIF 預覽
final/validation.json沒有錯誤godot/下的 Godot 入門檔案- 一個簡短的使用者報告,說明哪些行/狀態已修復或儘管有警告但已被手動接受
規則
- 對於視覺內容,使用視覺生成;腳本僅用於確定性處理。
- 對於多輸出的資產,始終使用規範基礎。
- 當圖像工具支援參考時,為每個依賴的視覺任務附加參考。
- 偏好透明或色鍵相容的輸出,而非場景插圖。
- 不要將 UI 標籤、教學箭頭、路徑線或碰撞指南放入生產精靈中,除非它們被請求為單獨的疊加資產。
- 對於 Godot,保持動畫名稱穩定且小寫,並使用底線分隔單詞(例如
walk_down)。 - 如果某個狀態或動畫在最終化後看起來不對,請重複修復工作流程。