您的位置:首页 > 大数据 > 人工智能

游戏AI:行为树

2015-04-05 22:49 232 查看

Behavior Tree

行为树通过子Task的返回值决定整棵树的走向

Task

行为树上的每个节点都称为一个Task, 每个Task存在三种状态, success, failure, running。
其中running是临时状态,仅叶子节点才能返回running状态,running结束后也要返回success或者failure。

Task的种类:

Composite

Behaivor(Action, Conditional)

Decorator

Composite

组合节点,可以组合其他任意的节点,从而构成一个数,根节点一般为组合节点

Sequence

Selector

Parallel(这个没有实现)

Random

Sequence

从左到右遍历Sequence的子Task。

遇到failure则停止继续遍历,则Sequence直接返回failure

遇到success则继续遍历,若Sequence的全部子Task都返回success,则Sequence返回success

遇到running则停止继续遍历,并则等待running的返回值(failure或者success)

Selector

遇到failure继续遍历,若Selector中子Task全返回failure,则Selector返回failure

遇到success则停止遍历,并返回success,

遇到running则停止继续遍历,并等待running的返回值(failure或者success)

Priority Selector

类似于Selector,但是并不是顺序遍历,而是根据优先级(Priority)的顺序进行遍历

优先级高的优先运行

Task的默认优先级都是0

Random Selector

类似于Selector,但是并不是顺序遍历,而是随机(Random)的顺序遍历

Random Sequence

类似于Sequence,但并不是顺序遍历,而是随机(Random)的顺序遍历

Decorator

修饰节点,可以包含一个Action,对其进行修饰

Failure 一直返回failure

Success 一直返回success

Inverter 对Action返回结果取反

Repeater 一直重复Action指定的次数

UntilFailure 一直重复Action,直到Action返回failure

UntilSuccess 一直重复Action,直到Action返回success

Contional

条件节点,用于描述条件

RandomProbability 随机概率,可以指定概率返回成功

Action

具体的行为执行节点

Event 发送指定的事件,并返回success

Invoke 调用指定方法,并返回success

Restart 重启行为树,并返回success

Wait 等待指定时间,在这个时间内一直返回running,时间到了后返回success

Log 打印日志,并返回success
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: