返回 导航

UE5

hangge.com

UE5 - AI攻击功能实现教程1(发射魔法球远程攻击)

作者:hangge | 2026-08-21 08:39
    我在前文中演示了如何实现 AI 在发现目标时能环绕目标移动(点击查看),本文继续对其进行改进,让 AI 在环绕目标时对目标发动攻击。攻击的方式有很多种,包括近战攻击、远程攻击等,其中远程攻击需要在远处锁定并攻击目标,可以使用魔法、物理等攻击形式。本文以魔法球远程攻击为例进行演示。

一、发射魔法球远程攻击

1,准备工作

首先我们需要实现一个随机移动的 AI,并且 AI 发现目标后会围绕目标进行移动,具体实现步骤参考我之前写的文章:

2,创建魔法球材质

(1)在“内容浏览器”面板中新建一个材质并命名为“M_Magic”。

(2)双击打开“M_Magic”材质,按住 V 键并单击“材质图表”面板的空白处,新建一个“Param”节点,再新建一个“Multiply”节点;按住 1 键并单击空白处,生成一个“Constant”(标量)节点,将相乘的结果连接到“自发光颜色”引脚。
  • 将“Constant”(标量)节点“值”设置为 50.0
  • 将“Param”节点的“颜色”为蓝色(R:0.0,G:0.58,B:1.0)

(3)单击工具栏中的“保存”按钮与“应用”按钮,此时的材质球已经变成了蓝色的自发光球。

3,创建魔法球

(1)新建一个名为“BP_Magic”的“Actor”类蓝图,双击打开蓝图,在“组件”面板中添加一个球体组件并将其设置为根组件,在“细节”面板中勾选“模拟物理”选项。

(2)还是选择球体组件,在“细节”面板中设置“元素 0”为“M_Magic

(3)在“组件”面板中添加一个发射物移动组件,在“细节”面板中设置“初始速度”和“最大速度”均为 5000,“发射物重力范围”为 0.0

4,创建 AI 攻击任务

(1)打开“BT_AI”行为树,在工具栏中单击“新建服务”按钮新建一个服务,设置“命名”为“BTService_Attack”并单击“保存”按钮。

(2)在新建的“BTService_Attack”服务中单击“我的蓝图”面板中的“函数”右侧的“重载”按钮,执行“接收 Tick AI”菜单命令。让 AI 在使用服务时持续调用函数。

(3)接着添加“延迟”节点,设置“Duration”为 1.0,使得服务每一秒执行一次其中的蓝图;添加“生成 Actor”节点并连接“延迟”节点的“Completed”引脚,设置“Class”为“BP_Magic

(4)最后继续完善逻辑:
  • 添加“创建变换”节点并连接“Spawn Transform”引脚,添加“获取 Actor 向上向量”节点并用“乘”节点将返回值乘以 50.0,添加“获取 Actor 位置”节点,将该节点与“乘”节点的返回值相加后的结果连接到“Location”引脚上,连接“获取 Actor 位置”节点和“获取 Actor 向上向量”节点到“Controlled Pawn”引脚上。
  • 添加“获取 Actor 旋转”节点并将其连接到“创建变换”节点的“Rotation”引脚和“事件接收 Tick Al”节点的“Controlled Pawn”引脚上,设置“Scale”为(X:0.2,Y:0.2,Z:0.2)。注意:这里 Scala 设置是把球体体积变为默认的 1/5,否则魔法球会太大。

5,修改行为树

(1)双击打开“BT_AI”行为树,使用鼠标右键单击“Task_SideMove”节点,执行“添加服务>BTService Attack”菜单命令添加一个服务。

(2)添加服务后整个行为树如下:

6,运行测试

(1)进入 SIE 运行模式,可以看到 AI 一开始还是随机移动。

(2)当 AI 观察到石头后就会以石头为圆心,逆时针环绕石头移动。并且会每隔 1 秒钟对石头发射一个魔法球


附:添加魔法球击中特效

1,准备工作

    接下来我们需要对前面的样例效果进行优化,让魔法球在碰撞到物体时播放一个击中特效,同时删除魔法球本身。这里我们使用 Fab 商城里面“Realistic Starter VFX Pack Vol 2”这个免费库中的爆炸特效。具体安装步骤可以参考我之前写的文章:

2,修改魔法球蓝图

(1)双击打开“BP_Magic”蓝图,选择“组件”面板中的球体组件,在“细节”面板中勾选“模拟生成命中事件”选项。

(2)在“细节”面板中找到“组件命中时”事件,单击“添加”按钮,让组件在命中时调用该事件。

(3)添加“在位置处生成发射器”节点并连接“组件命中时(Sphere)”节点,使用“获取 Actor 位置”节点连接“Location”引脚,让粒子特效在魔法球所在位置生成,设置“Emitter Template”为 “P_Explosion_Big_C”。同时在播放完粒子特效后,使用“销毁 Actor”节点销毁魔法球。

3,运行测试

(1)当 AI 观察到石头后就会以石头为圆心,逆时针环绕石头移动。并且会每隔 1 秒钟对石头发射一个魔法球

(2)当魔法球碰撞到石头时会产生爆炸特效。


评论

全部评论(0)

回到顶部