从其他应用程序导入时的限制
人形资源准备

从其他应用程序导出

Note: This section provides information about proprietary file formats that use FBX conversion. However, there are two file formats that do not use FBX as an intermediary: SketchUp and SpeedTree. For more information about importing these file formats, see the SketchUp Settings and SpeedTree topics.

Unity 支持可能从许多 3D 建模应用程序导出的 FBX 文件。请遵循以下准则来确保获得最佳结果:

1.选择要在 3D 建模应用程序中导出的内容。 2.准备需要在 3D 建模应用程序中包含的内容。 3.在导出之前检查 FBX 设置。 4.验证并导入 FBX 文件到 Unity。

In addition to these generation guidelines about exporting from 3d modeling applications, some 3d modeling applications have more specific information under these sections:

选择要导出的内容

对于想导出的内容:有些场景对象必不可少,而其他可能不必要。 应用程序通常允许导出选定对象整个场景。 可以通过仅保留基本对象来优化 Unity 中的数据。

如果选择仅导出场景中的特定对象,则可以:

  • 仅导出选定对象(如果应用程序支持此功能)。
  • 从场景中删除不需要的数据并导出整个场景
  • 制作预设或自定义场景导出器以自动化或简化选择导出过程。

准备需要包含的内容

根据以下注意事项准备要导出的资源:

对象: 准备:
网格 (Meshes) 必须将所有 NURBS、NURMS、样条曲线、面片和细分曲面转换为多边形(三角形剖分或四边形剖分)
动画 (Animation) 选择正确的骨架。检查帧率。检查动画长度。
混合形状 (Blend Shapes) 或__变形 (Morphing)|Make sure your Blend Shapes or Morph targets are assigned. Set up the export Mesh appropriately.| |Bake deformers|Make sure that you bake deformers onto your Model before exporting to FBX. For example, if you are exporting a complex rig from Maya, you can bake the deformation onto skin weights before you export the Model to FBX.| |纹理 (Textures)|确保您的纹理来自 Unity 项目,或者将它们复制到 Unity 项目中的名为 textures 的文件夹。

注意:建议不要使用
Embed Media__ 选项在 FBX 文件中嵌入纹理。在使用纹理之前必须提取纹理,因此嵌入它们只会导致项目出现不必要的臃肿问题并减慢导入过程。
平滑 (Smoothing) Verify any smoothing groups and smooth Mesh settings.

Important: Importing blendshape normals requires having smoothing groups in the FBX file.

设置 FBX 导出选项

检查 FBX 导出设置:

  • 检查 3D 建模应用程序的导出对话框中的每项设置,以便了解与 Unity 中的 FBX 导入设置的匹配情况。
  • 根据需要选择是否导出动画 (Animation)、变形 (Deformations)、皮肤 (Skins)、变体 (Morphs)。
  • 节点、标记及其变换可以导出到 Unity。
  • 选择要导入 Unity 的任何摄像机 (Cameras)、光照 (Lights) 和可见性 (Visibility) 设置。
  • 尽可能使用最新版本的 FBX。Autodesk 会定期更新其 FBX 安装程序。
  • 确保在将文件导入 Unity 时使用的 FBX 版本与从 3D 建模应用程序中导出时使用的版本相同。使用不同版本的软件可能产生意想不到的结果。

验证并导入到 Unity

在将 FBX 文件导入到 Unity 之前:

1.验证导出的文件的大小。对文件大小执行完整性检查(例如 >10kb?)。

2.将 FBX 文件重新导入到新场景中,导回到用于生成该文件的 3D 建模软件中。检查并确保能正常工作。

要将文件导入 Unity,请遵循有关导入操作的说明,务必记住您在 3D 建模软件中的导出选项设置。

Scaling factors

Unity’s physics and lighting systems expect 1 meter in the game world to be 1 unit in the imported file.

The defaults for different 3D packages are as follows:

  • .fbx, .max, .jas, .c4d = 0.01
  • .mb, .ma, .lxo, .dxf, .blend, .dae = 1
  • .3ds = 0.1

When importing Model files into Unity from a 3D modeling application with a different scaling factor, you can convert the file units to use the Unity scale by enabling the Convert Units option.

