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

Project Source

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

Animator状态机参数

在这里插入图片描述

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

在这里插入图片描述

HandwaveL Layer - 左手动画层

这里有几个技巧:

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

HandwaveL Layer的齿轮面板属性设置

主要设置Weight,Mask,Blending

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

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

在这里插入图片描述

HandwaveL Layer的AvatarMask

AvatarMask,红色是不生效的,绿色是将用上的动画关节
在这里插入图片描述

HandwaveR Layer - 右手动画层

在这里插入图片描述

HandwaveR Layer的齿轮面板属性设置

主要设置Weight,Mask,Blending

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

在这里插入图片描述

这里有几个技巧:

与HandwaveL Layer的基本相同

HandwaveR Layer的AvatarMask

在这里插入图片描述

Runtime

最后我们运行场景,然后选中Animator的拥有者对象(GameObject),然后再打开Animator窗口(Window->Animation->Animator),打开Paramters参数面板(Layers旁边),手动点击激活"move"布尔值,“handwaveL”、"handwaveR"触发器来看看人物动画的左右手覆盖播放的情况

在这里插入图片描述

  • 6
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值