Minecraft 中的每个物品、方块和生物都是用小小的像素图片画出来的。好的纹理会让附加包看起来就像是游戏原本的一部分。本指南会讲解纹理文件放在哪里、游戏如何找到它们,以及如何画出与原版放在一起也毫不违和的像素画。
快捷方式:GodCraft
GodCraft 内置了像素编辑器,它会用正确的短名称把每张纹理保存到正确的位置。
- 打开工坊,打开任意物品、方块或生物。
- 点击纹理,打开像素编辑器。
- 从原版纹理开始重新上色,或者从零开始画。
- 保存。导出时,PNG 文件和纹理列表都会自动帮你写好。
从原版纹理开始是个好办法:你可以免费获得 Minecraft 的明暗风格,只需改改颜色和形状。
手动制作
基础:16x16 的 PNG
Minecraft 的纹理是 PNG 图片。物品和方块通常是 16x16 像素。尺寸很小,所以每一个像素都很重要。
- 使用像素画软件,而不是会把边缘弄模糊的普通照片编辑器。关闭抗锯齿,使用 1 像素的铅笔。
- 保存为带透明度的 PNG(RGBA)。JPG 不会保留透明像素,还会加入模糊的噪点。
- 文件名应使用小写加下划线,比如
ruby_sword.png。
纹理放在哪里
纹理存放在你的**资源包(RP)**中:
| 类型 | 文件夹 | 示例 |
|---|---|---|
| 物品 | RP/textures/items/ | ruby.png |
| 方块 | RP/textures/blocks/ | ruby_block.png |
| 生物皮肤 | RP/textures/entity/ | critter.png |
生物皮肤不是 16x16:它的尺寸与模型的 texture_width 和 texture_height 一致,比如 64x32。参见你的第一个自定义生物。
短名称:item_texture.json 和 terrain_texture.json
物品和方块不会直接指向 PNG。它们使用一个短名称,再由两个列表文件把短名称转换成路径。注意,这些路径末尾没有 .png。
物品:
{
"resource_pack_name": "myname",
"texture_name": "atlas.items",
"texture_data": {
"ruby": {
"textures": "textures/items/ruby"
}
}
}然后物品在它的图标组件中使用短名称 ruby。参见你的第一个自定义物品。
方块:
{
"resource_pack_name": "myname",
"texture_name": "atlas.terrain",
"texture_data": {
"ruby_block": {
"textures": "textures/blocks/ruby_block"
}
}
}然后方块在 minecraft:material_instances 中使用 ruby_block。参见你的第一个自定义方块。
一个文件,多张纹理
每个包永远只有一个 item_texture.json 和一个 terrain_texture.json。每张新纹理都作为 texture_data 中的又一个条目添加进去。
透明度
完全透明的像素(alpha 为 0)可以用来做出非正方形的形状,比如剑、花和玻璃板。
- 物品:物品周围的空白处应该完全透明。半透明像素也可以使用。
- 方块:你看到的效果取决于方块在
material_instances中的render_method:opaque:完全没有透明度。透明像素会显示为实心颜色。最适合石头、矿石和木板。alpha_test:每个像素要么完全显示,要么完全隐藏。适合树叶、花和普通玻璃。blend:允许半透明像素,比如染色玻璃。
- 生物:在客户端实体中使用
entity_alphatest材质,让完全透明的像素消失。
更高的分辨率
你可以使用 32x32、64x64 或更大的纹理。请记住这些规则:
- 物品和方块的图片要保持正方形,并使用 2 的幂(16、32、64、128)。
- 同一套东西使用相同的尺寸,看起来才统一。一把 64x64 的剑放在 16x16 的原版剑旁边可能会显得格格不入。
- 更大的纹理会占用更多内存,在手机上尤其如此。16x16 是经典的 Minecraft 风格,也是最稳妥的选择。
动态方块纹理(翻页动画)
海晶灯、岩浆块和熔岩这样的方块是会动的。它们使用翻页动画(flipbook):一张高高的图片,所有帧从上到下叠在一起。
- 制作一张宽 16 像素、高为 16 乘以帧数的 PNG。四帧就是 16x64。
- 像普通方块纹理一样把它添加到
terrain_texture.json中,比如命名为glowing_ore。 - 创建
flipbook_textures.json,告诉游戏它是动态的:
[
{
"flipbook_texture": "textures/blocks/glowing_ore",
"atlas_tile": "glowing_ore",
"ticks_per_frame": 8
}
]flipbook_texture是那张高 PNG 的路径,不带.png。atlas_tile是terrain_texture.json中的短名称。ticks_per_frame是每一帧停留多久。1 秒有 20 刻,所以 8 表示每帧显示 0.4 秒。- 可选的
frames是一个帧编号列表(从 0 开始),用于按自定义顺序播放。原版海晶石用它让某些帧显示得比其他帧更久。 - 可选的
blend_frames设为false时,帧会直接切换,而不是渐变过渡。
提示
翻页动画用于方块。物品图标不使用 flipbook_textures.json。
画好像素画的技巧
使用小调色板
为一种颜色挑选 3 到 5 个从暗到亮的色阶,并坚持使用它们。颜色太多会让 16x16 的画看起来很杂乱。原版纹理每种材质往往只用寥寥几种颜色。
- 让暗部稍微更饱和一些,或者略微偏向蓝色或紫色;让亮部偏向黄色。这种“色相偏移”比单纯加黑或加白要生动得多。
- 借用原版纹理的调色板,让你的附加包与游戏风格一致。
光从左上方来
Minecraft 的物品和许多方块在着色时,都好像光是从左上方照过来的:
- 用中间色填满形状。
- 沿着顶部和左侧边缘放上最亮的色阶。
- 沿着底部和右侧边缘放上最暗的色阶。
- 加几个最亮的像素作为高光,就像宝石上的反光。
轮廓和可读性
- 物品图标通常有一圈较暗的轮廓,这样在任何物品栏背景上都很显眼。
- 避免孤零零的随机颜色单像素:它们在小尺寸下看起来就是噪点。
- 经常缩小查看。你的纹理在屏幕上显示得很小,所以要在 100% 尺寸下检查它。
方块必须能无缝拼接
方块纹理会一块挨一块地重复。确保左边缘能衔接右边缘、上边缘能衔接下边缘,否则在大面积墙上会看到网格图案。除非你想要砖块那样的瓷砖效果,否则不要在每条边上都画明显的边框。
纹理故障排除
紫黑相间的棋盘格
游戏找不到纹理。检查短名称在所有地方的拼写是否一致,以及纹理列表中的路径是否与真实文件相符(不带 .png)。
- 纹理看起来模糊。 PNG 在缩放时被平滑处理了。按实际尺寸重新绘制,或者用“最近邻”方式缩放。
- 方块上透明的部分显示为黑色或白色。 把方块的
render_method改为alpha_test或blend。 - 改动没有显示出来。 确认你导出了新版本并重新加载了世界。参见故障排除。