特定 3D 建模应用程序中的导出设置

Autodesk® Maya®

您可以使用 FBX 导出选项选择要在 FBX 文件中导出的内容。

导出 BlendShape(变形)

从 Maya 导出 BlendShape(变形)时,请遵循以下准则:

  • 将混合形状按顺序应用于导出网格及其目标。
  • 如果需要 Maya 动画关键帧,可在混合形状节点上对关键帧进行动画化。
  • 导出网格之前,在 Maya 中启用 Animation > Deformed Models > Blend Shapes FBX 导出选项。
  • 如果还想导出皮肤变形,则应在导出网格之前在 Maya 中启用 Animation > Deformed Models > Skins FBX 导出选项。

将文件导入 Unity 之后,请在__项目__视图中选择该文件,然后在 Model Importer 的 Animations 选项卡中启用 Bake Animations

Exporting complex deformation

You can create very complex character rigs in Maya. For performance reasons, Unity only supports linear blend skinning with four influences per vertex. If your character uses more than four influences, when you import the Model into Unity, the animation may appear choppy or distorted. Or if you are using deformation other than clusters, the animation may be completely absent.

To solve this problem, bake the deformation joints before exporting your Model from Maya, using the Bake Deformer tool (from Maya’s top menu: Skin > Bake Deformers to Skin Weights).

For more information, see Bake deformers on a character in the Autodesk documentation.

Cinema 4D

使用 IK(反向动力学)的动画角色

如果使用 IK 在 Cinema 4D 中对角色进行动画化,必须在导出之前使用 Cinema 4D 中的 Plugins > Mocca > Cappucino 菜单烘焙 IK。 如果您在导入 Unity 之前未烘焙 IK,则只能获得动画定位器 (locator) 和动画骨骼。

最大限度提高导入速度

为了加快文件导入 Unity 的速度,可在导出之前关闭 Cinema 4D 中的 Embed Textures 偏好设置。请查看 Cinema 4D 文档了解相关说明。

Autodesk® 3ds Max®

You can use the FBX Export options to pick what to export in your FBX file.

When exporting from 3ds Max, there are some extra considerations when dealing with the following:

导出四边形

3ds Max’s editable Mesh always exports triangles. The Editable Poly retains quads and N-gons on import. So if you want to import quads into Unity, you have to use an Editable Poly in 3ds Max.

基于骨骼的动画

如果要在 3ds Max 中导出基于骨骼的动画,请遵循以下准则:

  • 设置骨骼结构和动画(使用正向动力学 (FK) 或 IK)后,选择所有骨骼和/或 IK 解算器。
  • Select Motion > Motion Paths > Collapse. Unity makes a key filter, so the amount of keys you export is irrelevant.
  • Click the OK button on the FBX Exporter window.
  • 将 FBX 文件复制到 Assets 文件夹中。
  • 打开 Unity 并将纹理重新分配给根骨骼中的材质。

When exporting a bone hierarchy with Mesh and animations from 3ds Max to Unity, the exported GameObject hierarchy corresponds to the hierarchy you can see in the 3ds Max Schematic View. However, Unity uses a GameObject as the new root, containing the animations, and places the Mesh and material information in the root bone.

If you prefer to keep animation and Mesh information in the same Unity GameObject, parent the Mesh node to a bone in the bone hierarchy in 3ds Max before exporting.

变形目标 (Blendshape)

如果要在 3ds Max 中导出变形目标,请遵循以下准则:

  • Apply the Morpher Modifier to the export Mesh with appropriate morph targets set up in the Channel List.
  • If you require 3ds Max animation keyframes, you can animate keyframes on the Mesh/modifier.
  • Before exporting the Mesh, eEnable the Animation > Deformed Models > Blend Shapes FBX Export option in 3ds Max.
  • If you also want to export skin deformation, enable the Animation > Deformed Models > Skins FBX Export option in 3ds Max before exporting the Mesh.

用于光照贴图的 UV 集

Unity 具有内置的光照贴图功能 (lightmapper),但您也可以使用纹理烘焙(Rendering 菜单上的 Render To Texture)功能和 3ds Max 中的自动展开 (unwrapping) 功能来创建光照贴图。

