游戏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)作为节点 区域分割 预计算 路径查询表 路径成本查询表 寻路的改进 平均帧运算 路径 ...
随机推荐
- linux虚拟机发邮件给163邮件
配置/etc/mail.rc文件 set from=xxxxxxxx@163.com smtp=smtp.163.com set smtp-auth-user=yinhuanyi_cn@163.com ...
- 敏捷冲刺Day7
一. 每日会议 1. 照片 2. 昨日完成工作 3. 今日完成工作 第一阶段的测试 全部队员对各个方面进行深入检查,找出细节问题 4. 工作中遇到的困难 工作中的困难:对自己做出来的产品进行否定.以求 ...
- windows查看端口占用指令
1.Windows平台 在windows命令行窗口下执行: 1.查看所有的端口占用情况 C:\>netstat -ano 协议 本地地址 外部地址 ...
- 第129天:node.js安装方法
node.js安装方法 第一步:双击node.js安装包开始安装,注意64位和32位,按照自己的进行安装 第二步:在安装过程中一直选择next,在选择安装目录时,大多数默认安装在C盘,我安装在了D盘, ...
- CentOS 6.5 下安装 Redis
wget http://download.redis.io/redis-stable.tar.gz tar xvzf redis-stable.tar.gz cd redis-stable make ...
- 【数据库_Mysql】JAVA-数据库Date格式在前台JSP页面的获取
问题: 数据库保存的为date格式的日期 在前台JSP页面显示的为一串数字1487897 解决办法: 数据库表中字段对应的实体对象属性的get方法上添加一行代码 页面即可正常显示
- [二十一]SpringBoot 之 导入xml配置
SpringBoot理念就是零配置编程,但是如果绝对需要使用XML的配置,我们建议您仍旧从一个@Configuration类开始,你可以使用@ImportResouce注解加载XML配置文件,我拿一个 ...
- vue使用过程中的一些小技巧
这些也是自己平时项目中遇到过的一些问题,看到有人整理了出来,也就转载保存一下 文章内容总结: 组件style的scoped Vue 数组/对象更新 视图不更新 vue filters 过滤器的使用 列 ...
- Qin Shi Huang's National Road System UVA - 1494(次小生成树)
秦始皇统一中国之后要在全国修公路连接各个城市,皇帝只想修成最小生成树(距离最小,不考虑人力),一个道士说自己可以不花人力物力修一条路,经过两方妥协,选择max(两个城市人口/(生成树长度-这条路的长度 ...
- OEM SLP Key
OEM SLP Key Windows Server 2012 R2 Datacenter ===================== 2N9T6-Y284D-T68G9-QGV6X-FRFTD -- ...