游戏AI之 有限状态机、分层有限状态机、行为树

内容会持续更新,有错误的地方欢迎指正,谢谢!

FSM(有限状态机)、HFSM(分层有限状态机)、BT(行为树)

1.有限状态机:可用于做任务动画的切换,也可用于做简单的AI。将行为分为一个个的状态,状态与状态之间的过渡通过事件的触发来形成。

2.分层有限状态机:简单说,就是状态太多时,不好维护,于是将状态分类,将同类的状态作为一个状态机,然后再做一个大的状态机,来维护这些子状态机。

比如:对小狗来说,我们可以把小狗的状态先定义为疲劳,开心,愤怒,然后这些状态里再定义小状态,比如在开心的状态中,有撒桥,摇尾巴等小状态,这样我们在外部只需要关心三个状态的跳转(疲劳,开心,愤怒)。如果不用HFSM的话,就会有很多跳转链接;如果用HFSM的话,在每个状态的内部只需要关心自己的小状态的跳转就可以了,这样就大大的降低了状态机的复杂度和跳转链接数。如下图:

这里写图片描述

另外,如果觉得两层的状态机还是状态太多的话,可以定义更多的状态层次以降低跳转链接数。

3.行为树:行为树与FSM不同,它是一种“轮询式机制”,即每次更新都会遍历树,判定逻辑是否成立,是否该继续往下执行。常用于英雄或敌方等有多种复杂行为的单位。如下图:

这里写图片描述

总结:基本上所有游戏都是通过FSM来完成角色的状态流转的,ARPG尤其如此,少部分的游戏的AI部分可能用到行为树。几乎没有见过只通过行为树,而不依赖状态机控制角色的。在我看来,行为树每次都要进行整棵树的遍历,从效率上说不适合游戏角色的行为描述。而行为树所擅长的AI方面,一般简单的游戏通过状态机就足够了。

猜你喜欢

转载自blog.csdn.net/BillCYJ/article/details/79797228