EQS 是什么:在空间里"找最佳点"

EQS 的全名是 Environment Query System。当 AI 需要"站在哪"时,它给出系统化的答案。

没有 EQS 的时候

要做"远程兵找掩体":

  • 方案 A:在关卡里手工放几十个"掩体点",AI 遍历找最近的——工作量大、点位僵硬、关卡改动就失效;
  • 方案 B:蓝图里 Tick 搜索半径内的静态网格——性能差、逻辑写得痛苦、无法表达复杂偏好。

EQS 把这件事标准化:一次查询 = 一组候选点 + 一组打分测试。

一次 EQS 查询的流程

1. 生成器(Generator):产生候选点(圆形采样、网格、路径点……)
2. 情境(Context):定义参照物(查询者、目标、双方中点……)
3. 测试项(Test):对每个候选点打分(距离、视线、掩体性……)
4. 排序(Sort):按总分选出最佳项

打分结束后,行为树 / StateTree 拿到"最佳位置"写进黑板,AI 走过去。

典型应用场景

场景 查询目标
远程兵找掩体 既能藏住又离目标不太远的点
近战 Boss 绕侧 目标侧面 / 背后的点
掉落物巡逻 区域内均匀分布的点
治疗 AI 站位 队友附近且远离战场中心的点
守卫射击位 有视线且在武器射程内的点

EQS 与 AIPerception 的分工

系统 回答 数据性质
AIPerception 哪里有目标(Actor) 事实层
EQS 该去哪个位置 推理层

感知告诉 AI"敌人在那",EQS 告诉 AI"我该站哪打他"。两者常配合使用:EQS 的某个测试项可以是"该点能否看到目标(视线测试)"。