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

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

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

1786440470870

1786440496052

然后新建AnimSet

1786440545062

1786440394637

设置AM_Attacker的Mesh属性

1786441203867

1786441160124

动画蒙太奇的MotionWarping点

设置MotionWarping点——Notify State

1786441289714

让MotionWarping点处于AM_Attacker的Enter阶段

1786441395992

处于AM_Victim的Enter阶段稍微靠后

1786503542192

设置好WarpTargetName

Warp Target NameMotion 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

BP_Player

1786678211709

WB_QTE_Setup

1786677806261

QTE_Events

1786679629724

QTE_Start

1786678171193

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

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