Bootstrap

阿赵UE学习笔记——27、骨骼分层混合

阿赵UE学习笔记目录
  大家好,我是阿赵。
  继续学习虚幻引擎的使用,这次学习一下动画的骨骼分层混合。

一、使用情景

  之前我通过IK重定向,生成了很多钢铁侠的动画,其中开枪的动画有这些,主要是一个站立的开枪动画和一个卧倒的开枪动画。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  如果从一个射击游戏来说,按道理开枪动画还有很多,比如一边走路一边开枪,一边跑步一边开枪,还有蹲下来的时候开枪,跳起来的时候开枪。
  这些动画,如果要一个一个的做,也挺多的。所以虚幻引擎提供了一个骨骼分层混合的功能,可以把两个动画混合在一起播放。比如我已经有了站立的开枪动画,我可以把这个动画从根据一定的条件,和走路的动画混合在一起,形成一个走路时的开枪动画。

二、分层混合的使用

  先从站立动画和开枪动画混合做起。虽然我已经有了站立开枪的动画,但实际上站立的逻辑可能会有很多,比如还有一些小动作、转身之类。而我需要控制的开枪动画,其实只是从某根脊椎骨开始的动画。所以做站立待机和开枪的混合,也是有意义的,可以让角色下半身的动作不便的情况下,只是上半身射击。
  进入动画蓝图,进入状态机,然后进入idle状态。这里添加一个“每个骨骼的分层混合”节点,英文是Layered blend pre bone。
在这里插入图片描述

  添加了这个节点之后,会发现里面有三个主要的输入,分别是Base Pose、Blend Poses 0和Blend Weights 0,很明显,Base Pose就是原始姿势,Blend Poses 0就是需要混合的姿势,然后Blend Weights 0就是混合的时候Blend Poses 0动画的权重
在这里插入图片描述

  也可以继续增加混合的姿势,点击添加引脚,就会发现,增加了Bend Poses 1和Blend Weights 1了。
在这里插入图片描述

  接下来,把原来的idle动作连到Base Pose 上。然后把站立的射击动作拖进来,连接到Blend Poses 0上。最后把输出连到Result上。
在这里插入图片描述

  为了控制什么时候需要混合动画,所以需要建立一个叫做Attacking的浮点变量,连接到Blend Weights 0上。之后,我们可以通过其他的蓝图去控制这个Attacking变量,而达到播放混合动画的效果。
在这里插入图片描述

三、指定需要混合的骨骼

  刚才说过,射击动作其实只需要某根脊椎骨开始的骨骼的动画。所以打开骨骼视图,找到脊椎骨。我这里找的是Spine1.
在这里插入图片描述

  鼠标右键——复制选定的骨骼命名:
在这里插入图片描述

  然后回到动画蓝图的idle状态,找到刚才添加的每个骨骼分层混合节点,然后在层设置里面增加一个元素
在这里插入图片描述

  把刚才复制的脊椎骨名称填到这里来。
在这里插入图片描述

  这时候,这个混合作用的就是spine1脊椎骨以下的骨骼节点的动画了

四、测试动画

  在动画预览编辑器里面,找到Attacking变量,当这个变量为0的时候,可以看到,左边的动画预览播放的是普通的idle动画,然后节点连线,只有Base Pose的连线在动。
在这里插入图片描述

  然后在预览里面把Attacking改为1,这个时候,会看到左边的动画预览的角色上半身已经变成了射击动作,而下半身的动作还是维持着idle的动画。
在这里插入图片描述

  仔细看节点连线,会发现现在两个动画都已经在输入到混合节点了。

在这里插入图片描述

五、复制动画混合到其他状态

  刚才只是做了待机动画和开枪动画的混合,接下来,需要把这个混合复制到别的动画状态,比如移动、蹲下、卧倒等。
  在idle状态机,选择除了idle动画节点和result节点以外的其他节点
在这里插入图片描述

  鼠标右键——然后拷贝
在这里插入图片描述

  打开状态机里面的walk状态,会发现这个之前做了动画混合空间,无所谓,直接Ctrl+V粘贴:
在这里插入图片描述

  然后把动画混合空间的结果放到Base Pose,把输出节点连到Result上。
在这里插入图片描述

  这个时候,移动就已经得到了和开枪动画混合的效果了,同样的操作,把其他可以开枪的状态都复制粘贴一下这个动画混合就可以了。

;