StateTree 的核心模型

一句话概括 StateTree:层级状态机,每个状态里可以跑一棵小行为树。它把状态机的"阶段清晰"和行为树的"表达力"拼在了一起。

四个核心概念

概念 作用 类比
State(状态) AI 当前处于的阶段(巡逻 / 战斗 / 撤退) 状态机的状态
Transition(转换) 状态之间的跳转条件 状态机的边
Event(事件) 触发转换或状态内行为(如"感知到敌人""受到伤害") 事件驱动
Task(任务) 状态内的具体行为 小行为树

与行为树的对比

维度 行为树 StateTree
"我在哪个阶段" 隐含(靠当前激活节点推断) 显式(当前 State 就是答案)
阶段切换 靠装饰器与中断,间接 Transition,直接
状态内复杂行为 强 同样强(内嵌行为树 / Task 列表)
学习曲线 低 中
编辑器可视化 树形 状态图 + 树形混合

什么时候 StateTree 明显更划算

  • 阶段鲜明的 AI:Boss 战的多阶段(血量高时阶段 A、血量低进入狂暴阶段 B)——用行为树表达就是一堆"血量装饰器",用 StateTree 就两个状态 + 一条转换;
  • 需要跨阶段共享情报:StateTree 的参数在状态间自然传递;
  • 与技能系统结合:技能施加"眩晕"效果 → 广播事件 → 转换到眩晕状态,非常自然。

StateTree 的运行规则速记

  1. 同一时刻只有一个"当前状态"(层级结构下每层一个);
  2. 进入状态时执行进入任务,离开时执行退出任务;
  3. Transition 的条件满足时跳转(可设优先级);
  4. 事件(Event)可以立刻触发 Transition,也可以排队在状态内处理。

详细的执行语义(选择器 / 评估频率 / 值类型)见官方的 状态树选择器概览。