UE的动画蓝图中还有一项较冷门的功能Animation Layers。该功能并非动画的叠加播放或是强制同步时间播放(同步时间用SyncGroup)。该功能相当于是动画“插槽”+“子节点"的合并。
1.创建Animation Layer
点击动画蓝图右下角Animation Layers的加号,添加新的动画层
2.使用Animation Layer
新建节点Linked Anim Layer,关联刚刚创建的Layer:
是不是和Linked Anim Graph一样:https://blog.csdn.net/grayrail/article/details/129812662
但往下看,会发现不一样的用途。
3.使用Animation Layer Interface
该功能类似"Slot”,可以动态装载卸载某Layer节点,也相当于代码中的接口替换。
首先,右键创建对象Animation Layer Interface:
创建2个新的动画蓝图,分别实现刚刚定义的接口,一个绑定走路动画,一个绑定跑步动画:
回到主蓝图,也实现一下刚刚定义的接口,添加节点Linked Anim Layer,神奇的事情发生了,接口节点实现可以进行替换:
我们还可以在蓝图里单独对这一步进行逻辑处理,根据执行逻辑选择应该替换哪一个:
UE Animation Layers Interface相关文档页:
https://docs.unrealengine.com/4.27/en-US/AnimatingObjects/SkeletalMeshAnimation/AnimHowTo/LinkedAnimBP/