思维导图
?
文字版
4 行为选择算法一览
AI模型:感知-思考-行动。
有限状态机 FSM,Finite-State Machine
-
定义
-
状态 State
-
状态迁移 State Transition
-
可视化
-
代码类
-
优缺点
-
灵活 -
状态数多时非常复杂 -
无法做到有上下文时的行为重用
分层状态机 HFSM, Hierarchical Finite-State Machine
-
定义
-
优缺点
-
一定程度上解决FSM缺点,例如有历史状态 -
嵌套状态机,代码和递归负责度高
-
细节
行为树 Behavior Tree
-
定义
-
算法描述
-
把根节点当做当前节点 -
如果当前节点不为空
-
检测当前节点的预设条件 -
如果预设条件返回true
-
将节点加入待驱动列表中 -
把节点的子节点(有可能为空)作为当前节点
-
否则
-
驱动待驱动列表中的所有行为节点
-
优点
-
简单直接,易于实现,且行为树本身无状态 -
行为间的耦合度比FSM状态间耦合度小 -
扩展性极强
-
在行为树基础上实现其他的行为选择算法 -
采用不同的行为选择算法
-
固定/随机/依次选择子行为 -
基于效用的类型选择器 -
扩展预设条件等
-
缺点
-
每次从根节点开始,单次驱动的时间通常大于FSM -
无状态,需要留意涉及NPC记忆的情况
基于效用的系统
目标导向的行动规划 GOAP,Goal-Oriented Action Planning
-
定义
-
概念
-
系统会用一些变量描述世界的初始状态,同时维护一些需要实现的目标集合。 -
GOAP通常会从事先确定的NPC想要实现的目标集合中选出一个目标列表(可以基于目标优先级或NPC当前状态来选择),然后通过规划系统决定行动序列,控制agent并间接影响世界状态,直到使规划目标中定义的事实都满足条件。 -
具体:“逆向链式检索”,从想要实现的目标开始分析,先规划需要执行什么行动才能实现这个目标,然后得出刚才规划出的行动需要满足什么样的预设条件,以此类推直到起始状态。
-
算法
-
把目标加入待解决事实列表中 -
遍历待解决事实列表中的每个事实
-
将其从列表中移除 -
查找可以导致该事实发生的行动 -
如果查到的行动其预设条件满足
-
否则
-
应用
-
优点
-
缺点
分层任务网络 HTN, Hierarchical Task Network
-
定义
-
算法
-
把根复合任务加入到待分解列表中 -
遍历待分解列表中的每个任务
-
从待分解列表中移除该任务 -
如果该任务是复合任务
-
如果该任务是基元任务
-
把任务的效果应用到当前世界状态上 -
把任务加到最终计划列表中
-
应用
-
杀戮地带2 KillZone2 -
变形金刚:赛伯坦的陨落
-
优点
-
设计师容易理解,方便与程序员合作 -
模块化,基元任务可复用
-
缺点
总结
XMind - Trial Version
|