Unity 3D特效设计必修课
上QQ阅读APP看书,第一时间看更新

1.2.7 Unity 3D与3ds Max之间的单位比例/轴向关系

通过之前的学习了解到很多游戏中的模型和动画都是在3ds Max中制作完成的(因为Unity并不适合制作复杂的动画,也没有内置多边形高级编辑工具),例如,制作特效中的基本模型原件、调节UV、制作骨骼动画等都需要在3ds Max中完成。所以说作为一名合格的特效师,除了使用Unity外,学会使用3ds Max以及了解3ds Max的基本功能也都是必不可少的。那么在本节之中将讲解Unity与3ds Max的单位比例/轴向关系,在之后的教学中会继续讲解有关3ds Max的其他相关知识。

1.2.7.1 Unity 3D与3ds Max之间的单位比例关系

为了证明Unity 3D跟3ds Max之间的单位关系,下面进行一个实例测试。首先在3ds Max中制作一个边长为1m的模型体,然后导入到Unity中,与Unity中默认边长为1m的Cube(预设正方体)做对比。

具体操作如下:

Step 01在3ds Max中单击菜单“自定义”→“单位设置”。将“显示单位比例”与“系统单位比例”设置为“米”,如图1-85所示。

图1-85

Step 02设置完成后,单击3ds Max右侧“标准基本体”菜单,选择“长方体”,然后在窗口之中拖放创建一个长方体,并将长方体的边长设置为1m,如图1-86所示。

图1-86

Step 03接着选择该正方体,单击菜单“导出”→“导出选定对象”选择路径,将导出文件格式设置为“.fbx”(导出选项中的单位设置为米),如图1-87所示。

图1-87

Step 04然后将fbx文件导入到Unity中,与Unity中边长为1m的预设正方体Cube(正方体)做对比,如图1-88所示。

图1-88

发现它们大小基本相同,如图1-89所示,是Unity中两对象具体参数对比。

图1-89

观察发现,它们的区别在于导入的模型体X轴有个>90°的旋转值,这个问题的解决方法稍后会进行讲解。

Step 05接下来在Unity的Assets(资源)中选择导入的fbx模型文件,在检测视图中查看它的属性,如图1-90所示。

图1-90

Step 06发现图1-90中,它的默认Scale Factor(缩放因子)为1。

通过以上测试得出以下结论:

当Unity 3D的版本是Unity 5.3.0时,导入fbx外部模型时其默认Scale Factor(缩放比例)为1。

所以在3ds Max中制作模型时,只需要将3ds Max系统单位和导出单位统一设置为“米”就可以在Unity 3D中等比显示了。

注意

(1)如果导入模型后,模型大小显示不正确,先确认使用的Unity版本,旧版本的Unity默认缩放因子数值(0.01)与新版不相同。

(2)如果想让3ds Max导出的正方体跟Unity预设体Cube(正方体)完全相同,还需要在3ds Max中将正方体的轴心坐标修改为物体中心,因为3ds Max中创建的正方体默认轴心在地面。

(3)旧版Unity导入fbx模型时,Unity的Scale Factor(缩放因子)默认数值是0.01,这时如果需要让3ds Max中的1m跟Unity中的1m相同,就需要手动修改它的Scale Factor(缩放因子)设置为1。

(4)建议在将3ds Max中制作的模型导入到Unity前,事先在3ds Max中单击菜单“编辑”→“变换工具框”→“重置”(对其大小进行重置),可以降低模型导出后缩放出错的概率。

1.2.7.2 Unity 3D与3ds Max的轴向关系

通过之前的测试可以发现,当导入fbx外部模型文件到Unity中时,实例体的X轴方向会有>90°的旋转值,那么这是由于什么原因造成的呢?又要如何解决呢?

因为3ds Max使用的是右手坐标系,而Unity使用的是左手坐标系,所以在3ds Max中导出fbx文件到Unity时,需要改一下3D模型的轴向才可以正确显示。简单地说就是把物体的轴心沿X轴方向旋转90°就可以了,具体修改轴向的操作方法如下。

Step 01首先在3ds Max中选择需要导出的模型体(如果有多个模型需要导出,可以按快捷键H打开“场景物体列表”来进行多选)。

Step 02然后在3ds Max面板中单击“轴”→“调整轴”→“仅影响轴”将模型影响轴X方向旋转90°,如图1-91所示。

图1-91

Step 03再次把它导入到Unity中,就会发现这次它的轴向显示正确了。数值如图1-92所示。

图1-92

通过以上的测试可以得出以下结论:

3ds Max导出fbx文件到Unity工程时,模型体的X轴方向默认会有>90°的偏转值。解决方法是在模型体导入Unity前,在3ds Max中将模型体的影响轴X方向旋转90°,然后再导入Unity就可以正确显示了。

注意

在3ds Max中进行轴向旋转数值修改时,需要修改的是“影响轴”,而不是直接旋转模型体本身。