Rig
# Rig

# 属性
- Animation Type:动画类型
- None: 不支持动画
- Legacy: 旧版动画系统,如果希望用3.x的动画系统导入和编辑动画,则选用此项,
- Generic: 泛型(通用Mecanim动画系统),如果导入FBX资源是一个非人形的(如 丝足动物),请选该项,
Unity会选择一个根节点,但可以确定另一个用作根节点的骨骼。 - Humanoid: 人形Mecanim动画系统(如IE,两条腿,两只胳膊和头), Unity 通常会检测骨架并将其正确映射到
Avatar。有些情况下,可能需要更改Avatar定义 (Avatar Definition) 并手动对映射进行配置 (Configure)。
# Legacy
- Generation: 生成
- Dont't Import: 不导入
- Store in Original Roots(Deprecated): 存储在原始跟中(已启用)
- Store in Nodes(Deprecated): 存储在节点中(已启用)
- Store in Root(Deprecated): 存储在根中(已启用)
- Store in Root(New): 存储在根中(新)
# Generic
Avatar Definition: Avatar定义
Create From This Model: 从模型中创建
Copy From Other Avatar: 从其他Avatar复制
Root node: 根节点
Source: 源
Optimize Game Object: 优化游戏对象
Extra Transfroms to Expose ,激活
Optimize Game Object*后启用
# Humanoid
Avatar Definition: Avatar定义
Create From This Model: 从模型中创建,根据此模型创建
AvatarCopy From Other Avatar: 指向另一个模型上设置的
Avatar。Root node: 根节点
Source: 复制另一个具有相同骨架的
Avatar以导入其动画剪辑。仅当Avatar Definition设置为Copy from Other Avatar时才可用。Optimize Game Object: 优化游戏对象
Extra Transfroms to Expose ,激活
Optimize Game Object*后启用
# Avatar Mapping 选项卡
保存场景后,Inspector 内将显示 Avatar Mapping 选项卡,其中显示 Unity 的骨骼映射
![]()
# 详解
(A) 通过这些按钮在
Mapping和Muscles&Settings选项卡之间进行切换。在选项卡之间切换之前,必须对所做的更改执行Apply或Revert操作。(B) 通过这些按钮在 Avatar 的部位之间进行切换:
Body、Head、LeftHand和Right Hand。(C) 这些菜单提供各种 Mapping 和 Pose 工具来帮助您将骨骼结构映射到
Avatar。(D) 通过这些按钮接受所做的更改 (
Accept)、放弃更改 (Revert) 以及离开Avatar窗口 (Done)。在离开Avatar窗口之前,必须对所做的更改执行Apply或Revert操作。
Avatar Mapping(Avatar 映射)指示哪些骨骼是必需的(实线圆圈)和哪些骨骼是可选的(虚线圆圈)。Unity 可自动插入可选的骨骼移动。
# 保存和重用 Avatar 数据(人体模板 (Human Template) 文件)
可以将骨架中的骨骼映射保存到磁盘上的 Avatar 作为人体模板(Human Template)文件(扩展名为 *.ht)。您可以对任何角色重用此映射。例如,您希望通过源代码控制 Avatar 映射,并提交基于文本的文件;或者希望使用自己的自定义工具来解析文件。
要将 Avatar 数据保存到人体模板文件,请从 Avatar 窗口底部的 Mapping 下拉菜单中选择 Save。

Unity 将显示一个对话框,可在其中选择要保存的文件的名称和位置。

要加载先前创建的人体模板文件,请选择 Mapping > Load,然后选择要加载的文件。
# 使用 Avatar 遮罩
有时,将动画限制为特定的身体部位会很有用。例如,在一个行走动画中,角色可能会挥动他们的手臂,但如果他们拿起火炬,他们应该将火炬举起来投光。您可以使用 Avatar 身体遮罩 (Avatar Body Mask) 来指定应将动画限制在角色的哪些部位。
# Avatar Muscle & Settings 选项卡
Unity 的动画系统允许使用肌肉 (Muscles) 控制不同骨骼的运动范围。
正确配置 Avatar 后,动画系统可“理解”骨骼结构,并允许使用 Avatar Inspector 的 Muscles & Settings 选项卡。使用 Muscles & Settings 选项卡可调整角色的运动范围,并确保角色以逼真的方式变形,而不出现视觉瑕疵或自我重叠。

