FSM_HFSM

状态机理解

状态机的种类

  1. 有限状态机
  2. 分层状态机

有限状态机

有限状态机(FSM)是AI行为状态的表现,一个角色会出现很多的状态,例如小兵有,巡逻状态,攻击敌人状态,追击敌人状态,逃跑等等状态。

状态之间有一定的联系,状态的跳转需要用到条件来做相应的跳转

一个简单的状态机可能:

1.小兵“巡逻” ,如果“发现敌人”,则追击敌人

2.小兵追击敌人,如果追到敌人,那么攻击敌人

3.小兵攻击敌人,如果敌人死亡,那么继续巡逻

4.小兵攻击敌人,如果自身血量不足,那么逃跑

小兵属于这个角色,红色表示的是小兵存在的各种状态,蓝色的代表条件,满足条件执行状态

整体流程就是

角色在A状态,如果符合B条件,那么跳转到C状态

状态的跳转必须符合了某种条件,否则状态不会流转

分层状态机

分层状态机(HSFM)是有限状态机的一个扩展,主要是当有限状态机的状态出现了很多状态时,维护起来麻烦而产生的一种状态机

分层状态机主要是把有限状态机下的所有状态分类,把分类的状态重新认定为一个状态机,在状态机之间,负责状态机之间的流转,而状态机内则各自状态机负责状态的流转

例如:

我们以小狗为例子,小狗可能有以下状态,奔跑,走动,咆哮,吃饭,撒娇,睡觉,开心,疲劳等等各种状态,如果常规的状态机,则需要定义各种的状态流转,例如疲劳了可能需要去吃饭,也可能需要睡觉,需要定义的各种状态,分层状态则需要把状态给分类,例如我们给小狗的状态先归一个大类,就是心情,心情的大类会有:开心,疲劳,撒娇,愤怒,其中开心可能会抖动尾巴,可能会来回奔跑,也可能会嗷嗷叫,状态机流转时只需要把大状态流转下去,例如流转到开心,具体开心需要做什么动作,切换什么状态就是开心这个状态机所需要关心的事情。

总体流程图:

打赏

扫一扫,分享到微信

微信分享二维码

请我喝杯咖啡吧~

支付宝
微信