Version: 2023.2
子状态机
Solo 和 Mute 功能

动画层

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

您可以从 Animator Controller 左上角的 __Layers 小部件__管理动画层。

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

On each layer, you can specify the mask and the Blending type. The mask specifies the body parts on which to apply the animation. The Blending type specifies how the animation is applied.

  • Select Override to use the animation on this layer, replacing the animation on previous layers.
  • Select Additive to add the animation on this layer on top of the animation from previous layers.
    For additive blending to be successful, the animation on the additive layer must contain the same properties as the previous layers.

Add a new layer by pressing the + above the widget.

The Mask property is there to specify the mask used on this layer. For example if you wanted to play a throwing animation on just the upper body of your model, while having your character also able to walk, run or stand still at the same time, you would use a mask on the layer which plays the throwing animation where the upper body sections are defined, like this:

An ‘M’ symbol in the Layers sidebar indicates that the layer has a mask applied.

动画层同步

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

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

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

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

An ‘S’ symbol in the Layers sidebar indicates that the layer is a synced layer.


  • 2021–07–07 页面已修订
子状态机
Solo 和 Mute 功能