Usually one UV set is used for main texture and/or normal maps, and another UV set is used for the lightmap Texture. For both UV sets to come through properly, set the Material in 3ds Max to Standard and set up both Diffuse (for the main Texture)and Self-Illumination (for the lightmap) map slots:

3ds Max 中的光照贴图的材质设置(使用自发光贴图)
3ds Max 中的光照贴图的材质设置(使用自发光贴图)

注意:如果对象使用 Shell 类型的材质,Autodesk 的 FBX Exporter 不能正确导出 UV

或者,您可以使用多维/子对象 (Multi/Sub Object) 材质类型,并使用漫射贴图字段中的主纹理 (main texture) 和光照贴图 (lightmap) 设置两个子材质,如下图所示。但是,如果模型中的面使用不同的子材质 ID,这种方法会导致导入多个材质,此情况对性能而言并非最佳选择。

3ds Max 中的光照贴图的另一种材质设置(使用多维/子对象材质)
3ds Max 中的光照贴图的另一种材质设置(使用多维/子对象材质)

LightWave

通过从 LightWave Layout 中的 File 工具栏选择 Save > Export > Export FBX 即可访问 LightWave 中的 FBX 导出设置窗口:

Accessing FBX Export options in LightWave Layout
Accessing FBX Export options in LightWave Layout

随后将显示 Export FBX 窗口。

LightWave FBX 导出设置
LightWave FBX 导出设置
属性: 功能:
FBX Filename 设置 FBX 文件的名称和位置。应使用 Unity Assets 文件夹下的位置。
Anim Layer 要使用的动画层的名称。
Type 使用 Binary 来减小文件大小,或使用 ASCII 生成文本可编辑的 FBX 文件。
FBX Version 从列表中选择最新的 FBX 版本,确保其与 Unity 使用的版本匹配。
Export
Models 导出场景中的所有模型
Morphs (Blend Shapes) 导出场景中的所有 BlendShape
Mesh type
Cage (Subdivision Off) 导出对象但不进行任何细分
Subdivision 导出网格时对其进行细分
Re-parent bone hierarchy 创建一个 null 充当骨骼层级视图的新父级。

从布局中导出骨架时,如果骨骼层级视图以网格为父级,变形网格的实际移动将是预期值的两倍。启用此新父级会使网格保持原样。
Materials 转换 LightWave 的标准表面通道和图像映射。这不包括程序化纹理和节点。
Embedded Textures 将嵌入的纹理保存为直接包含在 FBX 文件中的图像映射,而不是保存到单独的图像目录。这会创建更大但更独立的 FBX 文件。
Smoothing Groups 将 LightWave 的法线转换为平滑组。
Collapse Materials 折叠具有相同材质名称的表面,分别导出材质。但是,如果材质名称和所有表面参数都匹配,则无论此设置如何,始终都会合并两个材质。
Merge UVs 将多个 UV 贴图折叠为每个对象的单个贴图。
Unity 3D Mode 纠正 LightWave、FBX 和 Unity 的坐标系之间的转换导致的旋转错误。

LightWave 和 Unity 均使用左手坐标系,但 FBX 使用右手坐标系。当 LightWave 导出到 FBX 时,它会沿 Z 轴转换为右手坐标。当 Unity 导入 FBX 文件时,它会沿 X 轴转换回左手坐标,从而使场景旋转 180 度。使用该设置意味着,当您进入 Unity 并向下观察 Z 轴时,导入的 FBX 看起来与在 LightWave 内部完全相同。
Cameras 导出场景中的所有摄像机。
Lights 导出场景中的所有光照。
Animations 无需烘焙即可导出基于移动、旋转或缩放的简单动画。使用 IK 或动态的角色动画或其他动画仍应使用 Bake Motion Envelopes 进行烘焙。
Bake Motion Envelopes 当存在您不想捕获的设置帧时,设置烘焙的任意起始点和结束点。仅当选中 Animations 时才可用。
Start FrameEnd Frame 仅导出此时间范围内的数据。
Scale Scene Set a scale for your scene to match the Unity file scale value.

从其他应用程序导入时的限制
人形资源准备