跳到主要内容

核心概念

行为树(Behavior Tree) 是一种描述智能体决策逻辑的模型。它是一棵由节点构成的树,从根节点开始自上而下地求值(tick)。每个节点被 tick 时返回一个状态

  • Success(成功) —— 节点完成了它的目标
  • Failure(失败) —— 节点未能完成目标
  • Running(运行中) —— 节点需要更多次 tick 才能完成

父节点根据子节点返回的状态来决定下一步动作。这使得行为树易于理解、模块化且可复用。

节点类别

编辑器中的每个节点都属于以下四类之一:

类别作用
组合(Composite)控制多个子节点之间的流程(如 Sequence、Priority)。可有多个子节点。
装饰(Decorator)修改或包装单个子节点的结果(如 Inverter、Repeater)。只有一个子节点。
动作(Action)叶子节点,在世界中执行某件事(如 MoveTo、Attack)。没有子节点。
条件(Condition)叶子节点,检查某个条件并返回成功/失败(如 IsHungry)。没有子节点。

一个简单示例

Priority
├── Sequence
│ ├── IsEnemyVisible (条件)
│ └── Attack (动作)
└── Patrol (动作)

如果能看到敌人,智能体就攻击;否则就巡逻。

Tick(求值)

当树被 tick 时,求值从根节点开始,并按照各个组合节点的规则向下传播。编辑器让你以可视化方式设计这个结构 —— 详见节点类型中的内置节点。