测试项与权重:打分的艺术

测试项(Test)是 EQS 的核心。一个简单的测试列表能表达非常细腻的战术偏好。

常用测试项

测试 作用 典型用途
Distance 与某情境的距离 保持射程 / 保持安全距离
Trace(射线) 两点之间是否被挡 视线测试、掩体测试
Path(寻路距离) 实际路径长度(不是直线) 真实可达性
Dot(点积) 方向对齐度 绕侧 / 绕背
Overlap 是否与某区域重叠 不要站在火场 / 毒圈里
GameplayTag 带某标签的Actor 智能对象可用性

打分的两种模式

  1. 加权评分(默认):各项给 0~1 分,加权求和;
  2. 过滤 / 必要条件:某些测试勾选"过滤"模式——不达标就剔除。必要的条件用过滤,偏好的条件用权重。
条件性质 配置方式 例子
必须 过滤(Filter) 点必须在 NavMesh 上
偏好 权重(Weight) 近一点更好

权重的调参经验

  • 权重是相对值,不是绝对值:权重 3 与 1 的差距意味着"宁愿放弃 3 分的距离优势也要掩体";
  • 先给关键项过滤条件(大多数候选点先被剔除),再让权重在小集合上排序——过滤比打分便宜,性能优先用过滤;
  • 复杂偏好(如"先看掩体再考虑距离")用"权重阶梯":掩体 10、距离 2、视线 1。

打分的可视化

EQS 查询编辑器里可以运行测试预览:场景里每个候选点显示为一个小球,颜色越绿分越高。调权重时打开这个视图,比看数字直观十倍。这也是 EQS 相比"手写搜索逻辑"的隐形优势——它自带可观测性。