游戏中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

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

               

目录
相关文章
|
6天前
|
存储 人工智能 关系型数据库
拥抱Data+AI|玩家去哪儿了?解码Data+AI如何助力游戏日志智能分析
本文为阿里云瑶池数据库「拥抱Data+AI」系列连载第2篇,基于真实客户案例和最佳实践,探讨如何利用阿里云Data+AI解决方案应对游戏行业挑战,通过AI为游戏行业注入新的活力。文章详细介绍了日志数据的实时接入、高效查询、开源开放及AI场景落地,展示了完整的Data+AI解决方案及其实际应用效果。
|
7天前
|
存储 人工智能 关系型数据库
拥抱Data+AI|玩家去哪儿了?解码Data+AI如何助力游戏日志智能分析
「拥抱Data+AI」系列第2篇:阿里云DMS+AnalyticDB助力游戏日志数据分析与预测
拥抱Data+AI|玩家去哪儿了?解码Data+AI如何助力游戏日志智能分析
|
2月前
|
机器学习/深度学习 人工智能 开发者
谷歌推世界首个AI游戏引擎,2000亿游戏产业恐颠覆!0代码生成游戏,老黄预言成真
【9月更文挑战第22天】谷歌近日推出的AI游戏引擎GameNGen,作为全球首款神经模型驱动的游戏引擎,引发了广泛关注。该引擎使用户无需编写代码即可生成游戏,并实现了与复杂环境的实时交互,显著提升了模拟质量。在单TPU上,GameNGen能以超20帧/秒的速度流畅模拟经典游戏《DOOM》。这项技术不仅简化了游戏开发流程,降低了成本,还为游戏设计带来了更多可能性。然而,它也可能改变游戏产业的商业模式和创意多样性。无论如何,GameNGen标志着游戏开发领域的一次重大革新。
49 2
|
4月前
|
人工智能 搜索推荐 开发者
AI驱动的游戏设计:创造更智能、更沉浸的游戏体验
【7月更文第31天】人工智能(AI)技术正在深刻地改变游戏行业,不仅为游戏设计师提供了创造更丰富、更动态游戏世界的工具,也为玩家带来了更加个性化和沉浸式的体验。本文将探讨AI在游戏设计中的应用案例,并展示一些具体的实现方法。
511 2
|
3月前
|
人工智能 开发者
黑神话:悟空中的AI行为树设计
【8月更文第26天】在《黑神话:悟空》这款游戏中,NPC(非玩家角色)的智能行为对于创造一个富有沉浸感的游戏世界至关重要。为了实现复杂的敌人行为模式,游戏开发团队采用了行为树作为NPC决策的核心架构。本文将详细介绍《黑神话:悟空》中NPC AI的设计原理,特别关注行为树的设计与实现。
171 0
|
3月前
|
机器学习/深度学习 人工智能 数据处理
AI计算机视觉笔记一:YOLOV5疲劳驾驶行为检测
如何使用云服务器AutoDL进行深度学习模型的训练,特别是针对YOLOV5疲劳驾驶行为训练检测
|
4月前
|
人工智能
AI问题之什么是Tree of Thought (ToT)
AI问题之什么是Tree of Thought (ToT)
|
4月前
|
人工智能 数据挖掘 数据库
客户在哪儿AI的企业全历史行为数据与企业信息查询平台上的数据有何区别
客户在哪儿AI的企业全历史行为数据 VS 企业信息查询平台上的数据。
|
4天前
|
机器学习/深度学习 人工智能 自然语言处理
当前AI大模型在软件开发中的创新应用与挑战
2024年,AI大模型在软件开发领域的应用正重塑传统流程,从自动化编码、智能协作到代码审查和测试,显著提升了开发效率和代码质量。然而,技术挑战、伦理安全及模型可解释性等问题仍需解决。未来,AI将继续推动软件开发向更高效、智能化方向发展。
|
8天前
|
机器学习/深度学习 人工智能 自然语言处理
AI在医疗领域的应用及其挑战
【10月更文挑战第34天】本文将探讨人工智能(AI)在医疗领域的应用及其面临的挑战。我们将从AI技术的基本概念入手,然后详细介绍其在医疗领域的各种应用,如疾病诊断、药物研发、患者护理等。最后,我们将讨论AI在医疗领域面临的主要挑战,包括数据隐私、算法偏见、法规合规等问题。
28 1