Community影像github.com

OmniSprite 🎮✨ — 指令 `/sprite`

在 Aseprite 中,透過 pixel-mcp 伺服器建立大型、細節豐富的像素藝術 Sprite、Tileset 與動畫。適用在使用者要求 Sprite、角色、Tile、圖示、像素藝術場景、Spritesheet、動畫循環,或指定風格(8-bit、16-bit、GBA、HD Pixel、Dark Fantasy、Cyberpunk、等角投影)時觸發。也回應英文請求(如 sprites, pixel art, sprite sheets, animation cycles)。強制實施解析度等級、優先調色板、鎖定視角、圖層架構與視覺審查,確保成品不會又小又平面。

sprite` 是什麼?

OmniSprite 是一個 AI 代理技能,專門透過 `pixel-mcp` 伺服器在 Aseprite 中建立像素藝術。它會引導使用者完成從設定到交付的完整流程,特別適合要求高解析度、細節豐富的 Sprite、Tileset 或動畫的場合。該技能會自動檢查並設定必要的前置條件(如 Aseprite 安裝與 MCP 工具),並透過 `/sprite` 指令進行結構化的「簡報對話」來收集需求,例如主題、風格、大小、視角、動畫循環與調色板。技能強制實施嚴格的「調色板優先」工作流程,並鎖定視角(側面、3/4、正面、等角)以確保視覺一致性。建構過程遵循固定的圖層順序(背景、陰影、底色、陰影、光線、細節、輪廓、特效),並在每個階段強制進行導出與視覺審查循環,確保品質。最後產出 `.aseprite` 原始檔、1x 與 4x PNG、以及適合遊戲引擎的 Spritesheet(含 JSON 與 GIF)。此技能支援所有主要 AI 代理平台(CLI、IDE 整合),並提供豐富的參考文件與選用的輔助技能(如調色板選擇與前端設計),以滿足專業像素藝術家的需求。

相容平台~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/LimaEdu-7x/omni-sprite/tree/HEAD

Installed? Explore more 影像 skills: steipete/songsee, affaan-m/frontend-design, mattpocock/improve-codebase-architecture · View all 6 →

在你喜歡的 AI 中提問

開啟一個已預先載入此 Agent Skill 的新對話。

說明文件

OmniSprite 🎮✨ — 指令 /sprite

像素藝術的精密工作流程,運行於 Aseprite 的 pixel-mcp 伺服器上(工具目錄:references/mcp-tools.md)。請以使用者的語言回覆。

指令 /sprite

用法:/sprite [描述] [標記]。若無引數,則詢問使用者想建立什麼。

標記效果
--tamanho S|M|L|XL|cena大小等級(預設 L,128×128)
--estilo <預設>12 種風格之一,詳見 references/styles.md(預設 hd-pixel)
--vista lateral|3-4|frontal|iso鎖定視角(預設側面,面向右方)
--anim idle,walk,attack,...要動畫化的循環(食譜詳見 references/animation.md)
--paleta <lospec-slug|#hex,#hex|ref:路徑>指定的調色板,來自 Lospec 或從圖片衍生
--doctor僅診斷:Aseprite 是否找到?MCP 是否註冊?(步驟 0)
--compilar強制執行從原始碼編譯 Aseprite 的流程(步驟 0.4a)

指定的標記會省去對應的簡報問題;其餘問題會進入 grill-me 回合。例如:/sprite 黑暗奇幻騎士 --tamanho L --anim idle,walk,attack。

0. 前置條件(即插即用;檢查一次並修正缺失)

  1. MCP 工具是否可見?(create_canvas、draw_pixels、export_sprite…)。如果是,請前往步驟 1。
  2. 如果沒有,找到 Aseprite: 執行 scripts/find-aseprite.ps1(Windows)或 scripts/find-aseprite.sh。回傳值 0 會印出路徑;回傳值 2 表示未找到。
  3. 找到 Aseprite → 執行 scripts/install-mcp.ps1 / .sh(自動偵測,下載固定版本的 pixel-mcp,檢查 SHA-256 並註冊)。請使用者重新啟動用戶端並繼續。
  4. 找不到 Aseprite → 詢問使用者(一個問題,附選項);不要自行假設:
    • "Aseprite 未安裝。您要我從 GitHub 下載其原始碼、編譯並設定嗎?(需要 git、CMake、Ninja 和 C++ 編譯器;約需 10–40 分鐘;Aseprite 授權允許為了個人使用而編譯,但不可重新分發二進位檔。)"
    • 選項:(a) 是,請幫我編譯(建議)· (b) 我自己安裝(Steam / aseprite.org / itch.io;付費,支援開發者)· (c) 跳過 Aseprite 並使用 Python/Pillow 的 B 計畫(不產生 .aseprite 檔案,但風格規則相同)。
    • 選 (a):執行 scripts/build-aseprite.ps1(Windows)或 scripts/build-aseprite.sh。如果缺少前置條件,請告知並提議在詢問後使用平台套件管理員(winget / brew / apt)安裝。若失敗,請參閱 references/build-aseprite.md。完成後,執行步驟 3。
  5. 在關閉簡報(第 1 節)之前,絕不繪製。缺少回覆 → 詢問,或使用預設值並告知使用者。

1. 簡報(如果已安裝 grill-me,請使用它)

將以下問題作為 grill-me 的簡短回合提出(所有獨立問題一起提出,每個問題附建議答案,以便「是」接受);如果該技能不存在,則正常提問。只問缺失的項目。

問題無回覆時的預設值
這是什麼?一句話 + 氛圍?–
將用於何處(遊戲類型、UI、印刷)?攝影機:側面 / 3/4 俯視 / 等角 / 正面側面視角
風格(請參閱 references/styles.md)hd-pixel
大小等級(下表)L
動畫?哪些循環?無
調色板:指定 / 從 Lospec 選擇 / 從參考圖片衍生使用 color 技能(/color)衍生(如果存在),否則使用 Lospec

2. 大小等級(超越「圖示大小」;保持像素藝術)

等級畫布典型用途顏色
S32×32物品、圖示8–16
M64×64小型角色、道具16–24
L128×128主要角色、精細道具24–40
XL192×192 / 256×256英雄肖像、頭目32–64
場景320×180 或 480×270背景、關鍵藝術32–64

規則:像素是正方形,絕不以非整數倍縮放。細節來自更多像素,而非模糊。如果使用者要求「更多細節」,請先升級一個等級,而非添加雜訊。

3. 調色板優先

  1. 選擇/衍生調色板(references/palette-workflow.md;Lospec 的十六進位:https://lospec.com/palette-list/<slug>.hex)。
  2. 以索引顏色模式 create_canvas,然後 set_palette。在每個色階中將調色板從暗到亮排序(必要時使用色相及亮度進行 sort_palette)。
  3. 建立色階,而非散亂的顏色:每個材質 3–5 階(陰影、中間色、亮部、高光),並帶有色相偏移(陰影 → 較冷/飽和,亮部 → 較暖)。使用 analyze_palette_harmonies 檢查。
  4. 在繪圖呼叫中傳遞 use_palette: true,使每個像素都調整到調色板。

3b. 方向與姿勢(繪製前鎖定;請參閱 references/orientation-and-pose.md)

宣告 view(側面 / 3/4 / 正面 / 等角)、facing(側面視角繪製時面向右方)、光線方向、哪隻手持哪個道具,以及斗篷/頭髮垂落方向。規則:靠近攝影機一側的肢體在軀幹前方,另一側在後方;頭部朝向視線方向;斗篷固定在背部並位於最下層;每隻手一個道具,位於身體前方。對於任何動畫化的事物,先建立骨架:關節 + 2 骨 IK,然後是形狀(rig.py 位於 https://github.com/LimaEdu-7x/omni-sprite/tree/main/examples/knight)。初次渲染後進行輪廓/鏡像/重疊測試。

4. 建構順序(圖層,始終依此順序)

使用 add_layer 從下到上建立圖層:bg、shadow-cast、base、shade、light、detail、outline、fx。

  1. 輪廓 – 在 base 中以一種暗色平塗填充整個形狀。以 1 倍大小觀看:若無法辨認為輪廓,則重做。強調不對稱性,清晰分離頭部/軀幹/肢體,可讀的負空間。
  2. 平塗顏色 – 每個材質使用一個中間色調,使用 fill_area / draw_rectangle / draw_circle / draw_contour。
  3. 形狀陰影 – 選擇一個光線方向(預設:左上)。使用 apply_shading(銳利風格用於清晰,HD 用於平滑)在 shade/light 上;在主光源對側添加選擇性邊緣光。
  4. 紋理與細節 – 僅在風格允許時使用 draw_with_dither(參閱風格);手動使用 draw_pixels 繪製眼睛、縫線、帶扣、高光。將像素分組;避免孤立像素(雜訊)和「鋸齒」(線條上的不均勻階梯)。
  5. 輪廓 – apply_outline 然後手動調整:HD 使用選擇性輪廓(較暗的顏色帶有色相偏移,非純黑);8/16-bit 使用完整深色輪廓;「無輪廓」則跳過。
  6. 抗鋸齒 – 在曲線/對角線上使用 suggest_antialiasing(1-bit/NES 跳過)。
  7. FX – 在 fx/shadow-cast 中繪製光暈、火花、地面陰影。

對於複雜的有機形狀,使用網格方法:將 Sprite 編寫為 ASCII 網格(一個字元 = 調色板索引),使用 scripts/grid_to_pixels.py 轉換為一批 draw_pixels(參閱 references/grid-method.md)。大面積使用形狀工具,細節使用網格。

5. 渲染與審查循環(強制)

每個重要步驟後:export_sprite PNG → 使用 scale_sprite ×4(最近鄰)或放大 PNG 複製 → 檢視圖片(讀取 PNG)。通過 references/quality-checklist.md 的檢查清單。修正最嚴重的缺陷並重新渲染。每個步驟最多 3 個循環;然後報告剩餘項目。

6. 動畫(當要求時)

遵循 references/animation.md:先建立關鍵影格,然後是中間影格,8–12 fps(set_frame_duration 80–125 ms),每個循環一個標籤(create_tag:idle、walk、run、attack、hurt、death),duplicate_frame 加編輯,link_cel 用於靜態部分,樞軸/腳固定在相同的像素行上。使用 export_sprite(GIF 預覽)和 export_spritesheet(+JSON)導出。

7. 交付

儲存 .aseprite(save_as),導出 1x PNG、4x 預覽 PNG,以及對於動畫,GIF + sheet + JSON。告知:畫布大小、調色板名稱/顏色數量、光線方向、風格和檔案路徑。

陷阱(在 pixel-mcp 0.5.0 中驗證)

  • create_canvas 回傳 JSON {"file_path": ...};該路徑是所有其他工具的 sprite_path。沒有名稱參數;使用 save_as 來命名。
  • 在 output_path 中使用正斜線(C:/Users/你/輸出.png)。反斜線會破壞生成的 Lua(\U 被解讀為跳脫序列)並因「無效字元 'U'」而失敗。
  • scale_sprite 會就地修改 Sprite:先 save_as 一份副本,縮放副本並導出。
  • 影格編號從 1 開始(export_sprite 搭配 frame 0 = 全部)。
  • draw_pixels 接收 [{x,y,color}],每次最多約 10000 個;這是 grid_to_pixels.py 產生的內容。
  • 透過 stdio 與伺服器通訊時:每行一個 JSON-RPC,使用 \n 寫入位元組(CRLF 會因「無效結尾資料」而失敗)。
  • 完整範例(骨架 → 陰影部件 → 圖層 → 導出)位於 https://github.com/LimaEdu-7x/omni-sprite/tree/main/examples/knight。

額外參考資料(按需載入)

  • references/build-aseprite.md – 從原始碼編譯 Aseprite 並解決失敗。
  • references/orientation-and-pose.md – 視角/視線方向、遠近圖層、骨架、方向組合。
  • references/styles.md – 12 種風格及確切規則。
  • references/palette-workflow.md – 色階、色相偏移、Lospec 調色板、顏色預算。
  • references/animation.md – 循環、影格、時間、緩動。
  • references/quality-checklist.md – 通過/失敗審查清單。
  • references/resources.md – 12 個以上網站和 20 個以上社群技能/伺服器供學習與整合。
  • references/mcp-tools.md – 工具目錄。
  • 可選的輔助技能:color / /color(調色板選擇與鏡像),以及如果 Sprite 用於 Web UI 的前端設計技能。

誠實的限制

透過工具呼叫逐像素繪製很慢,且模型在沒有導出的情況下無法「看見」畫布。優先使用形狀 + 網格方法 + 審查循環;當使用者提供參考圖片時,使用 analyze_reference / downsample_image。

相關技能