模型简介

模型

模型系统是 Minecraft 为方块和物品赋予形状的方式。系统将方块和物品映射到定义其外观的模型,其主要目标之一是让资源包不仅能修改纹理,还能修改整个形状。事实上,添加物品或方块的 Mod 都包含供这些内容使用的小型资源包。

模型关系与 UV 示意:方块状态或物品关联模型,模型引用纹理;纹理左上为 UV 0,0,右下为 16,16,纹理像素大小变化时 UV 范围保持不变。

原创说明图,依据 Forge 1.21.x 官方文档 绘制。

模型文件

模型和纹理通过 ResourceLocation 关联,但在 ModelManager 中以 ModelResourceLocation 存储。根据引用的是方块状态还是物品模型,通过方块或物品的注册表名称在不同位置引用模型。方块的 ModelResourceLocation 表示其注册表名称及当前 BlockState 的字符串形式;物品则使用注册表名称后接 inventory。

注意:JSON 模型只支持长方体元素,无法表达三角楔形等形状。更复杂的模型必须使用其他格式。

纹理

纹理与模型一样位于资源包中,通过 ResourceLocation 引用。Minecraft 中的 UV 坐标 (0,0) 表示左上角;UV 始终从 0 到 16,纹理较大或较小时坐标会缩放适配。

纹理应为正方形,边长应为 2 的幂,否则会破坏 mipmap。例如 1×1、2×2、8×8、16×16 和 128×128 是合适的;5×5 和 30×30 不是 2 的幂,不推荐;5×10 和 4×8 不是正方形,会完全出错。只有动画纹理才应使用非正方形。

原文:Models。