【AI笔记】【UE5】EQS环境查询系统学习笔记
【AI笔记】UE5 EQS环境查询系统核心速查手册
一、 系统概述
EQS 是 AI 进行空间决策的“雷达和法官”。它专门回答复杂的空间战术问题(如“躲哪里”、“退哪里”、“从哪包抄”)。其核心运作依赖三大支柱:
- 生成器:凭空变出候选点。
- 测试器:负责剔除和打分。
- 上下文:提供参考坐标系。
二、 生成器 (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。 |
测候选点到出生点的距离,越远扣分越狠。形成完美的**“防拉脱战(狗链子)”**机制。 |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 橙菌!



