解说Unity3d模型导入技巧

2015年03月17日 10:48 0 点赞 0 评论 更新于 2025-11-21 17:25

在将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. 命名一致性

模型命名可以使用武器的实际名称;若不清楚,也可使用 Tank1Tank2 等名称。但重要的是,贴图名称和模型名称要保持一致,以免造成混乱。

作者信息

menghao

menghao

共发布了 3994 篇文章