Unity - Animator Layer Weight,Mask,Blending实现动作覆盖,一边挥手一边跑步,上下半身动画覆盖播放

Project Source

Animator_层级覆盖遮罩左右手动画_Layer_Override_AvatarMask_HandwaveLeftOrRight 提取码: m2xw

Animator状态机参数

Unity - Animator Layer Weight,Mask,Blending实现动作覆盖,一边挥手一边跑步,上下半身动画覆盖播放

 

Base Layer只有简单的Idle与Move的状态动画

Unity - Animator Layer Weight,Mask,Blending实现动作覆盖,一边挥手一边跑步,上下半身动画覆盖播放

HandwaveL Layer - 左手动画层

这里有几个技巧:

  • 使用一个Empty(Clip留空)的状态,在这个Empty状态就不会影响其他层了
  • Entry进入的默认状态为Empty,这样一开始就不影响其他状态
  • 使用Any State来判断Transition进入Handwave
  • Any State->Handwave的Transition使用handwaveL trigger就好了
  • Handwave->Empty的Transition不使用任何条件就好,这样默认就会使用HasExitTime、ExitTime来决定(即,Handwave播放一遍完成时,就条件成立)

Unity - Animator Layer Weight,Mask,Blending实现动作覆盖,一边挥手一边跑步,上下半身动画覆盖播放

HandwaveL Layer的齿轮面板属性设置

主要设置Weight,Mask,Blending

  • Weight:1(对其他层的动画的影响权重值,1:完全影响(如果Blending为Additive的话,那么会将所有层的Additive的Weight的值进行同时计算),0:完全不影响)
  • Mask:HandWaveLMask(下面有图,我们只要保留左手绿色即可)
  • Blending:Override(该层的动画将会覆盖其他的)

Unity - Animator Layer Weight,Mask,Blending实现动作覆盖,一边挥手一边跑步,上下半身动画覆盖播放

HandwaveL 其实是HandwaveR的镜像,减少FBX动画数据

Unity - Animator Layer Weight,Mask,Blending实现动作覆盖,一边挥手一边跑步,上下半身动画覆盖播放 

HandwaveL Layer的AvatarMask

AvatarMask,红色是不生效的,绿色是将用上的动画关节 

Unity - Animator Layer Weight,Mask,Blending实现动作覆盖,一边挥手一边跑步,上下半身动画覆盖播放

HandwaveR Layer - 右手动画层

Unity - Animator Layer Weight,Mask,Blending实现动作覆盖,一边挥手一边跑步,上下半身动画覆盖播放 

 HandwaveR Layer的齿轮面板属性设置

主要设置Weight,Mask,Blending

  • Weight:1(对其他层的动画的影响权重值,1:完全影响(如果Blending为Additive的话,那么会将所有层的Additive的Weight的值进行同时计算),0:完全不影响)
  • Mask:HandWaveRMask(下面有图,我们只要保留右手绿色即可)
  • Blending:Override(该层的动画将会覆盖其他的)

 Unity - Animator Layer Weight,Mask,Blending实现动作覆盖,一边挥手一边跑步,上下半身动画覆盖播放

 这里有几个技巧:

与HandwaveL Layer的基本相同

HandwaveR Layer的AvatarMask 

Unity - Animator Layer Weight,Mask,Blending实现动作覆盖,一边挥手一边跑步,上下半身动画覆盖播放 

Runtime 

最后我们运行场景,然后选中Animator的拥有者对象(GameObject),然后再打开Animator窗口

(Window->Animation->Animator),打开Paramters参数面板(Layers旁边),手动点击**"move"布尔值,“handwaveL”、"handwaveR"触发器来看看人物动画的左右手覆盖播放的情况 

Unity - Animator Layer Weight,Mask,Blending实现动作覆盖,一边挥手一边跑步,上下半身动画覆盖播放