2021.8.24:组内同事分享了一个多状态的项目,其中用到了分层状态机的概念,蛮有兴趣的,前来学习一下
有限状态机(Finite-State Machines)
分层状态机(Hierarchical Finite-State Machines)
行为树(Behavior Trees)
效用系统(Utility Systems)
目标导向型行动计划(Goal-Oriented Action Planners)
分层任务网络(Hierarchical Task Networks)
有限状态机
有限状态机是目前游戏AI中最常见的行为模型。状态机的代码简单又快速,使用上强大、灵活、计算开销小。
状态机的一个好处是可以可视化,如下图所示:
图中有四个状态:巡逻(patrol),查看(investigate),攻击(attack),逃走(flee),我们把实心圆当做初始状态。
简要过程:假设NPC士兵正在保卫他的阵地,当前状态为巡逻,当他听到什么动静时就会转到查看状态,跑到声音源去查看,如果看到敌人就转到攻击状态,如果没看到过一段时间又会回到巡逻状态。在攻击状态中如果血值低下就会进入逃跑状态。如果击败了敌人,又会回到巡逻状态。
状 态机状态类的一个主要结构如下,onEnter函数就相当于unity中的Start()函数,在类开始时调用,作为对旧状态的过度和