虚幻动画 | 让角色动起来,实现一个简易的走、跑、跳状态机

本文介绍了如何在虚幻引擎中使用动画蓝图和状态机,从准备角色素材开始,逐步创建和设置动画,实现角色的走、跑、跳等基本动作。通过状态机管理动画状态,根据角色速度和跳跃情况切换不同动画,为新手提供了理解虚幻动画系统的基础教程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本篇内容将简单介绍如何借助蓝图控制角色,利用现成的素材,从0到1实现一个简易的"走、跑、跳"状态机。目的是让新手更快速清晰地了解虚幻动画系统的运作流程,因此涉及到的内容也比较简单,作为刚开始入门了解虚幻动画的起点还是很不错的。那么废话少说,开始吧!

先放Demo:

一、 准备虚幻角色素材

提前准备好一个有动画、有骨骼绑定、能在虚幻引擎中使用的角色素材。将素材包下载下来,解压缩,直接拷贝到创建好的工程文件中,如下所示:

 

二、准备工作:素材准备、蓝图创建、角色切换

1. 分析角色素材包,拷贝素材

打开素材包,我们能够看到角色的模型,材质球,动画都分门别类地放在了各自所属的文件夹下。为了方便演示,在Content下面又新建了DemoTest来放所有会用到的素材。

(1)  Kaoru -> mesh

在mesh的文件夹下,可以发现当前素材包里带有骨骼的角色模型。

选择我们会用到的骨骼模型(SM开头),拷贝并移动到新建的文件夹(DemoTest)里,方便我们使用。

(2) Kaoru -> Animation

找到Animation的文件夹,我们可以发现当前角色拥有的所有动画状态,双击可以看到整个动画序列。

选择Jump、Run、Idle、Walk四种动画状态,拷贝到DemoTest文件夹下,并改名。最终是下面的状态。

2. 创建角色和动画蓝图

在整个动画系统中,由于角色和动画的行为是分离的,因此通常会先由Pawn和Character蓝图作为核心,接收用户的输入,并让用户执行特定的行为。再通过动画蓝图pawn或character蓝图那里获得当前角色的状态,并根据获得的数据决定角色播放的动画。动画蓝图中的事件图表(EventGraph)就是专门用来获取角色状态的,而动画图表(AnimGraph)是专门用来决定播放什么动画的,动画蓝图的决策依据就是状态机。

(1) 创建动画蓝图,在文件夹下空白处右键创建AnimBlueprint,并选中附加的骨骼。动画蓝图命名为SK_Kaoru_Skeleton_AnimBlueprint。(PS: 当然,这只是创建动画蓝图的其中一种方法。)

(2) 创建角色蓝图,命名为MyCharacter。

 设置角色模型:选中Mesh,在属性栏里面找到Skeletal Mesh,选择我们需要添加的角色。将角色拖到胶囊体合适的位置,并旋转角色方向,让其朝向蓝色箭头出发方向。

 快速设置事件图表:直接套用模板,将工程文件里第三人称的事件图表内容拷贝到角色蓝图的事件图表(EventGraph)里。

 修改摄像机状态:添加弹簧摇臂(SpringArm),使其摄像机跟随角色的移动而移动。

 将动画蓝图附加到角色蓝图上面。

选中mesh,找到Animation mode,切换到Use Animation Blueprint,选择刚刚创建好的动画蓝图(SK_Kaoru_Skeleton_AnimBlueprint)

设置好之后,如下所示:

3. 准备好了素材,接下来,把角色放到场景当中。


【Troubleshooting】

可是此时run游戏,我们仍然发现并没有切换成角色,还是默认第三人称。

此时我们删掉playerstart,并在角色蓝图里mesh属性栏找到pawn,切换成player0。

 

这个时候再run,发现就是理想效果了。


三、实现一个简单的站立、跑、跳的状态机。

若要想在动画系统里表现多个动画状态,就需要使用到状态机。状态机将动画整理为几个状态,每个状态代表了一种动画。它会不断地根据角色的状态去决定播放什么状态的动画,状态之间可以自定义规则。通过状态机去决定动画的播放可以极大的提高效率。

(1) 下面我们打开动画蓝图,设置动画蓝图的事件图表EventGraph。

在这里我们借助角色蓝图的动作状态,获取信息,输出后面需要用到的变量:isfalling,speed。后面的状态机我们将借助这两个变量判断动作状态。

(2) 打开动画蓝图的动画图表AnimGraph,设置状态机。

① 状态机描述:中间的往返箭头符号代表定义的规则。假设有三种状态: 闲置/走路、跑步、跳。这个状态机就表明,在闲置走路跑步时,当前进速度达到500时,会开始跑,速度小于500时,会从跑变为走。当点击空格时,会判断是否需要跳跃。跑的过程中可以跳,走路过程中也能跳跃,当没有跳时,切换成走。

② 状态机-Idle/walk state:闲置/走路状态,是利用混合空间实现的。

③ 状态机-过渡规则

双击其中一个,速度大于500的情况:

 

双击另外一个,判断当没有跳时的情况:

  

设置好规则,就完成啦!大功告成!*★,°*:.☆( ̄▽ ̄)/$:*.°★* 。

参考视频:

Introduction - Your First Hour with Animation (epicgames.com)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值