# Muscle & Settings 选项卡具有以下区域:
(A) 通过这些按钮在
Mapping和Muscles & Settings选项卡之间进行切换。在选项卡之间切换之前,必须对所做的更改执行Apply或Revert操作。(B) 通过
Muscle Group Preview区域可使用预定义的变形来操作角色。这些设置一次影响多个骨骼。(C) 使用
Per-Muscle Settings区域可调整身体的各个骨骼。可以展开这些肌肉设置以便更改每项设置的范围限制。例如,默认情况下,Unity会将Head-Nod和Head-Tilt设置的范围设置为 -40 到 40 度,可以进一步减小这些范围以增加这些动作的刚度。(D) 使用
Additional Settings可调整身体的特定特效。(E)
Muscles菜单提供了Reset工具,可将所有肌肉设置恢复到默认值。(F) 通过这些按钮接受所做的更改 (
Accept)、放弃更改 (Revert) 以及离开Avatar窗口 (Done)。在离开Avatar窗口之前,必须对所做的更改执行Apply或Revert操作。
# 预览更改
对于 Muscle Group Preview 和 Per-Muscle Settings 区域中的设置,可直接在 Scene 视图中预览所做的更改。可以拖动滑动条来查看应用于角色的每项设置的移动范围:

可以通过网格查看骨架的骨骼。
# 移动自由度 (Degree of Freedom, DoF)
可以在 Additional Settings 中启用 Translate DoF 选项,从而启用人形角色的移动动画。如果禁用此选项,则 Unity 仅使用旋转对骨骼进行动画化。Translation DoF 可用于 Chest、UpperChest、Neck、LeftUpperLeg、RightUpperLeg、LeftShoulder 和 RightShoulder 的肌肉。
注意:启用 Translate DoF 可能会提高性能要求,因为动画系统需要执行额外的步骤来重新定位人形动画。因此,在已知动画包含角色某些骨骼的动画式移动时,才应启用此选项。
# Avatar Mask 窗口
可通过以下两种方法来定义应该对动画的哪些部分进行遮罩:
从人形身体映射图进行选择
从
Transform层级视图中选择要包含或排除的骨骼
# 人形身体选择
如果动画使用人形 Avatar,可以选择是否简化人形身体图的某些部分,从而指示需要遮罩的动画位置:
![]()
身体图将身体部位分为以下部分:
Head: 头
Left Arm: 左臂
Right Arm: 右臂
Left Hand: 左手
Right Hand: 右手
Left Leg: 左腿
right Leg: 右腿
Root: 根 由脚下的"阴影"表示
要包含某个身体部位的动画,请在 Avatar 图中单击该部位,直到该部位显示为绿色。要排除动画,请单击该身体部位,直到显示为红色。要包含或排除所有部位,请双击 Avatar 周围的空白区域。
此外还可切换手和脚的反向动力学 (Inverse Kinematics, IK),此选项决定了是否在动画混合中包含 IK 曲线。
# 选择变换组件
另一方面,如果动画不使用人形 Avatar,或者需要更精确地控制对各个骨骼的遮罩,则可以选择或取消选择模型层级视图的相应部分:
1.为需要遮罩变换组件的
Avatar分配引用。2.单击
Import Skeleton按钮。Avatar的层级视图将显示在检视面板中。3.可以在层级视图中选中需要遮罩的每个骨骼。
![]()
当指定动画层在运行时应用遮罩,或者在动画文件的导入设置中将遮罩应用于导入动画时,可在 Animator Controller 中使用遮罩资源。
使用遮罩的好处在于有助于减少内存开销,因为非活动身体部位不需要关联的动画曲线。此外,在播放期间不需要计算未使用的曲线,因此还有助于减少动画的 CPU 开销。
# Human Template 窗口
人体模板 (Human Template) 文件 (*.ht) 以 YAML 格式存储保存在 Avatar 窗口中的模型的人形骨骼映射:

Human Template 窗口将人体模板文件的内容显示为标准 Unity 文本框。

每个分组代表 YAML 文件中的一个条目,其中骨骼映射目标的名称标记为 First,而模型文件中的骨骼名称标记为 Second。
可以使用此属性编辑该文件中的大部分值,但 Unity 会立即更新对文件执行的所有更改。不过,可以在此窗口处于活动状态时撤消任何更改。