Unity 使用__动画层__来管理不同身体部位的复杂状态机。相应的示例为,您有一个用于行走/跳跃的下身层,还有一个用于投掷物体/射击的上身层。
您可以从__动画控制器 (Animator Controller)__ 左上角的__层 (Layers) 小部件__管理动画层。
单击窗口右侧的齿轮可显示该层的设置。
在每个层上,都可以指定遮罩和混合类型。遮罩指定要应用动画的身体部位。混合类型指定动画的应用方式。
可以通过按小部件上方的 + 来添加新层。
Mask 属性用于指定此层上使用的遮罩。例如,如果您只想播放模型上半身的投掷动画,同时让角色也能够行走、奔跑或站立不动,则可以在层上使用一个遮罩,从而在定义上半身部分的位置播放投掷动画,如下所示:
Layers 侧边栏中的“M”符号表示该层已应用遮罩。
有时,能够在不同层中复用同一状态机是很有用的。例如,如果想要模拟“受伤”行为,并生成“受伤”状态下的行走/奔跑/跳跃动画,而不是“健康”状态下的动画。您可以单击其中一个层上的__同步 (Sync)__ 复选框,然后选择要同步的层。随后状态机的结构便会相同,但状态使用的实际动画剪辑不同。
这意味着同步的层根本没有自己的状态机定义,而是同步层状态机的一个实例。在同步层视图中对状态机的布局或结构所做的任何更改(例如,添加/删除状态或过渡)都是针对同步层的源进行的。同步层的唯一独特更改是每个状态内使用的选定动画。
通过 Timing 复选框,动画器 (Animator) 可调整同步层中每个动画所需的时间(由权重决定)。如果取消选中 Timing,则会调整同步层上的动画。该调整会将动画的长度拉伸到与原始层上的一致。如果选中该选项,则动画长度将在两个动画之间平衡(基于权重)。在两种情况下(选中和不选中),动画器都将调整动画的长度。如果不选中,则原始层将是唯一母版。如果选中,则采用折中方案。
层 (Layers) 侧边栏中的“S”符号表示该层是同步层。