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)

相关推荐
研一计算机小白一枚23 分钟前
Deep blind super-resolution for hyperspectral images_译文
人工智能·深度学习·计算机视觉
狂奔solar28 分钟前
图神经网络在yelp数据集上分析用户如何影响彼此的评价
人工智能·深度学习·神经网络
ccmjga30 分钟前
升级 Spring Boot 3 配置讲解 —— 如何在 Spring Boot 3 中接入生成式 AI?
java·人工智能·spring boot·后端·docker·面试·单元测试
远洋录1 小时前
Tailwind CSS 实战:深色模式设计与实现
前端·人工智能·react
.远_1 小时前
CUDA C | 第一章 基于CUDA的异构并行计算
linux·c++·人工智能·python
昊昊该干饭了1 小时前
2.5万字 - 用TensorFlow和PyTorch分别实现五种经典模型
人工智能·pytorch·tensorflow
说私域1 小时前
社交新零售下开源 AI 智能名片 2+1 链动模式 S2B2C 商城小程序的创新实践与发展剖析
人工智能·开源·零售
Jackilina_Stone1 小时前
【HUAWEI】HCIP-AI-MindSpore Developer V1.0 | 第四章 图像处理原理与应用(2 图像预处理技术) | 学习笔记
图像处理·人工智能·笔记·学习·计算机视觉·huawei
kris00091 小时前
人工智能知识分享第九天-机器学习_集成学习
人工智能·机器学习·集成学习
dundunmm1 小时前
【机器学习】Gaussian Process (GP)
人工智能·机器学习·数据挖掘·高斯过程·gp