【AI笔记】UE5 EQS环境查询系统核心速查手册

一、 系统概述

EQS 是 AI 进行空间决策的“雷达和法官”。它专门回答复杂的空间战术问题(如“躲哪里”、“退哪里”、“从哪包抄”)。其核心运作依赖三大支柱

  1. 生成器:凭空变出候选点。
  2. 测试器:负责剔除和打分。
  3. 上下文:提供参考坐标系。

二、 生成器 (Generators) —— 提供候选方案

生成器是 EQS 的根节点,负责产出供后续评估的“候选点(Points)”或“候选对象(Actors)”。

🌐 生成器类型 核心机制 ⚔️ 策划实战场景
Points: Grid
(网格点)
在查询者周围铺设一张由无数点组成的方形网格。 寻找附近的随机巡逻点;寻找躲避手雷的安全区域。
Points: Circle / Donut
(圆环/甜甜圈)
以查询者为圆心,生成一圈或多圈候选点。 Boss 想要和玩家拉开距离放风筝;刺客寻找环绕玩家的包抄点。
Points: Cone
(锥形范围点)
在查询者正前方(或指定方向)生成扇形/锥形区域的点。 判断 AI 前方扇形 AOE 技能的最佳释放位置(寻找能覆盖最多敌人的点)。
Actors of Class
(特定类 Actor)
直接把场景里特定类的实体捞出来作为候选对象(不生成虚拟点)。 寻找场景里散落的血包;寻找周围可以互动的爆炸物。

三、 测试器 (Tests) —— 条件过滤与打分

测试器就像“漏斗+打分表”,负责把不合格的点 剔除 (Filter),并给剩下的点 打分 (Score)

🎯 测试器类型 核心机制 ⚔️ 策划实战场景
Trace
(射线检测)
判断点与点之间是否有物理遮挡。 找掩体:测试候选点到玩家是否有墙体遮挡。有则得高分,无则直接剔除。
Distance
(距离)
测量候选点到目标(如玩家)或查询者自身的直线距离。 远程弓箭手寻找远离玩家的点(越远越高分);近战寻找靠近玩家的点。
Pathfinding
(寻路路径)
调用导航网格(NavMesh)计算实际走路过去的代价。 真实可达性:直接剔除“直线距离很近,但中间隔着悬崖走不过去”的无效点。
Dot
(点乘/朝向)
利用向量点乘原理,判断方向的一致性。 绕后背刺:寻找位于玩家“视野盲区(背后)”的点。面前低分,背后高分。

四、 上下文 (Contexts) —— 核心参考系

Context 就是 EQS 进行计算时的 “坐标原点”。系统必须知道“离谁远/以谁为中心”。

1. 引擎内置 Context

内置 Context 实际代表谁? 💡 实战用法
EnvQueryContext_Querier AI 自身 以 AI 自身为中心生成网格逃跑;测量候选点到 AI 自己的距离。
EnvQueryContext_Item 当前正在被打分的“候选点” EQS 内部大循环的当前对象。通常作为测试器测量的默认端点。

2. 策划自定义 Context (蓝图扩展)

创建方法:新建蓝图继承 EnvQueryContext_BlueprintBase

自定义 Context 蓝图内部获取逻辑 💡 战术实战效果
Context_Target
(目标玩家)
读取黑板上的 TargetActor 将圆环生成器的 Center 设为它,让 AI 在玩家的周围生成一圈包抄点。
Context_HomeBase
(防守阵地)
读取黑板上的 HomeLocation 测候选点到出生点的距离,越远扣分越狠。形成完美的**“防拉脱战(狗链子)”**机制。