UE5 使用动画模板创建多个动画蓝图

我们制作游戏的时候,角色会根据不同的武器表现出来不同的攻击动画,待机动画以及移动动画。如果我们在UE里面实现这个需求,是通过复制粘贴的方式修改,还是有更好的方式。

这里就需要介绍一下动画模板,我们可以将动画蓝图相同的内容放置到一个动画模板内,去修改需求也就不会需要单独的去修改每个动画蓝图。(尤其是角色资源数量特别多的时候,只需要修改动画模板即可。)实现代码的复用性。

接下来实现一个简单的动画模板创建多个动画蓝图。

在创建动画蓝图时,我们不选择特定骨架,而是直接选择模板,先创建一个通用的模版

创建一个状态机,里面用于更新角色移动状态,slot插槽则用于播放蒙太奇。

在状态机里面添加一个状态,输出当前动画状态播放的动画。

在状态里面,我们需要添加一个混合空间播放器,而不是指定一个特定的混合空间。这个实际使用的混合空间资源我们将在角色自身的动画蓝图中设置。

混合空间还需要一个速度值进行更新,所以我们还需要再事件图表中实现速度的更新,并传递给混合空间播放器。

在事件图表这里,首先你需要重载蓝图初始化动画函数。

初始化时,主要获取到动画蓝图所有者的角色移动组件,并保存为变量。

在帧更新里面,获取角色移动组件是否存在,然后获取到角色的这一帧的移动长度,并转换为速度。这个速度的值将在动画状态更新时被使用。

到这里,一个简单的动画模板创建完成,接下来,我们将基于这个模版创建动画蓝图使用。

在创建指定骨架使用的动画蓝图时,我们需要指定父类使用前面创建的动画蓝图的模板

打开以后,我们首先要进行资产覆盖,设置当前骨架使用的混合空间(案例使用了两个,拿着不同武器的混合空间)

如果查找不到,记得在窗口中打开资产覆盖编辑器。

如果设置的正确,则左侧的模型将会播放动画。如果需要多个,我们可以使用相同的方式去创建蓝图即可。

相关推荐
zhangzhangkeji5 天前
UE5 C++(71):文件是否存在,文件夹是否存在,FPaths :: FileExists( const FString & InPath) ;
ue5
妙为6 天前
UE5角色穿过石头穿模
ue5·unreal engine5·角色穿越石头·穿模
技术策划Boring7 天前
2025年工作复盘:开放世界3A项目配置管线与性能监控的探索
游戏·ue5·虚幻·p4·perforce
zhangzhangkeji8 天前
UE5 C++(70-2):定义成员函数 getCleanDirectory(..) 和枚举类 EFileDirectoryType,来获得目录
ue5
avi91119 天前
UE4-UE5虚幻引擎-前置学习三,优化,基础CPP
ue5·ue4·游戏开发·虚幻·游戏优化·游戏代码
zhangzhangkeji10 天前
UE5线程进阶(3-2):任务图的相关源码整理。 FGraphEvent 与 TGraphTask 的区别和联系
ue5
zhangzhangkeji11 天前
UE5线程进阶(3-1):
ue5
zhangzhangkeji11 天前
UE5线程进阶(2-3):enum ENamedThreads命名空间 :: Type : int32 { RHIThread = 0 } 是渲染硬件接口线程
ue5
zhangzhangkeji12 天前
UE5线程进阶(2-1):枚举类EAsyncExecution,作业类TAsyncRunnable、TAsyncQueuedWork,及全局线程函数 Async(..),及线程调用的 4 种方法总结
ue5
zhangzhangkeji13 天前
UE5线程进阶(1):
ue5