行为树(behavior tree)是用来实现非人工角色复杂行为的工具,它具有下面这些特征:

行为树是树:执行时从根结点开始按照指定的顺序遍历,直到到达终结状态。

叶子结点都是可执行的行为:叶子结点会进行具体的操作,可以是一个简单的检测操作,也可以是一个更复杂的操作,结点会返回状态信息(成功,失败,运行中)。

内部结点控制树的遍历:内部结点会根据孩子结点返回的状态信息,按照特定的规则确定下一个执行的结点。

FSM,即有限状态机(Finite State Machine),是一种状态转换模型,它把游戏实体看成一个状态机,每个状态都对应着一种行为。FSM中的状态是有限的、确定的,它们之间的转换是通过接收到特定的输入来触发的。在游戏中,FSM通常被用来管理游戏实体的基本行为,例如角色的行走、跳跃、攻击等。FSM的设计思想简单、易于理解,但是当状态过多时,FSM的实现会变得复杂,难以维护。

行为树(Behavior Tree)是一种树形结构,它将游戏实体的行为表示为树中的节点。节点分为两种类型:行为节点和控制节点。行为节点表示游戏实体具体要执行的行为,例如攻击、移动、跳跃等;控制节点用于控制行为节点的执行顺序和条件,例如序列节点、选择节点、并行节点等。行为树的优点在于能够表达复杂的逻辑和策略,并且非常灵活,容易扩展和修改。行为树在游戏中被广泛用于控制NPC、AI角色和其他非玩家实体的行为。

行为树可以看作是FSM的扩展,它能够表达更为复杂的行为和逻辑,也可以包含多个有限状态机。在行为树中,每个节点可以是一个FSM,也可以是其他类型的节点,这些节点之间可以互相嵌套和组合,形成一个复杂的状态机。行为树的可扩展性和灵活性使得它在游戏开发中得到了广泛应用,成为了管理游戏实体行为的一种重要工具。