0%

AI

游戏里面的AI实现一般是状态机或者行为树。

状态机

状态机很好理解,就是AI会处于某一状态中,在不同条件下会进行切换,让AI处于正确的状态中。例如,一个怪物,有闲逛、战斗、逃跑三个状态。在没有遇到目标的时候,是处于【闲逛】状态,遇到了敌人,切换进入【战斗】状态;当血量低于5%或者远离出生点,进入【逃跑】状态。

行为树

行为树的执行就是从上到下,从左导游遍历整个树。每个节点执行之后都会返回true或者false,之后往上返回。不同节点遇到返回的结果执行方式不太一样。可能是往父节点返回,也可能是执行下一个子节点。具体结果要根据子节点的返回结果跟自身节点类型决定。
第一个节点是根节点,叶子是具体的操作行为,而中间节点是用来控制执行的顺序的。

组合节点

  • Sequence 节点
    • AlwaysSequence 顺序执行
    • RandomSequence 每次执行都以随机序列去执行
  • Select 节点
  • IfElse 节点,有三个子节点,当第一个节点返回true,执行第二个子节点并返回子节点的值,否则执行第三个节点并返回节点的值。
  • While 节点,有两个子节点,当第一个子节点返回true的时候,执行第二个子节点,然后重新开始执行流程;当第一个节点返回false的时候则执行完成,并且返回true。
  • Root 节点,根节点,只有一个子节点。
  • Probility 节点,随机执行节点