您当前的位置: 首页 >  unity

Jave.Lin

暂无认证

  • 4浏览

    0关注

    704博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

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

Jave.Lin 发布时间:2019-05-23 20:48:23 ,浏览量:4

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"触发器来看看人物动画的左右手覆盖播放的情况

在这里插入图片描述

关注
打赏
1664331872
查看更多评论
立即登录/注册

微信扫码登录

0.0817s