# 骨骼模型的使用

骨骼模型、骨骼动画的制作请参考骨骼模型制作指南(3DMAX)等相关文档。

通过专业的模型制作软件完成模型后,导出为FBX格式,然后再转换为《我的世界》中的模型格式(JSON格式),相应的方法请查阅

在将骨骼模型转换为JSON格式后,我们就可以准备在游戏内使用骨骼模型了。以离线文档中 示例/6-4 资源制作/工具和示例/fbxRes/xuenv 资源为例,先在编辑器中导入这个模型,然后按下面的步骤进行。实际上下面的1~3步目前编辑器已经自动完成了,需要手动操作文件时可以参考。

# 1. 填入模型路径信息

mod_resource/models/netease_models.json里面填入模型的路径信息(目前编辑器已经自动做好这一步了),如下图所示:

reg4-1

上面这部分是第三人称视角的骨骼模型动画,当我们想在游戏中切换到第一人称也有骨骼模型动画时,需要另外做一套骨骼模型和动画,只要在json中关联,我们就会在切换视角时自动切换模型,例如:

reg4-2

在上图中,我们可以看到steve有骨骼模型动画,这些属于第三人称视角的骨骼模型动画,steve中的”arm_model”属性可关联第一人称视角的骨骼模型。配置第一人称视角骨骼模型之后,当玩家切换到第一人称视角时,如果手上无物品或者手上物品不显示,则会显示第一人称骨骼模型(即这里的“steve_fp”)。

如果替换的第三人称骨骼模型没配置”arm_model”字段(例如上述的”xuenv”模型),则在第一人称视角下手上无物品或者手上物品不显示时,不会显示任何模型。

骨骼模型动画的命名最好使用英文单词/拼音/数字/下划线组成。

# 2. 将资源放入对应目录

将skeleton、mesh、animation资源放入mod_resource/models下对应的文件夹:

reg4-3

# 3. 指定贴图

mesh文件中会有指定material,如下图所示:

名称对应到mod_resource/textures/models/xuenv.png,所以需要在此位置放置贴图资源。

reg4-4

# 4. 代码调用

采用component的结构来创建模型与控制动画播放

创建模型替换原有模型

modelComp = self.CreateComponent(playerId, 'Minecraft', 'model')
# 'xuenv'即为netease_models.json里配置的骨骼模型名称
modelComp.SetModel('xuenv')

播放动画

modelComp = self.GetComponent(playerId, 'Minecraft', 'model')
# 播放动画'prepare',第二个参数设置为True表示循环播放该动画,接口详细信息可以查看modAPI接口文档
modelComp.PlayAnim('prepare', True)