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

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

               

目录
相关文章
|
5天前
|
人工智能 开发者
黑神话:悟空中的AI行为树设计
【8月更文第26天】在《黑神话:悟空》这款游戏中,NPC(非玩家角色)的智能行为对于创造一个富有沉浸感的游戏世界至关重要。为了实现复杂的敌人行为模式,游戏开发团队采用了行为树作为NPC决策的核心架构。本文将详细介绍《黑神话:悟空》中NPC AI的设计原理,特别关注行为树的设计与实现。
30 0
|
2月前
|
人工智能 搜索推荐 开发者
AI驱动的游戏设计:创造更智能、更沉浸的游戏体验
【7月更文第31天】人工智能(AI)技术正在深刻地改变游戏行业,不仅为游戏设计师提供了创造更丰富、更动态游戏世界的工具,也为玩家带来了更加个性化和沉浸式的体验。本文将探讨AI在游戏设计中的应用案例,并展示一些具体的实现方法。
105 2
|
10天前
|
机器学习/深度学习 人工智能 数据处理
AI计算机视觉笔记一:YOLOV5疲劳驾驶行为检测
如何使用云服务器AutoDL进行深度学习模型的训练,特别是针对YOLOV5疲劳驾驶行为训练检测
|
2月前
|
人工智能 搜索推荐
影视与游戏行业AI视频制作实战:第二步,为角色生成个性化语音
每个角色有自己的性格、形象,那也一定需要自己个性化的声音。
|
3月前
|
人工智能 图形学
【制作100个unity游戏之24】unity制作一个3D动物AI生态系统游戏2(附项目源码)
【制作100个unity游戏之24】unity制作一个3D动物AI生态系统游戏2(附项目源码)
44 1
【制作100个unity游戏之24】unity制作一个3D动物AI生态系统游戏2(附项目源码)
|
3月前
|
人工智能 定位技术 图形学
【unity实战】制作敌人的AI,使用有限状态机、继承和抽象类多态 定义不同状态的敌人行为
【unity实战】制作敌人的AI,使用有限状态机、继承和抽象类多态 定义不同状态的敌人行为
93 1
|
2月前
|
人工智能
AI问题之什么是Tree of Thought (ToT)
AI问题之什么是Tree of Thought (ToT)
|
2月前
|
人工智能 数据挖掘 数据库
客户在哪儿AI的企业全历史行为数据与企业信息查询平台上的数据有何区别
客户在哪儿AI的企业全历史行为数据 VS 企业信息查询平台上的数据。
|
2月前
|
人工智能 编解码 数据可视化
影视与游戏行业AI视频制作实战:第一步,角色形象设计的一致性
随着生成式人工智能技术的发展和应用,影视与游戏行业也迎来了AI化的时代。
|
2天前
|
机器学习/深度学习 传感器 人工智能
AI技术在医疗领域的应用与挑战
【8月更文挑战第29天】人工智能(AI)技术在医疗领域的应用日益广泛,为患者提供更精准、高效的医疗服务。本文将探讨AI技术在医疗领域的应用及其面临的挑战,包括诊断辅助、药物研发、患者管理和远程监测等方面。我们将通过实际案例和数据来展示AI技术在医疗领域的优势,并讨论其未来发展的可能性和潜在问题。
下一篇
云函数