按骨骼分层融合(AnimNode_LayeredBoneBlend)是个比较重要的动画节点,特别是做动作游戏,攻击动作中会频繁使用到此节点,具体的原理和操作我们用一个案例来说明:
<1>丧尸的追击
当丧尸追击玩家的时候,丧尸播放attack动画,手部有攻击动作,但是脚步还是攻击动画时候的脚步动作,这样会导致如果丧尸在移动的同时做攻击动作脚步会出现在地上滑行的动作,这样看起来就很不美观和流畅!
所以我们的解决方法是使用这个动画节点:
节点说明:
BasePose:基础姿势
丧尸的idle/walk/run 都可以称之为基础姿势
BlendPose:混合姿势
在这里需要混合的是attack蒙太奇动画
BlendWeights:混合深度
0为不混合 1为混合
通常我们可以通过布尔值来控制此节点
解决方案:
首先我们要确认上半身和下半身是由人体的哪几个骨骼进行控制的
骨骼名称:
1. pelvis盆骨
2.thigh_l 左大腿(下半身)
3.thigh_r 右大腿(下半身)
混合深度理解:
实际上我们需要混合的是攻击动画,所以只需要上半身的攻击动作 所以我们从pelvis(盆骨)以上开始混合保留住上半身的攻击动作,下半身不进行混合 混合深度的值给的越大 混合强度越大,因此下半身th_l和th_r给-1值,上半身给3-4值即可,也可以自己通过给值去调试出最好的效果
以上是在运动过程中的解决方案,可以实现丧尸边奔跑边攻击的动作效果,解决了丧尸在地上飘移走滑步
但是如果在停下来攻击的时候 会发现attack动画的腿以下还是有偏移的情况下,可以把混合深度进一步的减小 从而让丧尸下半身更自然紧紧贴合地面!
好了我们来看一张效果图:
动画蓝图展示:
这里需要混合的是插槽姿势,也就是蒙太奇动画(attack动画),所以我们把对应的姿势进行对应的存储(savepose)
1.BasePose:基础姿势(此姿势包含动画状态机里的idle/walk/run)
2. BasePose + slot插槽=SlotPose(此姿势就得到了基础和包含攻击动作的姿势)
然后BasePose连接BasePose(基础姿势)
SlotPose连接 BlendPose(需要混合的姿势)
这里需要注意的是:
1.是否需要混合旋转和缩放
2.如果需要添加多个混合姿势:
Blednweight0 对应的是Blendposes 0
Blednweight1 对应的是Blendposes 1
结语:
本文通过动画蓝图里的每个骨骼的分层混合节点有效解决了在我们日常开发动作游戏出会经常遇到的一些动作不流畅不协调等问题,上面只列举了作为怪物攻击的一种案例,希望对大家有一定帮助,也可以举一反三,后续有空会继续和大家分享一些干货!