BlockReel纹理集 是做什么的?
在BlockReel文件夹中工作。将每个纹理集放入 work/textures/<名称>/(已加入gitignore)或 films/<名称>/textures/。此文件夹镜像 assets/minecraft/textures/(block/…、item/…)。切勿复制游戏纹理;仅使用原创纹理(仓库的演示集采用CC0协议)。
1. 需求确认(最多一个简短问题)
确认以下内容:主题(例如:柔和卡通、粗犷中世纪、雪地)、分辨率(默认16x、32x或64x)、需要哪些方块和物品(默认一组约25个:石头、圆石、泥土、草方块顶部/侧面、木板、原木、树叶、沙、玻璃、水、熔岩、砖块、黑曜石、荧石、雪、羊毛、矿石/金属块、TNT,外加1-2个物品)、以及目标Java版本(需要用于资源包格式;如果未知则询问用户)。
2. 调研(网络),写入 research.md 并附上链接
- 目标版本的官方纹理文件名:文件名即为约定;错误的文件名会被静默忽略。请查阅 Minecraft Wiki: 资源包 和对应版本的文件列表(用户可以打开自己的客户端
.jar中的assets/minecraft/textures/来列出文件名;切勿复制文件)。 - 动画纹理:垂直条状PNG图加一个侧边文件
<名称>.png.mcmeta,例如water_still.png.mcmeta:{ "animation": { "frametime": 3, "interpolate": true } };可选width、height(帧大小)和frames。每一帧必须大小相同,图像必须是整数帧(来源:Wiki的资源包页面)。 - 平铺惯例:方块纹理为正方形;它们会重复,因此边缘必须无缝拼接。地形方块的顶部重复最多。
- 用户版本的资源包格式:Minecraft Wiki: 资源包格式,resource pack 列。在回答中引用版本、数字和链接。自25w31a(Java 1.21.9)起,Wiki表示资源包使用
min_format/max_format而非pack_format。切勿猜测数字。 列出的十进制版本(如97.1)不被core/pack.py支持(如何在pack.mcmeta中编写尚未确认);请告知用户。 - 主题的风格参考(调色板、他人如何处理平铺噪点)。仅限原则。
3. 整个纹理集的调色板和风格规划
在绘制任何内容之前:制定一个全局调色板规划(每种材料的基础颜色,每个颜色为一个四色调色板,并带有轻微色调偏移:skin.ramp)、风格规则(条状平铺色 vs 柔和渐变、是否使用轮廓、每个图块中单像素高光的数量)、以及噪点尺度(噪点块相对于图块的大小)。每个纹理都遵循相同规则——这正是纹理集一致性的关键。
4. 生成或绘制
- 通过代码生成(首选平铺纹理):从
examples/texture-pack-demo/make_textures.py开始(种子化、通过构造实现可平铺:环绕噪点、环绕Voronoi细胞、交错木板、斜面、动画条)。修改PLAN和模式。 - 手动绘制,逐像素进行,用于关键纹理(物品图标、矿石)。
- 侧面纹理(
grass_block_side)、玻璃和金属方块按设计具有边框;它们不平铺。
5. 检查(强制)
python core/tilecheck.py check block/stone.png --out stone_tiles.png # 2x2 和 3x3 平铺预览 + 接缝分数
python core/tilecheck.py palette block/stone.png -k 6 # 主要颜色
python core/tilecheck.py set textures/ --out report/ # 整个纹理集:问题、备注、联系图
python core/pack.py check textures/ # 名称、尺寸、动画条
打开图像(stone_tiles.png、report/set-sheet.png)并查看。必须修复 PROBLEMS(平铺纹理上可见接缝、尺寸不一致、颜色过多);备注(亮度、饱和度、调色板重叠)是提示需要更仔细查看,而非错误。有边框的纹理被报告为备注。至少迭代一次:修复你看到的问题,重新生成,再次查看。
6. 场景预览(强制)
python tools/pack_preview.py textures/ --out pack-preview.png
由BlockReel引擎渲染的小型世界,带有你的纹理:大型地形(重复)、方块画廊、小屋、树木、水、熔岩、玻璃和一个用于比例参考的角色。检查:大面积表面上的重复效果、草和原木的顶部与侧面对比、透明度(玻璃、树叶)、相邻方块之间的对比、以及阳光下的整体氛围。缺失的方块会被列出(将使用内置的原始纹理代替)。
7. 构建资源包
python core/pack.py build textures/ --name "我的资源包" --pack-format <N> --format-version <java版本> \
--format-source https://minecraft.wiki/w/Pack_format --icon pack.png --out build/
# Minecraft 1.21.9及更高版本:使用 --min-format <N> --max-format <M> 代替 --pack-format
如果没有提供格式编号,命令将拒绝运行(故意不设默认值)。pack.mcmeta 位于压缩包根目录,压缩包中包含一个 README.txt,记录格式编号、版本和来源链接。在回答中引用该链接。
8. 安装和测试清单(提供给用户;你不能在游戏中测试)
- 将
.zip复制到游戏的resourcepacks文件夹(选项 → 资源包 → 打开资源包文件夹可查看位置)。 - 在选项 → 资源包中启用它。如果游戏提示资源包不兼容,则说明格式编号与游戏版本不匹配。
- 在创造模式世界中检查:草/泥土/石头/木板/原木/树叶、水和熔岩动画、玻璃透明度、TNT、每种主要方块铺成的20x20平坦地面(检查接缝)、以及一些物品。
- 报告任何显示紫黑棋盘格纹理的情况:表示文件名错误或帧尺寸有误。
规则
- 切勿声称资源包在游戏中可用。应说“已构建、检查并在BlockReel引擎中预览”。
- 切勿提交游戏纹理。不要从用户的
.jar中获取纹理到仓库中。 - 皮肤是另一个话题(
blockreel-skins);资源包无法更改玩家的皮肤。 - 模型、声音、字体和着色器不在本次工作范围内。