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: 从模型中创建,根据此模型创建
Avatar
Copy 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
、Left
Hand
和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
会立即更新对文件执行的所有更改。不过,可以在此窗口处于活动状态时撤消任何更改。