Bootstrap

UE5——AI追逐(蓝图、行为树)

使用蓝图和行为树完成一个AI看到玩家后进行追逐的效果,关于如何制作AI、寻路设置、行为树等这些在随机漫游里都有记录。

一、AI原理

AI的处理过程可以分为三大阶段:感知——思考——行动

(1)感知

对AI当前状态作记录。
“基本过滤”也是一种感知行为。
基本过滤 - 如果其他感知的优先级更高,会忽略部分信息

(2)思考

AI利用感知阶段收集到的信息,对当前信息和目标进行评估,为之后的行动指明方向。

(3)行动

根据感知阶段的信息和思考阶段的决策,AI在行动阶段对信息做出相应的行为。
行动阶段结束后,AI会再次回到感知阶段。
行为有可见的,如跳跑;也有不可见的,如通信。

制作的方法围绕着这个原理:
1.感知——给与AI视觉感官,AI看到玩家。
2.思考——AI在角色蓝图进行决策,并通过控制器将感知到的数据通过黑板传给行为树。
3.行动——行为树决定AI是否追逐玩家。

二、AI感知

设置好AI角色蓝图、控制器蓝图、寻路后,就可以开始制作AI追逐了,随机漫游的部分可做可不做。

(一)添加视觉

1.创建视觉感官

为AI增加AI感知组件:打开AI角色蓝图 - 在组件面板增加AI perception感知组件

  • 感官配置 - 多少数组代表AI拥有多少感官
    在这里插入图片描述
    细节 - AI感知,在感官配置栏添加数组 - 数组类型选AI sight Config(AI视力配置)
    在这里插入图片描述在这里插入图片描述
2.按归属检测 -勾选“检测中立方”
  • 系统默认为中立,所以给玩家选为中立方以便检测
    在这里插入图片描述
  • 最大年龄 - 与多久前见到的最后一个目标有关
3.把玩家标记为刺激源

这样AI就能感知到,不然AI看不到玩家。
打开玩家角色蓝图 - 在组件面板添加AI感知刺激源组件。(不要选成感知组件了)
在这里插入图片描述
细节面板 - AI感知 - 勾选“自动注册为源”、添加数组、类型为AISense_Sight
在这里插入图片描述

(二)Gameplay调试感官

给AI设置好视觉后,我们还要在Gameplay中调试感官是否能够正常感知到玩家。
在使用Gameplay调试器之前,先禁用AI蓝图事件让AI停止移动,这样有助于处理感知系统。(如果做了随机漫游要断开,没做可以不用管)

1.停止AI移动

打开AI蓝图 - 对“事件开始运行”的引脚按Alt断开,停止调用随机漫游事件
在这里插入图片描述

2.关闭TAA临时抗锯齿选项
编辑 - 项目设置 - 引擎 - 渲染 - 默认设置 - 抗锯齿方法,勾选“无”
(其实不开也没什么问题)

  • TAA临时抗锯齿 - 会把若干帧混合在一起,Gameplay的调试线条这类单像素线条很难观察到。

在这里插入图片描述

3.调试感官

运行游戏 - “‘”调出控制台 - 4打开感知信息

  • Sight:1 - 可被看见
  • Age:多久前更新的信息
    【0】 - 最新的信息。

离开后,年龄开始增加。球体表示最后的位置。
在这里插入图片描述
在这里插入图片描述

在AI蓝图中调整视线半径和失去视线半径数值。

;