导入从DCC工具导出的模型

优质
小牛编辑
135浏览
2023-12-01

目前大多数数字内容制作(Digital Content Creation, DCC)工具(3ds Max, Maya, Blender)都能导出 FBXglTF 两种格式的模型文件,所以这些工具导出的内容都能在 Cocos Creator 3D 得到良好的展示。

导出FBX

因为 DCC 工具的坐标系和游戏引擎的坐标系不一定一致,所以在导出模型时需要进行一些变换才能在引擎中得到想要的结果。例如:Blender 的坐标系为 X 轴向右,Y 轴向外,Z 轴向上的右手坐标系,而 Cocos Creator 3D 为 X 轴向右,Y 轴向上,Z 轴向外的右手坐标系,所以需要做旋转才能使得轴向一致。

以下以 Blender 2.8 作为例子,介绍模型的导入流程,首先我们在 Blender 中创建一个模型。

blender model

Blender的FBX导出选项中,我们选择 Up 为 Y Up,Forward 为 -Z Forward。

blender export

导入到 Cocos Creator 3D 中,可以看到节点在X轴做了 -90 的旋转,以便将轴和 Cocos Creator 3D。 的轴对齐。

blender export c3d

如果不想要这个旋转值,Blender 的 FBX 导出插件提供了一个实验性功能(Apply Transform),可以将旋转数据直接变换到模型的顶点数据中。

blender export bake

可以看到在 Cocos Creator 3D 中旋转数据没有了。

blender export bake c3d

导出glTF

glTF使用的也是右手坐标系,Blender的导出glTF的选项比较简单,只要把 +Y Up 选项勾上就可以了,导出的数据中也没有旋转值。

blender export glTF

朝向问题

游戏开发过程中可能会需要用到模型的朝向,例如想要一些物体面向玩家(使用了LookAt方法),这时就需要考虑模型的初始朝向,这里提供两种方法来调整模型的初始朝向。

  1. Cocos Creator 3D 中是以 -Z 轴做为正前方的朝向,而在 Blender 中正前方朝向为 +Y 轴,所以在制作模型时需要以 Y 轴正方向做为物体的朝向,经过导出的变换后,在 Cocos Creator 3D 就会是以 -Z 轴做为正前方的朝向。
  2. 如果不想在 DCC 工具中改变朝向,可以在场景中尝试为导入的模型增加一个父节点,然后旋转模型以使得模型的初始朝向为 -Z 轴,之后的各种旋转相关的操作都以父节点为操作对象。

美术制作规范说明

  1. 合理制定模型资源下的子资源命名(例如:网格,材质)。每修改一次子资源命名就会导致项目内关联该子资源的地方出现丢失。

  2. 当模型有一部分需要透明,一部分不需要透明的需求时,应该分两个材质导出。如果是一个材质导出容易出现模型穿透现象,需要手动调整材质。

  3. 外部资源引用,导出的时候使用相对路径。否则,在多人合作下,会识别不到原资源路径,导致模型内置材质无法正确获取到贴图而呈现黄色。3ds Max 导出本地路径修改方式如下:

relative path