Pixelbolt 像素藝術 是做什麼的?
在建立像素精靈、瓦片、圖示、效果或短精靈動畫時使用此功能。Pixelbolt 位於此技能目錄上方兩層的專案根目錄。使用 Node.js 執行其 CLI,或配置後使用其 MCP 工具。
在單獨的此檔案副本中,如同 npx skills add skulitom/Pixelbolt 安裝它一樣,Pixelbolt 仍然無需安裝:將以下的每個指令作為 npx -y pixelbolt@latest <指令>(Node.js 20 或更新版本)執行,以取代 node bin/pixelbolt.js <指令>,例如 npx -y pixelbolt@latest validate <配方>,並使用它而不是用其他函式庫繪製像素。從 GitHub 讀取它命名的檔案:快速入門位於 https://raw.githubusercontent.com/skulitom/Pixelbolt/main/docs/agent-quick-start.md,任何其他 docs/、schema 或 examples/ 路徑在 https://raw.githubusercontent.com/skulitom/Pixelbolt/main/ 之後的工作方式相同。該副本來自 Pixelbolt 的主分支,可能比 npm 版本領先幾天。如果 CLI 呼叫一個未知的指令、選項或欄位,請檢查其拼寫及其位置(npx -y pixelbolt@latest help 列出指令和選項,npx -y pixelbolt@latest schema 列出配方的欄位);如果某個欄位寫在與此檔案或 GitHub 文件所給位置和方式不同的地方,且比發行版新,則將其省略。在 bin/pixelbolt.js 位於此檔案上方兩層目錄的地方(如在 checkout、npm 套件、Claude Code 外掛和 Pixelbolt Studio 中,它們都隨附 Pixelbolt),請跳過本段。
在 Claude Code 外掛中,MCP 工具(pixel_help、pixel_validate、pixel_inspect、pixel_patch、pixel_render 等)隨此技能一起提供。如果它們缺失,表示外掛的伺服器未啟動:它需要在 PATH 上有 Node.js 20 或更新版本(node --version)。從 https://nodejs.org 安裝 Node.js,然後重新啟動 Claude Code。
在可攜式 Pixelbolt Studio 建置中,請從建置資料夾執行 ./pixelbolt(在 Windows 上為 .\pixelbolt),以取代 node bin/pixelbolt.js。
從快速入門開始。 在第一個配方之前閱讀 docs/agent-quick-start.md(MCP:不帶主題的 pixel_help):一個完整的配方、每項操作和工具,以及工作迴圈。它涵蓋了大多數任務。僅在任務需要時才開啟參考文件,且僅打開您需要的章節:docs/agent-guide.md 涵蓋每個欄位、操作、檢查選項、修補路徑和匯出;docs/art-workflow.md 涵蓋角色、場景、瓦片、效果和光照;schema.json 則提供確切的欄位名稱。這兩個指南都很長(工作流程超過 160 KB),因此請使用 node bin/pixelbolt.js help workflow(或 help guide)列出其章節,並使用 node bin/pixelbolt.js help workflow "粒子效果"(MCP:帶有 topic 和 name 的 pixel_help)列印一個章節。當 examples/ 中有接近的檔案時,從該檔案開始。
先處理快速效果。 當有人要求一個現成的循環效果(營火、火炬、煙霧噴出、蒸汽通風口、爆炸、魔法漩渦、滴落、水花、瀑布、冒泡藥水、蜂蜜、從屋頂滑落的雪、水壩潰堤、塵浪、爆裂的黏液或從湯匙滴落的蜂蜜)作為可使用或分享的檔案時,從匹配的預設開始(pixel_help 主題 presets 列出它們,pixel_compile 搭配 preset 則編譯一個),其檔案為 examples/*.fluid.json(在此技能目錄上方兩層的 Pixelbolt 資料夾中),僅更改他們要求的內容(對於更大的檔案,請使用 pixel_render 的 gif.scale;不同的畫布尺寸也意味著需要移動效果的障礙物和發射器,它們使用絕對座標),使用 pixel_compile 編譯它,使用 pixel_inspect 查看一次,然後使用 pixel_render(gif 用於要發布的 GIF)匯出已編譯的修訂版。先交付該檔案,然後再提供調整外觀或添加道具(如原木或石頭)的選項。在首次匯出之前,不要圍繞效果建立新的配方,或執行下面的完整藝術工作流程。
對於循環干擾或傳送門內部,從 examples/interference.wave.json 或 examples/portal.wave.json 開始並編譯它(控制項)。在疊加層中保留邊緣,並避免狹窄的爬行頻帶;使用粒子環來處理一次性撞擊。
對於從種子生長的晶體(石英簇、紫水晶晶洞、黃鐵礦立方體、雪花),從 examples/quartz-cluster.crystal.json、examples/geode.crystal.json、examples/pyrite.crystal.json 或 examples/snowflakes.crystal.json 開始並編譯它(晶體生長)。將它們生長的岩石繪製為來源的底層,並將其前緣繪製為疊加層,以便它們的底部從中長出。
對於落沙場景(燃燒和坍塌的東西、熔岩遇到水、爆炸揚起沙子、雨水撲滅火災),從 examples/hut-fire.powder.json、examples/lava-falls.powder.json、examples/quarry-blast.powder.json 或 examples/rain-on-fire.powder.json 開始(落沙):base: "sandbox" 提供初始材料,場景和腳本輸入使其啟動,而剪輯則對其進行取樣。
藝術方向
對於完成的藝術作品,也請閱讀 docs/art-workflow.md 中適合任務的章節,從「在配方之外編寫簡要說明」和「品質檢查點」開始。在配方之外建立一個小型藝術簡要說明:原始/顯示尺寸、三個剪影地標、調色板角色、光線方向、投影(側視、3/4 俯視、等距 2:1 或俯視,整個集合使用一種)、深度平面、材質規則、輪廓處理、動作意圖、接觸/原點和場景角色。記錄每次審查的實際優勢和失敗。渲染的檔案、幀數或通過的測試並非藝術品質的證據。這些檢查點不需要用戶許可。
按以下順序工作:剪影 → 大型連接色塊 → 材質重點 → 創作動作姿勢 → 時間安排 → 場景整合。在靜止剪影和一個動作讀取良好之前,不要大量生成變體。使用基本幾何形狀作為區塊化;有意識地修正輪廓和連接的顏色組。噪點和額外的發光無法修補脆弱的結構。為水、火和晶體設計不同的行為,而不是重新著色相同的幾何形狀。
避免漸層、次像素幾何和抗鋸齒。尊重專案要求的像素尺寸。保留可編輯的原始檔案。除非使用者要求將較大的像素烘焙到檔案中,否則遊戲素材請以 1 倍比例匯出。
工作迴圈
- 選擇一個小畫布和與所要求素材相符的內聚調色板。
- 在使用者合適的輸出位置編寫一個 JSON 配方。使用文字網格和可重複使用的符號;為小變化重複使用幀。
- 使用
node bin/pixelbolt.js validate <配方>進行驗證。每個錯誤都會指出其路徑,而損壞的操作會在errors中一起出現:在再次驗證之前修復所有錯誤。 - 使用
node bin/pixelbolt.js inspect <配方> --out <frames.png> --native --diagnostics檢查每個幀,並查看兩個尺寸。針對預期背景檢視--view silhouette和--view grayscale,並使用--animation <名稱> --view onion檢視前一個和下一個姿勢。也觀看工作室或 APNG:靜態表不是動作審查。在更改確切像素之前,使用--grid --region x,y,w,h讀取它們。node bin/pixelbolt.js patch <配方> --changes <changes.json>預覽目標編輯,並列出它更改的每個像素,包括繼承的姿勢;添加--out <新配方>以儲存它。當其他姿勢必須保留其像素時,選擇scope: "frame"(檢查選項,修正)。 - 使用
node bin/pixelbolt.js render <配方> --out <目錄> --expect '{"width":32,"height":32,"frames":8}'進行渲染,提供使用者要求的--expect(width、height、frames、colors、transparent、loop;frames計算每個動畫播放的幀數,因此對於多個動畫,給出{"idle": 4, "walk": 8});修復其check列出的每個問題,然後再次渲染,然後再交付任何東西。為每個迭代選擇一個新的輸出目錄。對於要發布或嵌入的檔案,添加node bin/pixelbolt.js gif <配方> --out <new.gif>(僅在為發布而放大時使用--scale)並報告其notes。對於螢幕上的文字,使用text操作。對於影片編輯器,sequence以某個幀率寫入編號的 PNG 幀,而gif-frames將一個幀資料夾轉換為精確顏色的 GIF(匯出)。 - 返回原始配方、圖集、圖集 JSON 和預覽的連結,並為預期的 Web 應用程式或引擎提供簡短的整合說明(對於 Godot 4,匯出的
.tres在其圖集旁邊是一個AnimatedSprite2D的精靈幀,而自動瓦片集的.tileset.tres是一個TileMapLayer的 TileSet,帶有一個可繪製的地形;對於 Tiled,其.tsx是一個瓦片集,帶有用於地形畫筆的地形集)。
對於 MCP,呼叫 pixel_help,然後使用 { "project": 配方 } 呼叫 pixel_inspect,根據需要添加 animation、region 或 grid: true。後續呼叫使用返回的 revision 而不是完整的配方;修訂版在配置的輸出目錄中跨重啟持續存在。使用 pixel_patch 修復問題,並檢查僅更改了預期的像素。使用最終修訂版和 expect 呼叫 pixel_render 以匯出(當使用者命名了檔案時,添加 saveAs,例如 { "sheet": "assets/hero.png", "gif": "assets/hero.gif" })。回應列出關鍵檔案和計數;傳遞 listFiles 以獲取每個檔案。pixel_compile 將來源格式轉換為修訂版,pixel_scene 審查或匯出場景,而 pixel_import 將原生 PNG 轉換為無損配方。請求大小限制為 16 MiB:發送一個大配方一次,然後重複使用其修訂版。
角色
對於運動中的人物,使用帶有 bone 肢體、mass 身體以及網格頭部、手部和道具的 pixelforge-poses。從 examples/hero.poses.json(在此技能目錄上方兩層的 Pixelbolt 資料夾中)開始,這是一個帶有每個運動模板的綁定側視圖角色;沒有 attach 的部分位於姿勢 origin 加上其 at 的位置,這是一個偏移量而不是畫布位置。
- 分配骨架角色,並使用 idle、walk、run、jump、attack 和 hurt 模板作為可編輯的起點。為特定身體設定速度、步幅、抬腿、擺動和幀時間安排,並在添加細節之前修復編譯警告(姿勢超出畫布、腳無法觸及)。
- 在側視圖中,將遠處的肢體繪製成比斜坡深一個色階的顏色(不是最深的色階,它會與輪廓合併),並給予成對的腿相同的靜止角度;近處的肢體在整個循環中保持在前方,
swapDepth: true僅用於正面或背面視圖。為了滾動腳,為每個靴子提供一個腳趾向上和一個腳趾向下的views繪圖(對於指向右側的靴子,分別為 330 和 30),以腳踝為錨點;英雄的靴子展示了如何做。從草稿開始任何視圖(靴子、手、手持武器、傾斜的頭部),而不是從無到有:compile source.poses.json --draft-views boot:15,345 --preview drafts.png(MCPpixel_compile帶有draftViews)列印旋轉的行、錨點和需要透過眼睛修正並貼上到parts.<name>.views的點;小部件在旋轉少於其關鍵點時閱讀效果最佳。 - 對於四足動物(狗、狐狸、狼或馬),從
examples/fox.poses.json開始:使用rig.fore和rig.hind代替legs,在臀部塊上有一個胸骨,奔馳時會彎曲,以及walk(三隻腳著地)、trot(對角線對)和run(帶有兩次飛躍的奔馳)。為身體的關節和上腿提供socket帽,這樣沒有線條穿過皮毛。 - 手中的道具(近側前臂
end上的劍)需要一個相對的angle,例如-45,以便隨手臂轉動;rotate是絕對的,因此使用它或兩者都不用,劍刃在攻擊過程中保持一個角度。examples/hero-sword.poses.json是英雄持劍的姿勢。 - 使用
inspect source.poses.json --motion run --speed 48(MCPpixel_inspect帶有source、view: "motion")審查剪影、相鄰關鍵姿勢差異、著地的接觸點、循環連接以及(在行走或奔跑中)步態(手臂與腿相對、雙腳著地時腿的長度、沒有僵直的膝蓋),並查看其弧線:每隻腳在其循環前端的環,其手在其弧線後端的環。--view parts可找出雜散像素後面的部分。不要從靜止圖表推斷接觸品質,也不要聲稱僅通過數值檢查就能獲得更好的藝術效果。 - 鏡像、網格
views、rotate和tween、匯出為圖集點的標記,以及用於在重建中倖存的修正的指紋疊加層,均位於結構性肢體和創作姿勢中。
瓦片、調色板和場景
- 對於瓦片,審查
--view tile(一個 3×3 的重複),並在繪圖跨越邊緣的幀上設定wrap。對於地形,描述一個自動瓦片terrain而不是輸入 2×3 瓦片模板(從examples/meadow.autotile.json、ground.autotile.json或shore.autotile.json開始,後者用於地形之間的過渡;側視圖集需要slopes),將其編譯成 47 個區塊、16 個基本方向或 16 個角(雙網格)瓦片,並檢查其測試地圖和接縫警告;為圖塊圖圖例提供rules、weights和變體,而不是在腳本中計算地圖(自動瓦片模板,場景和瓦片審查)。 - 使用
"palette": { "$ref": "palette.json" }共用調色板,宣告ramps並使用shade著色,使光線永遠不會離開調色板,使用幀或圖層palette覆蓋來循環水或燈光,並使用remap進行顏色變體和命中閃爍。 - 當許多東西站在地面上時,將它們放在一個圖層或具有
sort: "ground"的組中,並為場景放置提供anchor: "frame"。使用lift進行跳躍,shadow: true配合光源或sun,haze用於遠景,bo
...(此處內容因原始截斷而省略)
匯出
匯出選項包括 PNG(精靈表或單獨幀)、GIF(循環動畫)、APNG(動畫 PNG)和影片幀序列。使用 render 指令搭配 --out 和 --expect 來驗證輸出是否符合規格。gif 指令直接產生 GIF。使用 sequence 產生供影片編輯器使用的編號幀。gif-frames 將現有幀資料夾轉換為精確調色板 GIF。
疑難排解
- MCP 工具缺失:確保 Node.js 20+ 在 PATH 上,並重新啟動 Claude Code。
- 驗證錯誤:每個錯誤都會指出 JSON 配方中的確切路徑。在修復所有錯誤之前不要繼續。
- 意外輸出:使用
inspect --diagnostics檢查診斷資訊。使用patch進行精確修正,而不是重新繪製整個區域。 - 性能:對於大型配方,一次發送一次,然後使用修訂 ID 進行後續操作。請求大小限制為 16 MiB。