1. 对其他格式的模型的支持

自然地,Minecraft 没有内建对其他格式的模型支持。出于某些原因,Forge 提供了两种格式的支持——Blitz3D 和 Wavefront OBJ。

关于这两种格式的信息可参考:

1.1. 使用

首先要告知对应的加载器:“我需要用到特殊模型”

// 需要使用 B3D 格式模型的话需要调用这个。
B3DLoader.addDomain(myModID);

// 需要使用 OBJ 格式模型的话需要调用这个。
OBJLoader.addDomain(myModID);

ModelRegistryEvent 发布时调用就好。然后照常指定模型文件资源位置即可。注意最后的 .obj 扩展名被明确声明出来了;对于 b3d 格式的模型同理。这个扩展名是 Forge 识别的依据;不指明的话 Forge 会默认这是一个普通的 Minecraft 方块模型,然后去尝试找一个 .json 文件。
对于 Wavefront OBJ 模型来说,对应的 .mtl 文件也应位于同一目录下。

{
    "forge_marker": 1,
    "variants": {
        "normal": {
            "model": ".../my_model.obj"
        }
    }
}

1.2. flip-v

如果你在使用 OBJ 模型时遇到了模型纹理上下颠倒的情况,尝试让 OBJLoader 把 V 翻转一下:

{
    "forge_marker": 1,
    "variants": {
        "normal": {
            "model": ".../my_model.obj",
            "custom": { "flip-v": true }
        }
    }
}