层级参数

image.png

参数说明
weight权重
0表示这一层动画不起作用
1表示完全覆盖动画
Mask替身蒙版:表示角色身体上的哪些部分会播放我们的动画
表示当前层级的播放的动画,会影响角色身体的哪些部分
Blending混合Override覆盖:用当前这个层级的动画取代上面层级的动画

Addtive:将当前层级的动画和上面层级的动画混合起来
Sync同步勾选之后可以选择当前层级要和哪个层级保持一致
Timing
IK Pass在当前层级使用IK动画
  • 创建替身蒙版:右键、创建、Avatar Mask
    image.png
    绿色表示,会播放动画
    红色表示,不会播放动画
    点击周围,可以一次性全选或一次性反选

练习:边走,手部边跳舞

  1. 添加Avatar Mask提示蒙版,将除了手部部分其他全部标记为红色
  2. 添加持枪层,设置混合模式为覆盖,权重weight为1.
  3. 设置动画状态机
    image.png
  4. 添加脚本代码(这里采用了新输入系统)
public void PlayerDanceInput(InputAction.CallbackContext callback)
{
    // 一直按1时,为1, 松开1是,为0
    // Debug.Log(callback.ReadValue<float>());
    if (callback.ReadValue<float>() == 0)
    {
        dance = !dance;
        animator.SetBool("dance", dance);
    }
}

对混合模式的addtive的理解

  • addtive就是将当前层的所播放的动画,添加到之前层级的结果上去。
  • 调整weight,表示他会把本身动画以多少比例添加到之前的结果上去。其中0表示完全添加, 1表示完全不添加。

对Sync同步的理解

  • 使用同步的不同层级,在同一个动画状态中,所使用的动画片段长度可能不一样。

  • 在默认情况下,Sync layer 中的动画状态的时长,会被缩放到他所需要的层级对应动画状态的时长。

  • 一但勾选Timing时, 动画状态的时长就由它和被它同步的层级共同决定的。

  • 问题,那么哪个的层级决定权更大呢?

  • 看权重,当权重为1时,全都听当前层的。

  • 当权重为0时,全部听被同步的那一层的。

总结:同步层级的状态长度必须一致,具体长度由谁决定,则看timing和weight的设置

动画层级的优先级

层级越下面,优先级越高。