游戏AI:行为树
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
游戏AI:行为树的更多相关文章
- 游戏AI-行为树
参考: 游戏AI—行为树研究及实现 GAD腾讯游戏开发者平台:游戏中的人工智能AI 腾讯开源项目behaviac 占坑,待编辑
- 使用行为树(Behavior Tree)实现游戏AI
——————————————————————— 谈到游戏AI,很明显智能体拥有的知识条目越多,便显得更智能,但维护庞大数量的知识条目是个噩梦:使用有限状态机(FSM),分层有限状态机(HFSM),决策 ...
- 游戏AI之决策结构—有限状态机/行为树(2)
目录 有限状态机 行为树 控制节点 条件节点 行为节点 装饰节点 总结 额外/细节/优化 游戏AI的决策部分是比较重要的部分,游戏程序的老前辈们留下了两种经过考验的用于AI决策的结构: 有限状态机 行 ...
- 做游戏长知识------基于行为树与状态机的游戏AI(一)
孙广东 2014.6.30 AI. 我们的第一印象可能是机器人,如今主要说在游戏中的应用. 现代的计算机游戏中已经大量融入了AI元素,平时我们进行游戏时产生的交互都是由AI来完毕的.比方在RPG游戏中 ...
- Unity教程之-基于行为树与状态机的游戏AI
AI.我们的第一印象可能是机器人,现在主要说在游戏中的应用.关于AI的相关文章我们在前面也提到过,详细请戳这现代的计算机游戏中已经大量融入了AI元素,平时我们进行游戏时产生的交互都是由AI来完成的.比 ...
- 趣说游戏AI开发:对状态机的褒扬和批判
0x00 前言 因为临近年关工作繁忙,已经有一段时间没有更新博客了.到了元旦终于有时间来写点东西,既是积累也是分享.如题目所示,本文要来聊一聊在游戏开发中经常会涉及到的话题--游戏AI.设计游戏AI的 ...
- AI 行为树
by AKara 2010-12-09 @ http://blog.csdn.net/akara @ akarachen(at)gmail.com @weibo.com/akaras 谈到游戏AI,很 ...
- 游戏AI-行为树理论及实现
从上古卷轴中形形色色的人物,到NBA2K中挥洒汗水的球员,从使命召唤中诡计多端的敌人,到刺客信条中栩栩如生的人群.游戏AI几乎存在于游戏中的每个角落,默默构建出一个令人神往的庞大游戏世界. 那么这些复 ...
- 游戏AI之初步介绍(0)
目录 游戏AI是什么? 游戏AI和理论AI 智能的假象 (更新)游戏AI和机器学习 介绍一些游戏AI 4X游戏AI <求生之路>系列 角色扮演/沙盒游戏中的NPC 游戏AI 需要学些什么? ...
- 游戏AI之路径规划(3)
目录 使用路径点(Way Point)作为节点 洪水填充算法创建路径点 使用导航网(Navigation Mesh)作为节点 区域分割 预计算 路径查询表 路径成本查询表 寻路的改进 平均帧运算 路径 ...
随机推荐
- eclipse中jsp页面Invalid location of tag 解决办法分析小结
在jsp页面使用标签过程中有时候不注意规则的话,eclipse会提示一些错误,下面针对这些错误提出相应的解决办法: <form></form>标签 1. Invalid loc ...
- javascript 排序
// 插入排序 将第一待排序序列第一个元素看做一个有序序列,把第二个元素到最后一个元素当成是未排序序列. 从头到尾依次扫描未排序序列,将扫描到的每个元素插入有序序列的适当位置.(如果待插入的元素与有序 ...
- phaser的小游戏的onInputDown问题
group.inputEnableChildren = true; for (var i = 0; i < 10; i++) { var sprite = group.crea ...
- django里的http协议
一个普通的user Begin########## ['__class__', '__delattr__', '__dict__', '__doc__', '__eq__', '__format__' ...
- H Hip To Be Square Day5——NWERC2012
这个题目巨坑啊.调试的时间加起来绝对超过1天整. 不过终于调试出来了,真心感动地尿流满面啊. 题目的意思是给你一个区间[A,B],可以从区间里选出任意多个整数,使得这些整数的积是一个不超过 2^126 ...
- BZOJ 1567 Blue Mary的战役地图(二维hash+二分)
题意: 求两个矩形最大公共子正方形.(n<=50) 范围这么小可以枚举子正方形的边长.那么可以对这个矩形进行二维hash,就可以在O(1)的时候求出任意子矩形的hash值.然后判断这些正方形的h ...
- 从原理上搞定编码(二)-- Web编码
周末宅在家里睡完觉就吃饭,吃完饭接着睡觉,这日子过的实在是没劲啊.明明还有计划中的事情没有做, 为什么就是不想去做呢,这样的生活持续下去,必然会成为一个彻头彻尾的loser.上一篇写的 初识编码 ,这 ...
- Day 2 while循环 编码 and or not
1.判断下列逻辑语句的True,False. 1)1 > 1 or 3 < 4 or 4 > 5 and 2 > 1 and 9 > 8 or 7 < 6 Flas ...
- BZOJ4972 小Q的方格纸
每个格子记录其左下的45°直角梯形区域的和及左下矩形区域的和即可. #include<iostream> #include<cstdio> #include<cmath& ...
- 洛谷 P1352 没有上司的舞会
树形动规入门题 先放题面 题目描述 某大学有N个职员,编号为1~N.他们之间有从属关系,也就是说他们的关系就像一棵以校长为根的树,父结点就是子结点的直接上司.现在有个周年庆宴会,宴会每邀请来一个职员都 ...