游戏开发之-AI行为树

行为树图:


     游戏开发之-AI行为树_第1张图片

行为树节点(Behavior Tree Nodes):
·   
选择节点(Selector: 顺序执行子节点,只要它的一个子节点返回true,则整个分支返回true,反之返回false,类似程序中的逻辑或(OR)。
·   
顺序节点(Sequence) :顺序执行子节点,只要它的一个子节点返回false,则整个分支返回false,反之返回true, 类似程序中的逻辑与(AND)。
·   
条件节点(Condition : 属于叶子节点(该种节点不允许有任何子节点),用于描述一个条件是否成立。
·   
行为节点(Action : 属于叶子节点(该种节点不允许有任何子节点),用于描述一个最终执行的动作,一般返回true

其中选择节点(Selector), 顺序节点均属于组合节点。组合节点是一个分类概念,并非指一个节点的实例。

实现行为树(Behavior Tree):

     状态机(State Machine
  说到状态机的概念,也许很多程序员都相当熟悉。就拿上面的行为树来说,仅仅是描述了一个怪物的AI,但其中涉及的状态可谓不少。在传统的设计思路中,玩家进入怪物的视野时,怪物的状态将会马上发生改变而从主动攻击玩家。(感知系统)

  状态(State),指的是对象的某种形态,在当前形态下可能会拥有不同的行为和属性。

状态机(State Machine),指控制对象状态的管理器。对象的状态不会无端端改变,它需要在某种条件下才会变换。比如上面定义的行为树中的[巡逻]行为,它就规定了必须是在怪物视野中找不到目标的情况下才会变更的状态。一旦有玩家进入了它的视野,它将马上切换为攻击状态。总而言之,状态会在某个事件触发之后变更。不同的状态也有可能决定了对象的不同属性和行为。

你可能感兴趣的:(游戏开发之-AI行为树)