Version: Unity 6.0 (6000.0)
语言 : 中文
子状态机
状态机 Solo 和 Mute

动画层

Unity 使用__动画层__来管理不同身体部位的复杂状态机。相应的示例为,您有一个用于行走/跳跃的下身层,还有一个用于投掷物体/射击的上身层。

您可以从__动画控制器 (Animator Controller)__ 左上角的__层 (Layers) 小部件__管理动画层。

单击窗口右侧的齿轮可显示该层的设置。

在每个层上,都可以指定遮罩和混合类型。遮罩指定要应用动画的身体部位。混合类型指定动画的应用方式。

  • 选择覆盖 (Override) 以使用此层上的动画,替换先前层上的动画。
  • 选择添加 (Additive) 可在先前层的动画之上添加此层上的动画。
    要使添加混合成功,添加层上的动画必须包含与先前层相同的属性。

可以通过按小部件上方的 + 来添加新层。

Mask 属性用于指定此层上使用的遮罩。例如,如果您只想播放模型上半身的投掷动画,同时让角色也能够行走、奔跑或站立不动,则可以在层上使用一个遮罩,从而在定义上半身部分的位置播放投掷动画,如下所示:

Layers 侧边栏中的“M”符号表示该层已应用遮罩。

动画层同步

有时,能够在不同层中复用同一状态机是很有用的。例如,如果想要模拟“受伤”行为,并生成“受伤”状态下的行走/奔跑/跳跃动画,而不是“健康”状态下的动画。您可以单击其中一个层上的__同步 (Sync)__ 复选框,然后选择要同步的层。随后状态机的结构便会相同,但状态使用的实际动画剪辑不同。

这意味着同步的层根本没有自己的状态机定义,而是同步层状态机的一个实例。在同步层视图中对状态机的布局或结构所做的任何更改(例如,添加/删除状态或过渡)都是针对同步层的源进行的。同步层的唯一独特更改是每个状态内使用的选定动画。

通过 Timing 复选框,动画器 (Animator) 可调整同步层中每个动画所需的时间(由权重决定)。如果取消选中 Timing,则会调整同步层上的动画。该调整会将动画的长度拉伸到与原始层上的一致。如果选中该选项,则动画长度将在两个动画之间平衡(基于权重)。在两种情况下(选中和不选中),动画器都将调整动画的长度。如果不选中,则原始层将是唯一母版。如果选中,则采用折中方案。

在此视图中,“疲劳”层与基础层同步。状态机结构与基础层相同,并且在每个状态内使用的各个动画将交换为不同但合适的等效动画。
在此视图中,“疲劳”层与基础层同步。状态机结构与基础层相同,并且在每个状态内使用的各个动画将交换为不同但合适的等效动画。

层 (Layers) 侧边栏中的“S”符号表示该层是同步层。

子状态机
状态机 Solo 和 Mute