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)

相关推荐
Coder_Boy_3 小时前
技术发展的核心规律是「加法打底,减法优化,重构平衡」
人工智能·spring boot·spring·重构
会飞的老朱5 小时前
医药集团数智化转型,智能综合管理平台激活集团管理新效能
大数据·人工智能·oa协同办公
聆风吟º7 小时前
CANN runtime 实战指南:异构计算场景中运行时组件的部署、调优与扩展技巧
人工智能·神经网络·cann·异构计算
寻星探路7 小时前
【深度长文】万字攻克网络原理:从 HTTP 报文解构到 HTTPS 终极加密逻辑
java·开发语言·网络·python·http·ai·https
Codebee9 小时前
能力中心 (Agent SkillCenter):开启AI技能管理新时代
人工智能
聆风吟º9 小时前
CANN runtime 全链路拆解:AI 异构计算运行时的任务管理与功能适配技术路径
人工智能·深度学习·神经网络·cann
uesowys10 小时前
Apache Spark算法开发指导-One-vs-Rest classifier
人工智能·算法·spark
AI_567810 小时前
AWS EC2新手入门:6步带你从零启动实例
大数据·数据库·人工智能·机器学习·aws
User_芊芊君子10 小时前
CANN大模型推理加速引擎ascend-transformer-boost深度解析:毫秒级响应的Transformer优化方案
人工智能·深度学习·transformer
智驱力人工智能10 小时前
小区高空抛物AI实时预警方案 筑牢社区头顶安全的实践 高空抛物检测 高空抛物监控安装教程 高空抛物误报率优化方案 高空抛物监控案例分享
人工智能·深度学习·opencv·算法·安全·yolo·边缘计算