解说Unity3d模型导入技巧
在将3D Max模型导入Unity3D时,常常会遇到一些问题。即便按照官方说明,将Max模型导出为FBX文件再导入Unity,这些问题也未必能得到解决。下面详细介绍常见问题及相应的解决办法。
一、X轴向偏转问题
3D Max模型导入Unity后,会自动产生一个X轴270度的偏转。在Unity中旋转模型时,Y轴参照方向始终朝上,而X轴和Z轴则以模型本身的局部坐标为准。当模型沿X轴旋转270度后,Z轴会与Y轴重合。这会导致在使用程序控制方向时,旋转Y轴和旋转Z轴的效果相同,这显然不符合预期。
解决该问题的方法是,将 .max 文件导出为 .3ds 文件,然后再导入Unity,而非按照官方建议导出为 .fbx 文件。
二、材质问题
1. 材质缺失
模型在3D Max里赋予材质后,无论通过何种方式导入到Unity中,都会出现没有材质的情况。不过,Unity会自动生成这些材质的材质球。我们需要做的是重新设置贴图。如果材质还有其他效果,例如Lightmap,那么需要先选择正确的Shader,再进行贴图设置。
2. 多重材质显示问题
目前暂不清楚如何在Unity中显示多重材质。因此,在制作模型时,需要预先确定哪些部件应该合并,哪些部件需要独立。例如,对于一架直升飞机,机身和螺旋桨应分为两个独立的部件,而不应将螺旋桨与发动机合并为一个部件,否则程序将无法对螺旋桨进行旋转操作。
三、缩放因子问题
若在3D Max中未关注“单位”问题,模型导入Unity后,其在场景中的大小可能会与预期不符。在Unity中,1单位是FBX文件中1单位的100倍。
为了在Unity中实现不同的单位对应关系,在3D Max和Maya中制作模型时,需要对单位进行相应设置:
- 若想在Unity中1单位 = 1米,那么在3D Max和Maya中制作时,单位应设置为1厘米。
- 若想在Unity中1单位 = 100米,单位则设置为1米。
- 若想在Unity中1单位 = 1厘米,单位可设置为0.1毫米;或者在单位为1厘米的情况下,将比例因子改为1。
在3D Max中,单位设置示例如下:设置 1 Unit = 1厘米,这样在Unity中1格就相当于3D Max中的1米。
四、导入模型的其他注意事项
1. 物体朝向
物体的头部应朝下。
2. 模型命名规范
游戏中的车辆、飞机等大致可分为两个部分,即机身和炮台或螺旋桨。机身应统一命名为 Body,螺旋桨命名为 Airscrew,炮台命名为 Barbette。这样便于找到所有的机身部件,并将爆炸效果的火焰与机身连接起来。
3. 模型尺寸比例
模型尺寸比例可参考前文所述的单位设置。一般来说,飞机、坦克等模型的尺寸以10米左右为基准,即在3D Max里大约为10格的大小。
4. 模型居中
模型要在场景中居中,否则导入后物体的质心位置可能会出现偏差。
5. 命名一致性
模型命名可以使用武器的实际名称;若不清楚,也可使用 Tank1、Tank2 等名称。但重要的是,贴图名称和模型名称要保持一致,以免造成混乱。