Version: 2017.4
Using Humanoid Characters
Non-humanoid Animations

准备您自己的角色

There are three main steps in creating an animated humanoid character from scratch: modelling, rigging and skinning.

Modelling

This is the process of creating your own humanoid mesh in a 3D modelling package - 3DSMax, Maya, Blender, etc. Although this is a whole subject in its own right, there are a few guidelines you can follow to ensure a model works well with animation in a Unity project.

  • 遵循合理的拓扑。网格“合理”结构的具体含义相当微妙,但一般来说,应注意模型的顶点和三角形在动画化时的扭曲情况。不良的拓扑要求必须稍微扭曲网格才能移动模型。通过研究现有的 3D 角色网格,可以在很大程度上了解拓扑的排列方式和原因。
  • 注意网格的比例。进行测试性导入,并将导入的模型的大小与“米立方体”(meter cube) 进行比较(标准 Unity 立方体图元的边长为一个单位,因此可在大多数用途中将其作为 1 米立方体)。检查 3D 包使用的单位并调整导出设置,使模型的大小与立方体成正比。除非特别小心,否则很容易创建出没有任何比例概念的模型,导致的后果是,将模型导入 Unity 时可能产生一组大小不成比例的对象。
  • 对网格进行排列,使角色的双脚站在模型的局部原点或“锚点”上。由于角色通常在地面上直立行走,如果其锚点(即其变换位置)直接位于该地面上,则会大幅降低处理难度。
  • 如有可能,以 T 形姿势建模。这样有助于留出在必要位置(如腋下)细化多边形细节的空间。此外也更容易将骨架放置在网格内。
  • 清理您的模型。在可能的情况下,请盖住孔洞、焊接顶点并移除隐藏面,这将有助于蒙皮,尤其是自动蒙皮过程。
皮肤网格(纹理和三角形)
皮肤网格(纹理和三角形)

骨架绑定

此过程创建关节骨架来控制模型运动。

3D 包提供了多种方法为人形骨架创建关节。从现成的两足动物骨架(可以缩放这些骨架来适应个人需求的网格),一直到用于单独骨骼创建和父子化以自行创建骨骼结构的工具。为了与 Mecanim 结合使用,臀部应作为骨骼层级视图的根元素。骨架中至少需要 15 个骨骼。

关节/骨骼层级视图应遵循所创建的角色的自然结构。鉴于手臂和大腿成对出现,应使用一致的约定来命名它们(例如,左臂为“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 形姿势的两足动物骨架

蒙皮

此过程将网格连接到骨架。

蒙皮过程涉及将网格中的顶点绑定到骨骼:既可直接绑定(刚性绑定),也可通过混合影响将顶点绑定到多个骨骼(软性绑定)。不同的软件包使用不同的方法,例如,分配各个顶点,并将每个骨骼的影响权重绘制到网格上。初始设置通常是自动化的,例如通过查找最近的影响或使用“热图”。蒙皮通常需要进行大量的工作和动画测试,以便确保皮肤变形取得令人满意的结果。此过程的一些一般准则包括:

  • Using an automated process initially to set up some of the skinning (see relevant tutorials on 3DMax, Maya, etc).
  • 为骨架创建简单的动画,或导入一些动画数据用于蒙皮测试。这样应该就能快速评估蒙皮是否在运动中看起来良好。
  • 逐步编辑和优化蒙皮解决方案。
  • 将使用软性绑定时的影响数量限制为最多四个(因为这是 Unity 可处理的最大数量)。如果有四种以上的影响对网格的部件产生影响,则在 Unity 中播放动画时至少会丢失一些信息。
交互式皮肤绑定(多种蒙皮方法中的一种)
交互式皮肤绑定(多种蒙皮方法中的一种)
Using Humanoid Characters
Non-humanoid Animations