- 动画蓝图中的AnimationLayer是干啥的?
- 使用范例
- 小结
AnimationLayer这个名字挺容易让人误解,它直译过来是动画层。第一感觉是不是类似Maya里的AnimationLayer?或者UE4里LayeredBlendPerBone中的那个Layer?其实都不是,UE4中的AnimationLayer更类似动画系统中的“函数”,它的作用是把一部分AnimGraph封装成一个模块。然后再通过LinkedAnimLayer节点来“调用”。
使用范例以下图为例,中间被标注的部分是一个独立的功能模块,我想把它转换成AnimationLayer
先定义一个AnimationLayer,本例中我定义了一个AnimationLayer并命名为“MyAnimLayer”,AnimationLayer的使用方法和普通蓝图中的函数很相似,可以添加若干个输入节点。
要使用刚定义的“MyAnimLayer”,只需要在原来的地方添加一个LinkedAnimLayer节点,然后再Detail面板上指定Layer 为“MyAnimLayer”就可以了。
但是要注意,虽说UE4中的AnimationLayer有点像函数,但它并不像函数那样直接可以重复使用,如下所示,定义了两个“MyAnimLayer”的AnimationLayer编译时就会报错。所以要复用一个模块的话依然要使用SaveCachedPose和UseCachedPose节点。
AnimationLayer有类似函数的封装功能,但是本身不能直接复用。所以它的主要的用途是将复杂的蓝图拆分成一些模块,更便于管理和阅读。