unity3d导出FBX模型
在将3ds Max中的模型和动画导出为FBX格式并导入到Unity时,有多个关键环节需要特别注意,以下为您详细介绍:
导出前的注意事项
1. 单位设置
在进行建模和动画制作时,3ds Max系统默认的单位(max system unit)通常为英寸(inch)。建议将其修改为米(metres)或者厘米(centimetres),否则导出到Unity中的模型和动画可能会出现比例不一致的问题。
2. 导出物选择
在导出模型和动画时,建议根据实际需求选择导出模式。推荐使用“export selected”(导出选中对象)模式,即只导出您在场景中选中的对象,这样可以确保导出的内容准确无误。
3. 动画中必须包含模型
当使用“export selected”模式导出动画时,需要全选所有要导出的骨骼,包括Bipe、Bone以及它们的Nub,同时还需要选中任意一个模型,然后一起进行导出。因为FBX格式不允许没有模型的动画单独存在。
4. 可能丢失蒙皮信息的原因1
使用“export selected”模式导出模型时,要同时选中要导出的模型以及所有的骨骼,这样才能保留蒙皮信息。您可以将导出的FBX文件拖到Unity中,查看Mesh上是否有一个名为“skined mesh material”的参数。如果没有该参数,说明您在导出时没有选中骨骼,从而导致蒙皮信息丢失。
5. 可能丢失蒙皮信息的原因2
在将带有蒙皮信息的模型文件导出为FBX时,必须为每个模型或子网格(sub mesh)指定材质,并且为每个材质正确命名,同时材质的Diffuse map不能为空。否则,将无法导出蒙皮信息,即不会出现“skined mesh mat”。
6. 执行ResetXForm
在进行Skin或者Physique操作之前,一定要严格执行ResetXForm操作。否则,导出的FBX模型可能会出现严重的偏移问题。
自用的FBX自动导出脚本说明
FBX_AniExporter.ms
当模型/动画的单位与系统单位一致时(建议都设置为厘米,即centimetres),可以使用此脚本进行FBX动画文件的批量导出。使用前需要修改脚本中的导入文件夹和导出文件夹路径,脚本会自动为导出的FBX文件命名。同时,脚本会自动全选场景中所有的$Bip和$Bone,以及一个模型进行导出。
FBX_AllMeshExporter.ms
该脚本用于批量导出场景中的所有模型/子物体为单独的FBX模型文件(包含模型、UV、蒙皮信息,但不包含动画信息)。脚本在导出时遵循以下规则:模型1 + 全部$Bip + 全部$Bone,模型2 + 全部$Bip + 全部$Bone,模型3 + 全部$Bip + 全部$Bone,以此类推。
FBX_MeshExporter.ms
这是旧版的FBX_AllMeshExporter脚本,您可以忽略该脚本。
ANI_1by1.ms
当模型/动画的单位与系统单位设置不一致时,先将系统单位(system unit)设定为正确的值,然后逐个打开要导出的.max文件,使用此脚本逐个导出。
InitMatFile.ms
该脚本用于为场景中所有模型/子物体设置独立的材质球,并自动将材质球命名为模型的名字,同时填充Diffuse Map。使用时需要指定其中的贴图路径(map路径),并且该路径下的TGA贴图张数不能少于场景中的模型数量,脚本才能正常运行。
Select2Export
从名称可以看出,该脚本用于导出选中的模型和骨骼。
其他补充说明
- 贴图格式:贴图建议使用TGA格式。
- FBX对话框选项:有人建议在导出时,在弹出的FBX对话框中勾选“geome”相关下的“smooth”选项,虽然不确定该选项是否有实际作用,但勾选通常不会产生负面影响。
- UDK导入设置:在将FBX文件导入到UDK时,将菜单拖到最下面,确保勾选“material”和“texture”选项,然后再点击“OK”。
- TGA图片大小:TGA图片的大小必须为2的幂,例如512、1024、2048等。只有这些大小的图片才能正确导入,其他大小的图片可能会导致导入出错。