目前大多数数字内容制作(Digital Content Creation, DCC)工具(3ds Max、Maya、Blender)都能导出 FBX 和 glTF 这两种格式的模型文件,所以这些工具导出的内容都能在 Cocos Creator 中得到良好的展示。
因为 DCC 工具的坐标系和游戏引擎的坐标系可能不一致,所以在导出模型时需要进行一些变换才能在引擎中得到想要的结果。例如:Blender 的坐标系为 X 轴朝右,Y 轴朝里,Z 轴朝上,而 Cocos Creator 3.x 的坐标系为 X 轴朝右,Y 轴朝上,Z 轴朝外,所以需要调整旋转才能使得轴向一致。
以下以 Blender 2.8 作为例子,介绍模型的导入流程,首先我们在 Blender 中创建一个模型。
在 Blender 的 FBX 导出选项 中,我们选择 Up 为 Y Up,Forward 为 -Z Forward。
导入到 Cocos Creator 中,可以看到节点在 X 轴做了 -90 的旋转,以便将轴和 Creator 的对齐。
如果不想要这个旋转值,Blender 的 FBX 导出插件提供了一个实验性功能(Apply Transform),可以将旋转数据直接变换到模型的顶点数据中。
返回编辑器,在 属性检查器 中可以看到旋转数据没有了:
glTF 使用的也是右手坐标系,Blender 的 导出 glTF 的选项 比较简单,只要把 +Y Up 选项勾上就可以了,导出的数据中也没有旋转值。
游戏开发过程中可能会需要用到模型的朝向,例如想要一些物体面向玩家(使用了 LookAt 方法),这时就需要考虑模型的初始朝向,这里提供两种方法来调整模型的初始朝向。
本期就到这里,下期再见。
同学们,兴趣是最好的老师;只争朝夕,不负韶华!加油!
参考资料:
Go语言中文文档
http://www.golang.ltd/