UE5行为树浅析

Tree

什么是树?

树是由节点或顶点和边组成的数据结构,没有任何循环。没有节点的树称为空树或空树。

非空的树由根节点和可能形成层次结构的多层附加节点组成。

  • 树是一种数据结构
  • 树由点和有向边组成
  • 树是连通的,可达的
  • 树有执行顺序
  • 树没有环

Behavoir Tree

行为树(BT)是一种计划执行的数学模型,用于计算机科学、机器人技术、控制系统和视频游戏。

它们以模块化的方式描述有限任务集之间的切换。

它们的强大之处在于能够创建由简单任务组成的非常复杂的任务,而不用担心如何执行这些简单任务。

BT与分层状态机有一些相似之处,关键的区别是行为的主要构建块是任务而不是状态。

如果没有行为树,蓝图依然可以实现功能,但是行为树是可编程的。

由于易于理解,BT更不容易出错,在游戏开发者社区中非常受欢迎。

UE官方描述:

行为树 是虚幻引擎 中创建 AI 的强大工具。从隐藏在阴影中的小蟑螂,到射击游戏中自主向目标开火并寻找回复剂和弹药的机器人,皆可实现。

合成 节点**(Composite)** 描述
选择器(Selector) 从左到右执行分支,通常用于在子树之间进行选择。当选择器找到能够成功执行的子树时,将停止在子树之间移动。举例而言,如果AI正在有效地追逐玩家,选择器将停留在那个分支中,直到它的执行结束,然后转到选择器的父合成节点,继续决策流。
序列(Sequence) 从左到右执行分支,通常用于按顺序执行一系列子项。与选择器节点不同,序列节点会持续执行其子项,直到它遇到失败的节点。举例而言,如果我们有一个序列节点移动到玩家,则会检查他们是否在射程内,然后旋转并攻击。如果检查玩家是否在射程内便已失败,则不会执行旋转和攻击动作
并行(Simple Parallel)(基本用不上,不常用) 简单平行节点有两个"连接"。第一个是主任务,它只能分配一个任务节点(意味着没有合成节点)。第二个连接(后台分支)是主任务仍在运行时应该执行的活动。简单平行节点可能会在主任务完成后立即结束,或者等待后台分支的结束,具体依属性而定。

Sequence只要遇到Flase,后面的都不执行,直接返回 (如果所有都是True,才返回True)

Selector只要遇到True,后面的都不执行,直接返回 (如果所有都是Flase,才返回Flase)

行为树与蓝图相似,皆是以一种可视化方式创建,将一系列具备功能的节点添加并连接至行为树图表。执行逻辑时,行为树会使用一种名为 黑板 的独立资源来存储它需要知道的信息(名为 黑板键),从而做出有根据的决策。

UE中的行为树按照从左到右,从上到下的顺序执行逻辑。操作的数字顺序显示在图表中所放置节点的右上角。

上图中的蓝色节点被称为装饰器(判断条件语句,如果是True就执行下面的,如果是False就不执行了

右键单击 行为树 中的节点时,可以添加提供额外函数的子节点:

子节点 描述
装饰器(Decorator) 也称为条件语句。这种节点附着于另一个节点,决定着树中的一个分支,甚至单个节点是否能够被执行。
服务(Service) 这类节点连接至 任务(Task) 节点和 合成(Composite) 节点,只要它们的分支正在执行,它们就会以所定义的频率执行。这些节点通常用于检查和更新 黑板。它们取代了其他行为树系统中的传统平行(Parallel)节点。

黑板Blackboard

用来记录数据变量

参考资料:

https://dev.epicgames.com/documentation/zh-cn/unreal-engine/behavior-tree-in-unreal-engine---overview

https://en.wikipedia.org/wiki/Behavior_tree_(artificial_intelligence,_robotics_and_control)

相关推荐
cat2bug9 分钟前
介绍一下如何在Cat2Bug-Platform中通过OpenAI来创建测试用例
功能测试·测试工具·ai·测试用例·bug·openai
aspxiy16 分钟前
知识求解器:教会大型语言模型从知识图谱中搜索领域知识
人工智能·语言模型·自然语言处理·知识图谱
梦想是成为算法高手18 分钟前
带你从入门到精通——知识图谱(一. 知识图谱入门)
人工智能·pytorch·python·深度学习·神经网络·知识图谱
沛沛老爹24 分钟前
从Web到AI:行业专属Agent Skills生态系统技术演进实战
java·开发语言·前端·vue.js·人工智能·rag·企业转型
B站计算机毕业设计超人25 分钟前
计算机毕业设计Python+大模型音乐推荐系统 音乐数据分析 音乐可视化 音乐爬虫 知识图谱 大数据毕业设计
人工智能·hadoop·爬虫·python·数据分析·知识图谱·课程设计
陈天伟教授37 分钟前
人工智能应用-机器视觉:AI 鉴伪 02.虚假人脸生成
人工智能·神经网络·数码相机·生成对抗网络·dnn
可能是阿伦43 分钟前
探索 cccc:一个面向工程协作的多代理协作内核
人工智能·低代码·ai·web3
jkyy20141 小时前
健康监测驾驶系统赋能:解锁新能源汽车健康出行新场景
大数据·人工智能·物联网·健康医疗
北京耐用通信1 小时前
耐达讯自动化Profibus光纤链路模块:跨行业通信的“隐形桥梁”,让控制更丝滑!
人工智能·网络协议·自动化·信息与通信