【UE】Contextual Anim实现处决动画QTE

ContextualAnimationk教程参考:vorixo.github.io/devtricks/contextual-anim

git仓库:github.com/EanoJiang/FinisherAnimQTE

PART 01 处决动画

动画序列与蒙太奇

确保动画序列开启Root Motion

设置动画蒙太奇的Montage Section

Attacker

1786436858979

Victim

1786441042385

插件

添加插件Motion Warping 和ContextualAnimation

1786437004425

1786436975098

角色蓝图Mesh

Player和Enemy都设置Rotation.Z为-90

1786439497166

Contextual Anim

创建DataAsset(Contextual Anim Roles Asset)

1786439614743

1786439794424

创建Contextual Anim Scene

新建AnimSet

1786440545062

1786440394637

1786440470870

1786440496052

设置AM_Attacker的Mesh属性

1786441203867

1786441160124

动画蒙太奇的MotionWarping点

设置MotionWarping点——Notify State

1786441289714

让MotionWarping点处于AM_Attacker的Enter阶段

1786441395992

处于AM_Victim的Enter阶段稍微靠后

1786503542192

设置好WarpTargetName

Warp Target Name 是 Motion Warping(运动扭曲) 中用于指定“要朝哪个目标进行根运动校正”的 标识名 。这是一个 FName 键。动画播放到这个带有 Skew Warp 的 Anim Notify State 区间时,系统会去角色的 MotionWarpingComponent 中查找名为 Attacker 的 Warp Target。找到后,会在该 Notify 的时间段内动态修正动画的 Root Motion,使角色尽量对齐到这个目标的位置和/或朝向。

1786441501408

1786503628628

BlendIn设置为Inertialization(带惯性)

1786503339808

记得在动画蓝图中添加Inertialization节点

1786503466064

回到Contextual Anim Scene,设置

1786503888132

点击更新Warp点

1786504318216

AnimNotifyBlueprint与触发事件

新建AnimNotifyBlueprint

1786609671056

添加函数继承ReceivedNotify接收通知

1786504432647

在Enemy的角色蓝图中添加球形触发器

1786505617504

1786505660180

添加碰撞重叠触发事件

1786523655182

1786523724255

1786524987229

添加推开敌人事件和重置事件

1786525086526

AnimNotifyBlueprint中的接收函数逻辑如下:

1786525352832

在AM_Attacker中的Exit阶段的末尾添加该AnimNotify

1786609629488

交互键

在Player的角色蓝图中添加交互键触发事件

1786525167068

最终效果

不按推开交互键

1786525857459

按交互键

1786525929243

PART 02 QTE处决动画

WidgetBlueprint UI

1786592308583

元素

1786592257923

1786676677260

UI动画

1786592331618

1786592342145

1786592353735

1786676630678

函数

1786592406972

1786592427118

1786676647923

1786933250522

1786933255292

BP_Player

1786678211709

WB_QTE_Setup

1786933301948

QTE_Events

1786933275571

QTE_Start

1786933230873

QTE_Update

1786678406301

QTE_Successed

1786678557955

QTE_Failed

1786679618721

Hide_WB_QTE

1786679656439

QTE_Filling

1786679864785

BP_Enemy

1786693347083

把原先Delay节点单独拿出来设置传入参数,这个就是QTE的持续时间

1786693260162

添加动画通知

1786694491530

1786694499511

添加到蒙太奇中

1786695640371

最终效果

QTE失败:

1786696074804

QTE成功:

1786696290435

PART 03 一些细节调整

让QTE交互键按下后才开始持续衰减

1786932794500

1786932840555

1786932828626

posted @ 2026-08-11 18:04  EanoJiang  阅读(110)  评论(2)    收藏  举报