BlockReel skins
在 BlockReel 資料夾中工作($BLOCKREEL_HOME,請參閱 blockreel 引導技能)。將每個皮膚放在 work/skins/<名稱>/(已加入 gitignore)或 films/<片名>/skins/ 中。絕對不要複製他人的皮膚;可以參考想法,但不要複製像素。
0. 用戶提供了皮膚
完全按照用戶提供的內容使用:將其複製到電影資料夾中,執行 python core/skin.py validate(將舊版 64x32 轉換為新檔案),並在 story.json 中引用。除非用戶要求,否則不要重新繪製用戶的皮膚。只有當沒有任何皮膚時,才設計新的皮膚。
1. 任務簡報(最多一個簡短問題)
確定:角色(身份、角色、情緒)、風格和模型。
| 風格 | 目標 |
|---|---|
| 乾淨像素藝術 | 每種材質 3-4 色調斜坡,無雜訊,1 像素高光/陰影,輪廓清晰可辨 |
| 卡通 | 飽和色彩,臉部/覆蓋層邊緣有 1 像素深色輪廓,大而簡單的眼睛,強烈的色塊對比 |
| 寫實 | 柔和調色板,細微雜訊(noise=0.03-0.05),皺褶和接縫,材質多樣(布料、皮革、金屬) |
| 動漫 | 大眼睛(使用 2 像素虹膜 + 高光像素),柔和/飽和頭髮分為 3 個色調並帶有高光髮絲,簡單衣物 |
classic = 4 像素手臂(類似 Steve),slim = 3 像素手臂。如果用戶未指定,選擇 classic 並告知用戶;提供 slim 變體供選擇。
2. 研究(網路),寫入 research.md 並附上連結
搜尋並閱讀:皮膚 UV 佈局與圖層規則(Minecraft Wiki: 皮膚;儲存庫自有的地圖為 docs/SKINS.md / references/skin-layout.png)、像素藝術陰影與調色技巧(色調偏移、斜坡、避免枕型陰影),以及角色類型的風格參考。記錄:連結以及你將使用的內容。不得複製第三方皮膚或藝術作品。
3. 調色板計畫
在繪製前撰寫計畫:每種材質一個基本色,並由此產生 3-4 個色調的斜坡(skin.ramp(base, 4, hue_shift=0.04):陰影稍冷,高光稍暖)。典型材質:皮膚、頭髮、兩種布料顏色、皮革、金屬、靴子、強調色。總顏色數保持在約 24 種以下;一個強調色就足夠。
4. 分層繪製(core/skin.py SkinCanvas)
先繪製基底層(頭部、身體、手臂、腿部),然後繪製覆蓋層(帽子 = 兜帽/頭髮體積、夾克 = 斗篷/外套、袖子、褲子)。有用的輔助函式:shaded_box(part, ramp)(頂部/正面打光)、rect、px、line、edge_light、clear,以及用於繪製右側並鏡像複製到左側的 mirror_limbs()。使用面相相對座標:你無需手動計算圖集位置。BlockReel 電影的臉部規則:將眼睛保持在正面臉部的第 4 列(眉毛在第 3 列),嘴巴在第 6 列,因為引擎的臉部狀態(blink、wide、glow、嘴型同步)會重新繪製這些列,並從臉頰(第 5 列)取樣皮膚顏色。從 examples/skin-demo/paint_skin.py 開始,並修改調色板計畫與各部位的繪製區塊。
5. 驗證
python core/skin.py validate out.png:檢查尺寸、model(classic/slim)以及 0 個透明基底像素(在 Java 版中基底層必須完全不透明)。如果需要每個面向的獨立圖片,執行 python core/skin.py unwrap out.png parts/。
6. 預覽與迭代(強制,至少兩輪)
python tools/turntable.py skin.png --out tt.png [--pose idle|wave|stance] [--model slim] [--eyes wide --mouth smile]
開啟 tt.png 並檢視所有四個視角。檢查:輪廓、遊戲比例下臉部是否可辨識、兜帽/頭髮覆蓋層是否浮空、接縫與鏡像肢體、背面與側面是否留白、陰影方向是否一致、畫面是否混濁。記錄問題,修正,再次渲染。保留每一輪的圖片(參見 examples/skin-demo/iterations/)。不要只渲染一次就停止。
7. 匯出
最終 PNG(以及另一種模型,如果被要求:使用 slim=True/False 重新繪製;沒有自動的 classic<->slim 轉換)。檔案命名為 <角色>.png 和 <角色>-slim.png。使用 validate 檢查兩者。
8. 在遊戲中安裝(告知用戶;你尚未測試過)
- Java 版: 在 minecraft.net 個人資料頁面或啟動器的「外觀」分頁上傳 PNG(64x64 或舊版 64x32),並選擇 3 像素或 4 像素手臂。只有擁有遊戲的帳號才能更換外觀;離線模式玩家無法在沒有模組的情況下使用自訂外觀。參考來源:Minecraft Wiki: 皮膚。撰寫本文時 Mojang 的官方說明頁面無法載入,請查閱 help.minecraft.net 以取得目前選單名稱。
- 基岩版: 程序不同(格式支援更大的範本,例如 128x128,詳見 Wiki)。請勿提供 Java 版的步驟給基岩版;引導用戶查閱 Mojang 目前的基岩版說明頁面。
- 在 BlockReel 電影內部無需安裝:在
story.json中引用 PNG 即可。
規則
- 永遠不要宣稱皮膚已在遊戲中測試。改說「已在 BlockReel 引擎中驗證並預覽」。
- 絕不傳送或提交遊戲皮膚或他人的皮膚。儲存庫中的範例皮膚是原創的(CC0)。
- 如果用戶提供的是 3D 皮膚渲染的截圖,它不能直接轉為紋理(
docs/SKINS.md);應製作一個相似的皮膚取而代之。