← ALL ARTICLES
游戏AI3 MIN READ

群体战术信息

全库目录221
本文目录7

敌人离开视线后,NPC仍需要记住最后位置,却不能把这份记忆当作实时坐标。群体战术信息先保存允许观测的事实,再把威胁写入空间场,按时间衰减并沿可通行邻接传播。决策查询的是带来源和时效的信息,而不是直接读玩家组件。

事实与空间场

每次观测保存目标ID、最后位置、发生时间、来源与置信度。队友共享可以形成新的事实来源,但也要遵守阵营通信与感知权限。一次视线丢失以后,目标真实位置继续变化,最后位置则保持不动并逐渐降低可信度;直接每帧读取玩家位置会绕过这条信息边界。

影响图把威胁、资源和控制力放在独立图层。威胁高不等于资源多,把两者提前混成一个数会丢失决策含义。掩体点、射击位与观察点再结合局部场值、可达距离和队友占用评分,产生候选请求。最终是否可站立、是否有视线仍由导航和场景查询判断。

双缓冲传播

固定一个一维或规则网格模型:每格旧值为F,k控制本轮分给邻居的比例,decay控制跨时间保留,S为本轮获准观测的源。邻居按有效邻接取平均,无邻居时用自身。每格只读取旧缓冲,写到新缓冲:

Finew=decay[(1−k)Fiold+kmean⁡j∈N(i)Fjold]+SiF_i^{new}=decay[(1-k)F_i^{old}+k\operatorname{mean}_{j\in N(i)}F_j^{old}]+S_i

两项参数均在[0,1]。取三格旧场[0,8,0]、k=0.5、decay=0.5、源为零。两端各只读中间,中间读两端平均,因此新场为[2,2,2]。若从左到右原地覆盖,左端先变2,中间接着读取这个新2与右侧旧0而变2.25,右端又读取新2.25而变0.5625,结果出现与遍历方向相关的不对称。交换双缓冲解决的是同轮一致性。

有效邻居平均不保证有限边界上总量守恒,场值也不直接表示物理能量。若项目需要守恒传播,应按边定义对称通量并相减更新;本页使用的平均模型只服务于战术评分。墙体若仍在邻接中,威胁会穿墙传播;改用导航区域的可通行邻接,再按视线规则决定源注入,才符合对应语义。

时间记忆与持续源

空间扩散的k决定每轮影响范围,时间decay决定记忆保留。希望半衰期H秒、更新间隔dt秒时,取decay=2^(-dt/H)。关闭所有源以后,只要传播算子保持常量,全图常量会在H秒后降为一半。更新频率改变时重算decay,才能避免NPC仅因帧率降低就记得更久。

持续注入还要定义源的单位。若S是每轮固定增量,单格无空间变化时满足Fnew=decay*F+S,平衡值为S/(1-decay)。例如decay=0.5、每轮注入2,从0开始依次为2、3、3.5,趋近4。源幅度2并不是场峰值2。若希望改变更新频率仍保持注入速率,应由每秒源率计算本轮增量,并重新检查平衡与半衰期。

查询、预算与协作

只读取一个格子会让角色跨边界时分数跳变。可以对周围格子插值或做归一化邻域积分,但查询支撑范围也会增加传播距离;把实际权重与边界一并记录。返回值附带最后观测年龄和置信度,决策层因而能区分“危险仍高”和“目标现在确实可见”。

大量NPC先通过 空间索引 获取邻近候选,再按重要性安排视线查询;感知更新频率与场更新频率分别记录。局部队形可由分离、对齐和聚合产生,但它们不了解窄门的全局通行权。路径走廊、局部避障与预约策略由 游戏AI导航 负责,战术场只提供代价或候选,不能替代可达性。

验证与证据

用[0,8,0]分别正向与反向遍历,两次双缓冲结果应相同;原地版本应暴露不对称。关闭源检查半衰期,持续单格源检查趋近4,加入隔墙检查邻接是否阻断。沿格边移动查询点,记录评分连续性和观测年龄,最后用丢失视线的目标检查NPC没有偷偷更新真实位置。

本文是明确参数的离散设计与手算示例,未执行完整群体模拟或设备性能测试。原作者的转向行为资料支持局部群体行为职责,影响场更新与时间源模型由本文直接定义;实际预算与玩法效果需要目标场景运行。

相关主题

参考资料