层级参数
参数 | 说明 |
---|---|
weight | 权重 0表示这一层动画不起作用 1表示完全覆盖动画 |
Mask | 替身蒙版:表示角色身体上的哪些部分会播放我们的动画 表示当前层级的播放的动画,会影响角色身体的哪些部分 |
Blending混合 | Override覆盖:用当前这个层级的动画取代上面层级的动画 Addtive:将当前层级的动画和上面层级的动画混合起来 |
Sync同步 | 勾选之后可以选择当前层级要和哪个层级保持一致 |
Timing | |
IK Pass | 在当前层级使用IK动画 |
- 创建替身蒙版:右键、创建、Avatar Mask
绿色表示,会播放动画
红色表示,不会播放动画
点击周围,可以一次性全选或一次性反选
练习:边走,手部边跳舞
- 添加Avatar Mask提示蒙版,将除了手部部分其他全部标记为红色
- 添加持枪层,设置混合模式为覆盖,权重weight为1.
- 设置动画状态机
- 添加脚本代码(这里采用了新输入系统)
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的设置
动画层级的优先级
层级越下面,优先级越高。
评论区