Version: 2020.3
将模型导入 Unity
导入带有人形动画的模型

导入一个模型

Model files can contain a variety of data, such as meshes, animation rigs and clips, materials and textures. Your file might not contain all of these elements, but you can follow any portion of the workflow that you need to:

  1. 在 Project 视图中选择文件以查看 Import Settings 窗口
  2. 设置模型特有的选项或常规导入器选项
  3. 设置骨架和动画的导入选项(不适用于 SpeedTree 模型)
  4. 处理材质和纹理
  5. 将文件拖入 Unity 中

有关导入带有动画的模型的更多信息,请参阅导入带有人形动画的模型导入带有非人形(通用)动画的模型

Note: Unity’s primary support for Model files is the FBX format. However, you can save your 3D files from most common 3D modeling software in their native format (for example, .max, .blend, .mb, .ma). When Unity finds these file types in your Assets folder, it calls your 3D modeling software’s FBX export plug-in, and imports the file. The 3D modeling software must be installed on the same computer as Unity, so in most cases it’s best practice to directly export as FBX from your application into your Assets folder.

访问 Import Settings 窗口

无论要从模型文件中提取哪种数据,始终以相同的方式开始:

  1. 打开 Project 窗口和 Inspector,确保能同时看到这两个界面。

  2. Project 窗口的 Asset 文件夹中选择要导入的模型文件。

    Inspector 中将打开 Import Settings 窗口,其中默认显示 Model 选项卡

设置模型特有的选项和常规导入器选项

SpeedTree 模型与其他模型可用的选项非常不同。例如,SpeedTree Model 选项卡提供的选项主要用于设置 LOD 级别之间的过渡。

角色和动画模型在其 Model 选项卡上提供更多样化的选项,允许您:

  • 使用 Scale FactorConvert Units 属性可调整 Unity 对单位的解释。例如,3ds Max 使用 1 个单位表示 10 厘米,而 Unity 使用 1 个单位表示 1 米。
  • 使用 Mesh CompressionRead/Write EnabledOptimize MeshKeep QuadsIndex FormatWeld Vertices 属性可减少资源并节省内存。
  • 如果模型文件来自 Maya 或 3ds Max,或者任何其他支持变形目标动画的 3D 建模应用程序,则可以启用 Import BlendShapes 选项。
  • 可为环境几何形状启用 Generate Colliders 选项。
  • 可启用特定的 FBX 设置,如 Import VisibilityImport CamerasImport Lights
  • 对于仅包含动画的模型文件,可启用 Preserve Hierarchy 选项以防止骨架层级视图不匹配。
  • 如果使用了光照贴图 (Lightmap),则可设置 Swap UVsGenerate Lightmap UVs
  • 可使用 NormalsNormals ModeTangentsSmoothing Angle 选项来控制 Unity 如何处理模型中的法线 (Normals) 和切线 (Tangents)。

设置骨架和动画的导入选项

如果文件包含动画数据,可遵循使用 Rig 选项卡设置骨架并使用 Animation 选项卡提取或定义动画剪辑的准则。人形和通用(非人形)动画类型的工作流程不同,因为 Unity 要求人形类型有非常具体的骨骼结构,但对于通用类型只需了解哪个骨骼是根节点:

注意:SpeedTree 型号不具有 RigAnimation 选项卡。

处理材质和纹理

如果文件包含材质或纹理,可定义它们的处理方式:

  1. 单击 Import Settings 窗口中的 Materials 选项卡
  2. Material Creation Mode 下拉菜单中,选择您要如何从 FBX 文件导入材质。除非选择了 None,否则 Materials 选项卡中会显示多个选项,包括 Location 选项,该选项的值决定了应显示的其他选项。
  3. 选择 Use Embedded Materials 选项将材质保持在导入的资源中
  4. 设置完这些选项后,请单击 Import Settings 窗口底部的 Apply 按钮来保存这些设置,也可单击 Revert 按钮取消设置。

查找纹理

Unity 遵循特定的搜索计划在导入时自动查找纹理。首先,导入器在与网格相同的文件夹中或任何父文件夹中查找名为 Textures 的子文件夹。如果此过程失败,Unity 将对项目中的所有纹理执行穷尽搜索。虽然速度只是稍慢,但穷尽搜索的主要缺点是项目中可能有两个或多个同名的纹理。在这种情况下,不能保证 Unity 可以找到合适的纹理。

纹理放置在资源级别或更高级别的 Textures 文件夹中
纹理放置在资源级别或更高级别的 Textures 文件夹中

(A) 可能找到纹理的地方

(B) 正在导入的网格

法线贴图

如果一个角色具有从模型的复杂多边形版本生成的法线贴图,则应导入平滑角为 180 度的游戏质量版本。这样可以防止由于切线分裂而导致光照中出现看起来奇怪的接缝。如果使用这些设置后仍然存在接缝,请从 Tangents 下拉菜单中选择 Calculate Legacy With Split Tangents。如果是将灰度图像转换为法线贴图,则无需担心这一点。

将文件拖入 Unity 中

最后,可将文件导入场景中:

  • 如果文件中包含网格,请将文件拖入 Scene 视图以将其实例化为游戏对象预制件
  • 如果文件中包含动画剪辑,可将文件拖入 Animator 窗口以便在状态机中使用。也可以将动画连续片段直接拖动到 Scene 视图中的实例化预制件上。此操作将自动创建一个动画控制器 (Animation Controller) 并将动画连接到模型。
将模型导入 Unity
导入带有人形动画的模型