导入从 DCC 工具导出的模型

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

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

    在 中,我们选择 Up 为 Y Up,Forward 为 -Z Forward。

    blender export

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

    blender export bake

    返回编辑器,在 属性检查器 中可以看到旋转数据没有了:

    blender export glTF

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

    1. Cocos Creator 3.x 是以 -Z 轴做为正前方的朝向,而在 Blender 中正前方朝向为 +Y 轴,所以在制作模型时需要以 Y 轴正方向做为物体的朝向,经过导出的变换后,在 Creator 中就会是以 -Z 轴做为正前方的朝向。
    1. 合理制定模型资源下的子资源命名(例如:网格、材质),每修改一次子资源命名就会导致项目内关联该子资源的地方出现丢失。

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