BlockReel 皮肤
在 BlockReel 文件夹($BLOCKREEL_HOME,详见 blockreel 技能引导)中工作。将每个皮肤放入 work/skins/<name>/(被 gitignore 忽略)或 films/<name>/skins/。绝不复制他人的皮肤,只借鉴创意,不复制像素。
0. 用户发送了皮肤
完全按照发送的内容使用:将其复制到电影文件夹中,运行 python core/skin.py validate 进行验证(将旧的 64x32 格式转换为新文件),并在 story.json 中引用它。除非用户要求,否则绝不对用户的皮肤进行重新绘制。仅在没有皮肤时才设计新皮肤。
1. 需求确认(最多一个简短问题)
确定:角色(身份、职责、情绪),风格和模型。
| 风格 | 目标 |
|---|---|
| 清晰像素艺术 | 每种材质 3-4 个色阶,无噪点,1 像素高光/阴影,轮廓清晰可辨 |
| 卡通 | 颜色饱和,面部/覆盖层边缘使用 1 像素深色描边,大而简单的眼睛,强烈的色块划分 |
| 写实 | 色调柔和的调色板,细微噪点(noise=0.03-0.05),褶皱和接缝,材质多样性(布料、皮革、金属) |
| 动漫 | 大眼睛(使用 2 像素虹膜 + 1 像素高光),柔和/鲜艳的头发分为 3 个色调并带有一缕高光,简单的衣服 |
classic = 4 像素手臂(类似史蒂夫),slim = 3 像素手臂。如果用户未指定,则选择经典并告知;同时提供纤细变体的选项。
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(经典/纤细)以及0 个透明基础像素(基础层在 Java 版中必须完全不透明)。如果需要将每个面导出为单独图像,运行 python core/skin.py unwrap out.png parts/。
6. 预览和迭代(必需,至少 2 轮)
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 重新绘制,没有自动的经典<->纤细转换)。文件命名为 <character>.png 和 <character>-slim.png。使用 validate 检查两个文件。
8. 安装到游戏中(告知用户,你尚未测试过)
- Java 版: 在 minecraft.net 个人资料页面或启动器的“皮肤”选项卡中上传 PNG(64x64 或旧的 64x32),并选择 3 像素或 4 像素手臂。只有拥有游戏的账户才能更改皮肤;离线模式的玩家在没有 Mod 的情况下无法使用自定义皮肤。参考源:Minecraft Wiki: 皮肤。编写此文档时无法加载 Mojang 自己的帮助页面,请查看 help.minecraft.net 了解当前菜单名称。
- 基岩版: 过程不同(且格式支持更大的模板,例如 128x128,详见 Wiki)。不要为基岩版提供 Java 版的步骤;请引导用户查看 Mojang 当前的基岩版帮助页面。
- 在 BlockReel 电影内部无需安装任何东西:在
story.json中引用该 PNG 即可。
规则
- 绝不绝不声称皮肤已在游戏中测试。应说“已在 BlockReel 引擎中验证和预览”。
- 绝不交付或提交游戏皮肤或他人皮肤。仓库中的演示皮肤是原创的(CC0)。
- 如果用户提供的是 3D 皮肤渲染截图,它不能作为纹理使用(
docs/SKINS.md),请改为制作一个外观相似的皮肤。