【翻译】McJty教程之1.9渲染方块对象
三三的小狐狸
2018年02月13日 17:05
收录于文集
共20篇

想要看代码高亮的可以去原文地址或者我的微信公众号(pearapple_2015)查看。

原文链接:https://wiki.mcjty.eu/modding/index.php?title=Render_Block_OBJ-1.9

在这一章,我将展示制作一个渲染固定模型的方块。这个模型是由Blender或者其他支持波阵面OBJ文件的3D软件导出的。结果长这样:

你需要做的第一件事是把这个添加到ClientProxy类的preInit()方法中。这保证了obj加载器知道你的域名:

接下来是这个方块:

接下来和平时一样你还需要一个方块状态的json(blockstates/modelblock.json)。在这里我们并没有用另一个json文件来作为我们的模型,而是直接引用了从Blender中导出的对象。因为Blender和Forge似乎没有在垂直材质坐标(‘v’轴)上达成一致,所以你需要添加“flip-v”属性:

你从Blender中导出的对象文件应该放在models/block/model.obj。需要注意的是你还需要从Blender中导出的model.mtl文件,但是你必须修改它,让所有相关的材质使用标准的<modid>:<name>的格式:

另一个添加材质的方法是通过方块状态文件,也就是通过添加材质映射。这种方式的好处之一是你可以重新导出你的.mtl文件而不用每一次都添加map_Kd那一行。你的.mtl文件至少会有一行“newmtl[name]”。为了映射这个材质,把“#[name]”添加到texture的映射中。和之前的例子中添加一行map_Kd不同的是,你只需要把方块状态修改成下面这样: