Forge端读取obj模型
obj模型是在制作上相比于Minecraft原版模型更为自由的模型,例如沉浸工程的电弧炉和斗轮式挖掘机等- 建立
obj模型首先建立一个
Obj模型,可以使用很多软件,例如市面上典型的3DS MaxBlenderBlockBench等软件 这里提供一个例子# Made in Blockbench 4.8.3 mtllib qqqqoo.mtl o pyramid v 1 -2.220446049250313e-16 1 v 1 0.9999999999999998 1.0000000000000002 v 0 0.9999999999999998 1.0000000000000002 v 0 -2.220446049250313e-16 1 v 0.5 0.4999999999999999 0.5000000000000001 vt 0.25 0.75 vt 0.25 1 vt 0 1 vt 0 0.75 vt 0 0.479471875 vt 0.25 0.479471875 vt 0.125 0.65625 vt 0.1875 0.620096875 vt 0.4375 0.620096875 vt 0.3125 0.796875 vt 0.265625 0.823221875 vt 0.515625 0.823221875 vt 0.390625 1 vt 0.375 0.479471875 vt 0.625 0.479471875 vt 0.5 0.65625 vn 0 -2.220446049250313e-16 1 vn 0.7071067811865476 1.5700924586837752e-16 -0.7071067811865476 vn 0 0.7071067811865477 -0.7071067811865475 vn 0 -0.7071067811865475 -0.7071067811865477 vn -0.7071067811865476 1.5700924586837752e-16 -0.7071067811865476 usemtl m_c5b90dae-3a75-90c1-2280-8a6b9dc0fba2 f 1/1/1 2/2/1 3/3/1 4/4/1 f 2/5/2 1/6/2 5/7/2 f 3/8/3 2/9/3 5/10/3 f 1/11/4 4/12/4 5/13/4 f 4/14/5 3/15/5 5/16/5同时导出时会自动生成一个
mtl文件和一个png文件# Made in Blockbench 4.8.3 newmtl m_c5b90dae-3a75-90c1-2280-8a6b9dc0fba2 map_Kd kubejs:block/qqqqoo newmtl none注意
obj里面的usemtl m_c5b90dae-3a75-90c1-2280-8a6b9dc0fba2要与mtl文件里面的newmtl m_c5b90dae-3a75-90c1-2280-8a6b9dc0fba2对应上obj的mtllib qqqqoo.mtl是确定mtl文件的,这里默认同级就行mtl里面的map_Kd则是要指定贴图的路径 贴图和原版模型一样,放在assets/${modid}/textures/block下(因为这次的教程属于方 块,所以放在block下,制作物品时记得item下)
- 指向
Obj文件因为
Minecraft原版并不能直接读取obj模型文件,因此需要一个json模型来指向obj文件{ "loader": "forge:obj", "model": "kubejs:models/block/qqqqoo.obj", "flip_v": true, "textures": { "particle": "kubejs:block/qqqqoo" } }loader表示要加载的类型,这里指定obj模型model表示要加载的Obj模型路径flip_v表示是否翻转贴图,因为obj模型贴图相对于MC来说是倒着的,所以要truetextures表示要加载的贴图,这里指定particle贴图来确定粒子
- 确定
blockstate在加载
obj模型时,需要确定blockstate,因为blockstate在加载Obj时不会自动生成的,因此会导致无法让方块确定模型{ "variants": { "facing=down": { "model": "kubejs:block/qqqqoo", "x": 90 }, "facing=east": { "model": "kubejs:block/qqqqoo", "y": 90 }, "facing=north": { "model": "kubejs:block/qqqqoo" }, "facing=south": { "model": "kubejs:block/qqqqoo", "y": 180 }, "facing=up": { "model": "kubejs:block/qqqqoo", "x": 270 }, "facing=west": { "model": "kubejs:block/qqqqoo", "y": 270 } } }
参考自[我的世界 1.20.4 NeoForge 最新模组教程]18 加载OBJ模型 [Boson 1.16 Modding Tutorial] - Obj
最后更新于