Version: 2022.2
创建最佳性能模型
将模型导入 Unity

创建动画模型

本页面包含有关创建用于 Unity 动画系统的模型的指南。

有关创建所有类型模型的一般最佳实践指南,请参阅创建模型以获得最佳性能。有关将带有动画的模型导入 Unity 的信息,请参阅导入具有人形动画的模型导入具有非人形(通用)动画的模型

角色准备阶段(建模、骨架绑定和蒙皮)
角色准备阶段(建模、骨架绑定和蒙皮)

有两种类型的模型可以与 Unity 的动画系统一起使用:

  • 人形 (Humanoid) 模型是一种非常特别的结构,包含至少 15 种骨骼,这些骨骼的组织方式与实际人体骨架大致相符。
  • 所有其他模型为通用模型。这可能是从茶壶到龙的任何东西。

两者都需要一个骨骼蒙皮模型。创建这样一个模型的阶段是:

  1. 建模 (Modeling):创建模型。该模型包含网格、纹理等。
  2. 骨骼绑定 (Rigging):创建骨架,也称为骨骼或关节层级结构。这定义了网格内的骨骼,以及它们相互之间的运动关系。
  3. 蒙皮 (skinning):将网格连接到骨架。这定义了给定关节进行动画化时,角色网格的哪个部分移动。

您通常在 3D 建模软件(如 Autodesk® 3ds Max®、Autodesk® Maya® 或 Blender)中完成所有这些步骤,然后导出所得到的模型并将其导入到 Unity 中。

建模

为了确保模型在 Unity 项目中与动画顺利结合,可以遵循以下一些准则:

  • 使用结构良好的拓扑。通常,您应该考虑模型的顶点和三角形在动画制作时如何扭曲。良好的拓扑结构允许模型在不扭曲网格的情况下移动。请研究现有的角色网格,了解拓扑的排列方式和原因。
  • 检查网格的比例。进行测试性导入,并将导入的模型的大小与“米立方体”(meter cube) 进行比较。标准 Unity 立方体图元的边长为一个单位,因此可在大多数用途中将其作为 1 米立方体。检查 3D 建模软件使用的单位并调整导出设置,使模型的大小与立方体成正比。
  • 在构建时,清理您的模型。在可能的情况下,请盖住孔洞、焊接顶点并移除隐藏面。这有助于蒙皮,尤其是自动蒙皮过程。
  • 如果角色有脚,对网格进行排列,使角色站在模型的局部原点或“锚点”上。如果角色的锚点(即其变换位置)直接位于地板上,则行走会更容易处理。
  • 如果您的角色是双足的,以 T 形姿势建模。这样可提供在必要位置(例如腋下)细化多边形细节的空间。此外也更容易将骨架放置在网格内。
皮肤网格(纹理和三角形)
皮肤网格(纹理和三角形)

骨骼绑定

3D 建模软件提供了多种方法为骨架创建关节。

对于人形模型,对骨架有特定要求,以便 Unity 可以将其匹配到人形 Avatar

  • 最少 15 块骨骼。骨架需至少具备所需的骨骼。
  • 为了提高与 Avatar 相匹配的机会,请确保骨骼的命名方式反映了其所代表的身体部位。例如,“LeftArm” 和 “RightForearm” 明确显示了这些骨骼的控制对象。
  • 关节/骨骼层级视图应遵循所创建的角色的自然结构。鉴于手臂和大腿成对出现,应使用一致的约定来命名它们(例如,左臂为 “arm_L”,右臂为 “arm_R”)。层级视图的可能结构包括:
    • HIPS - spine - chest - shoulders - arm - forearm - hand
    • HIPS - spine - chest - neck - head
    • HIPS - UpLeg - Leg - foot - toe - toe_end
处于 T 形姿势的两足动物骨架
处于 T 形姿势的两足动物骨架

对于通用模型,唯一的要求是骨架包含一个骨骼,您可以在导入模型时将其指定为 Root node(根节点)。这相当于定义了模型的质心。

蒙皮

初始设置通常是自动的。蒙皮通常需要进行大量的工作和动画测试,以便确保皮肤变形取得令人满意的结果。

交互式皮肤绑定(多种蒙皮方法中的一种)
交互式皮肤绑定(多种蒙皮方法中的一种)

此过程的一些一般准则包括:

  • 最初使用自动化过程来设置某种蒙皮(请参阅 3D 建模软件提供的蒙皮教程)。
  • 为骨架创建简单的动画,或导入一些动画数据用于蒙皮测试。这样应该就能快速评估蒙皮是否在运动中看起来良好。
  • 逐步编辑和优化蒙皮解决方案。
  • 出于性能原因,在使用软性绑定时,请考虑将影响数限制为最多四个。这是 Unity 默认支持的最大数量。如果您的网格使用四个以上的影响,则可以选择以下两个选项之一:

导入并验证您的模型

Unity 可导入许多不同的通用和原生 3D 文件格式,但建议的文件格式是 .fbx。有关更多信息,请参阅模型文件格式

当使用 .fbx 时,您可以:

  • 导出网格以及骨架层级视图、法线、纹理和动画。
  • 将网格重新导入 3D 建模软件,从而验证动画模型是否符合预期。
  • 导出不含网格的动画。
创建最佳性能模型
将模型导入 Unity