用途:本技能用于实现 NPC 决策层。行为树(BT)以树结构表达有优先级、可中断的反应式逻辑,每步被 tick;Utility AI 则对每个候选动作打分并选最优。二者可组合:用 BT 管结构,用 Utility AI 处理需要权衡的选择。若要在 FSM/BT/转向/寻路之间选型,或做 A*、导航网格寻路,应改用 game-ai;Unreal 资产式行为树用 unreal-behavior-trees;移动 NPC 用 unity-navmesh 或引擎导航节点。
主要能力:构建可复用 BT 运行时,含 Blackboard、Node 基类、动作/条件叶节点、Sequence/Selector/Parallel 组合节点,以及 Inverter、Cooldown、Repeat 等装饰器;构建 Utility AI 决策器,含响应曲线、考虑项(consideration)与评估器(argmax、softmax、加权随机);构建混合 AI,由 BT 叶节点把“选哪个攻击/目标”交给 Utility 评估器。
使用方式:先选模型,再设计 Blackboard(每个智能体一个带类型的键值存储,解耦节点)。条件叶立即返回 Success/Failure,动作叶跨帧返回 Running 直到完成。Selector 为 OR/回退,Sequence 为 AND,Parallel 处理并发分支,装饰器施加策略。Utility 侧枚举考虑项,把原始事实经归一化 0..1 曲线映射后组合(加权乘积加补偿或加权和),再选最大值,并加滞回避免抖动。每个决策步 tick 一次,保留 Running 状态,调参时在屏幕上绘制活动路径与各动作分数。
限制与注意:从根每帧重 tick Running 动作会重启它;深树整体重评估浪费性能并导致抖动,宜用浅树与条件中止;考虑项必须归一化到 0..1,否则大范围值会主导;近似平局时加滞回;每 tick 分配节点、闭包或数组会造成 GC 峰值,应在生成时建树并保持每 tick 无分配。完整 C# 实现见 references/behavior-tree-core.md、utility-ai-system.md、practical-examples.md、best-practices-and-pitfalls.md。