Apr 22, 2025
5 mins read
首先将lyra的动画导入到项目中,一共需要创建如下动画蓝图和动画层接口。
并勾选所需插件Animation Locomotion Library和Animation Warping。
CharacterBase用于绑定角色蓝图的动画
Lyra中用了**BlueprintThreadSafeUpdateAnimation
**线程安全的动画更新方法,用于在工作线程中执行高性能的动画计算,避免阻塞游戏线程。
这三个函数分别用来更新角色的朝向和转向、更新速度大小处理走跑和加速度数据起步和急停,需要勾选线程安全。
GetMovementComponent
函数用来返回角色的移动组件,用于Update Acceleration Data
函数中获取角色当前加速度。
动画事件中,四个状态:Idle、Start(开始走)、Cycle(行走循环)、Stop(停止走)
接下来新建动画层接口,在动画层接口中新建4个动画层,分别是FullBody_Idle
、FullBody_Start
、FullBody_Cycle
、FullBody_Stop
。
点击Idle等状态机,将动画层输出。
创建动画序列连接到输出,并且stop和start将LoopAnimation取消
新建LayersBase子蓝图
可以在右侧面板对动画赋值
之后在角色蓝图中新建动画层图标,运行PistolLayer,将网格体动画蓝图和这个动画层关联起来,同时PistolLayer又继承了LayerInterface,CharacterBase又关联了LayerInterface。
此时动画已经可以播放了,但是出现问题发现角色移动跑到一个地方又退回来,发现是根动画的原因。
将动画序列通过属性矩阵进行批量编辑,RootMotion启用根运动、强制根锁定。
Sharing is caring!