游戏中AI的行为树(Behaviour Tree in Game AI)

简介:

行为树已经成为游戏AI中重要流行的实现方式,相比其他种类的ai(如神经网络,遗传算法,机器学习)更适合策划配置和控制,相比fsm更易扩展,在arpg中的怪物ai中比较流行。这里对行为树的概念做个总结。

                行为树是一个树状结构,没给节点都是一个行为节点,ai的执行过程就是从树根按照一定规则开始遍历整个树的过程,通常实现上会在没帧从树根处tick一遍整棵树。这棵树完整执行完一次的过程中可能对树遍历过很多次,因为每次整个树遍历完之后,如果还有节点还在running状态,就要在从根处tick一下再遍历,当run后没有任何节点在running就是执行完了一次,这时一般会进行新的一次执行,

                节点有不同的功能,有的控制遍历的顺序,有的执行确切的游戏逻辑。

                节点通常包括这样几个函数 init() 第一次遍历到该节点  run()每次执行到该节点(每次tick这颗树的时候tick到) exit()离开这个节点(整棵树执行完一次)有的实现还会加一个update(),被run()调用来表示那些多帧操作的行为每次tick到的时候的操作

                节点的run通常返回三种状态 success 完成 fail 失败 running 仍然在运行中(一些需要多帧完成的动作)

                节点一般要存储上一次run之后的返回值状态

                每次遍历到一个节点的时候可以根据节点上次的返回值状态来决定本次run的情况

                节点可能还需要有中止运行的功能

                

               根据节点的run行为主要有以下几种类型的节点:

               ConditionNode:判断一个逻辑,返回T 或 F,T和F分别连接着下一个要遍历的节点,在run里面一般不管上次的返回值状态都会重新做一次判断,以让ai能够实时反馈最新的环境情况。如果本次判断和前次判断有差,则要中止前次分支下的所有节点。

               ActionNode:这通常是一个叶子节点,执行一个程序逻辑。对于一个需要多帧完成的逻辑,在run里面可以根据上次的状态执行每帧操作。

       SequenceNode:他的所有子节点要按顺序完成,即逐个遍历每个子节点,只有当每个节点都返回success自己才能返回success,否则自己返回running,只有前一个自节点返回成功或失败才进行下一个自节点的探测

       SelectorNode:和sequeNode的and操作相反,它是or,它的所有自节点,只要有一个返回success,他自己就返回success,否则自己返回running,只有前一个自节点返回成功或失败才进行下一个自节点的探测

               RandomNode:随机挑一个子节点遍历,run后就返回success,只有一次执行的第一次遍历才会进行判断要遍历的子节点,并记住这个节点,对于后面的遍历直接找到这个子节点遍历。

               Invertor:将子节点的success或fail的返回值取反作为自己的返回值。子节点running自己就running

               Succeeder:子节点无论返回什么,自己都返回succe

               Repeator:重复执行自节点,直到达到指定条件(如执行次数之前)自己都处于running

                当然这些都是常见的一些设计上的模式,我们还可以根据我们的需要定义你需要的节点,还有最重要的一点,你必须有一个好用的图形化的行为树编辑器给策划

               

目录
相关文章
|
2月前
|
人工智能 算法 数据可视化
AI Earth ——开发者模式案例6:决策树模型实现冬小麦提取
AI Earth ——开发者模式案例6:决策树模型实现冬小麦提取
37 2
|
1月前
|
人工智能 自然语言处理 IDE
被 AI 写的游戏代码砸中是什么感觉 | 10 分钟打造你的超级 AI 编码助手
被 AI 写的游戏代码砸中是什么感觉 | 10 分钟打造你的超级 AI 编码助手
|
2天前
|
人工智能 NoSQL 安全
MongoDB观点:让生成式AI成为业务增长的新动能,游戏公司可以这样做
生成式AI技术将深刻地改变人们的生活和企业运营方式
|
16天前
|
机器学习/深度学习 数据采集 人工智能
|
29天前
|
人工智能 JavaScript 前端开发
中国象棋AI在线对弈游戏源码
植物大战僵尸Javascript版web游戏源码,非常强大,1比1还原电脑版植物大战僵尸游戏,带背景音乐,玩法和原版一模一样。
25 0
|
1月前
|
人工智能 移动开发 算法
中国象棋AI在线对弈游戏源码
这是一款html5小游戏,主要功能在于js,带一套皮肤、内置ai算法,有能力的可以自行修改。
69 0
中国象棋AI在线对弈游戏源码
|
1月前
|
人工智能 文字识别 安全
谷歌推出通用AI代理:能自动执行600多种动作,游玩复杂3D游戏
谷歌DeepMind的SIMA项目旨在创建一个通用AI代理,该代理能在多种3D环境中执行复杂任务,通过语言指令与环境交互。目标是让AI理解并执行600多种动作,包括导航和建造等。使用多样化的3D环境训练,结合零基础训练和预训练模型,如SPARC和Phenaki,以增强语言理解和行动执行。评估方法多角度,包括人类评估,但也面临效率和成本挑战。项目注重伦理安全,但AI在复杂环境中的性能仍有提升空间。DeepMind将继续优化代理的鲁棒性,扩大研究范围,以推动通用人工智能的发展。
21 2
谷歌推出通用AI代理:能自动执行600多种动作,游玩复杂3D游戏
|
1月前
|
人工智能 信息无障碍 UED
网易AI Eyes获得iF设计奖,盲人也能“亲眼”玩游戏!
【2月更文挑战第17天】网易AI Eyes获得iF设计奖,盲人也能“亲眼”玩游戏!
34 2
网易AI Eyes获得iF设计奖,盲人也能“亲眼”玩游戏!
|
3月前
|
人工智能 自然语言处理 供应链
当AI蔚然成风,新锐品牌有棵树走出“智能”发展新天地
当AI蔚然成风,新锐品牌有棵树走出“智能”发展新天地
|
4月前
|
人工智能 弹性计算 搜索推荐
阿里云张献涛:拥抱第三次云计算浪潮,云上驱动AI原生游戏
由国家新闻出版署主管,广东省新闻出版局、中共广州市委宣传部支持,中国音像与数字出版协会、广州开发区管委会、广州市黄埔区人民政府主办,中国音数协游戏工委、中共广州市黄埔区委宣传部、黄埔文化(广州)发展集团有限公司、黄埔文商旅(广州)集团有限公司承办的2023年度中国游戏产业年会大会12月15日在广州黄埔区举办。