【UE4】实例分析-动画蓝图、瞄准偏移、状态机是如何搭配构建动画系统的
本文转自我的公众号—游戏开发手账
转载请标明出处
下载了一套动画素材,分析一下这种较复杂的素材中,角色蓝图事件图表中的事件触发是如何通过更换动画蓝图、状态机状态迁移、播放动画及AimOffset等,转为最终对应的动画表现的。
问题描述:
在将动画包应用到自己的工程中时,我们可能会遇到下图这样的问题:
- 初始时我们的Characterk可以正常跑步🏃♂️向鼠标点击的地面处移动
- 我们可以正常使用动画包中的事件触发动作
- 但是在此之后,再次进行点击地面移动时,人物原本的跑步动画失效,而是直接平移到目标位置
- 此时其他动画包中的动作🤺及移动🚶♂️仍然正常
看完上述的问题描述以及gif中的表现,相信对动画比较熟悉的朋友们已经可以大概定位到可能出现的问题位置,并进一步根据实际工程中的动画蓝图内容,检查事件触发及状态转移,最终将问题定位。
但如果对动画、动画蓝图、状态机各部分结构不是很清晰,甚至对从Character触发按键⌨事件到最终动画表现的整个流程感到很模糊,这样定位问题仍是很棘手的🤷♂️。
结构分析:
对于此案例,所使用的Character Blueprint事件图表整体结构如下:
change pose部分负责在按键事件触发时,调整pose index,更改此Character的动画实例类(Anim Instance Class)—ABP_Transitions
,并将此index传递给ABP_Transitions
。
这里不同的pose代表Character以不同的基本状态进行站立,可以类比于在一些游戏中,当人物的血量或疲劳值低于某个阈值时,人物的基本站姿会从比较挺拔的状态变为疲劳状态。
由于动画包中有许多动画蓝图类,而在Character事件图表中仅与ABP_Transition
进行关联,并将不同的索引传递进去,这样我们可以猜测,ABP_Transition
是一个作为控制Character从初始pose转移到其他所有pose的中继点。
我们再看一下Character Blueprint事件图表结构图中的第二部分:change action events部分。