当前位置: 首页 > article >正文

Blueprints - 虚幻中的行为树(Behavior Tree)

一些以前的学习笔记归档;

简单的说,行为树可以让agent(代理,指可以自主活动的游戏角色等)做出决定,可以理解为AI的大脑;

行为树自上而下的从树的根节点(Root节点)开始读取树的结构,直到任务(Tasks)节点,这些任务会被执行并使得AI开始一个行动:

除了Tasks节点,为了基于具体情况来激活不同树分支,在根节点和任务节点之间还存在有其它可以改变执行流动方向的节点;UE4的行为树有4个基础类型的节点:Tasks节点、Composites节点、Decorators节点和Services节点;

Tasks节点包含了AI所需要执行的一个行动的逻辑代码;

Composites节点处在行为树里Tasks节点的上面位置,并且决定Tasks节点执行的顺序:

在说到Decorators节点和Services节点之前,首先要提到UE4行为树的一些特性:

行为树很快的能从根节点(Root节点)到叶节点(Task节点)进行迭代并同时做出决定,这意味着AI的状态转换在一瞬间就可以马上完成,看起来AI就像是马上对事物进行了响应;

但UE4的行为树并非每时每刻从Root节点到Task节点进行迭代,因为每一帧(实际可能并不是每帧,但这里只是为了说明方便)都一路从Root节点开始运行相对比较耗费性能,所以UE4的行为树的执行会停留在当前激活状态的Composite节点和它的子节点上,直到抵达整个序列的末尾或者composite节点收到中止命令;

那么,在只有Tasks节点和Composites节点的行为树中,例如以下情况:

所以,UE4引入了像Decorators节点和Services节点等来处理诸如此类的问题;

Services节点是一种可以附着到一个Composites节点的附加类型节点,用来检测和更新数据来给agent做出决定;

Decorators节点同样也是附着到Composites节点的附加类型节点,用来负责决定它们的子节点是否可以运行;

然后修改上图的行为树,使用上Decorators节点和Services节点:

那么,在修改后,当AI正处在执行闲置状态(Idle)的过程中,忽然Service节点检测到看到了玩家,Idle状态将会中止,会进入Combat的运行状态,不会再有迟钝的表现;



http://www.kler.cn/a/108022.html

相关文章:

  • 系统架构设计师论文:大数据Lambda架构
  • kafka消费数据太慢了,给优化下
  • 什么是RAG? LangChain的RAG实践!
  • React Native 全新架构来了
  • 【前端】深入浅出的React.js详解
  • 生成模型——PixelRNN与PixelCNN
  • 排序算法-堆积树排序法(HeapSort)
  • SQL企业微信群机器人消息推送
  • 关于数据中台的理解和思考
  • 实战经验分享FastAPI 是什么
  • Flutter笔记:完全基于Flutter绘图技术绘制一个精美的Dash图标(上)
  • react-antd组件 input输入框: 实现按回车搜索
  • 密码学与网络安全:量子计算的威胁与解决方案
  • 038-第三代软件开发-简易视频播放器-自定义Slider (二)
  • java后端返回数据给前端时去除值为空或NULL的属性、忽略某些属性
  • 聚观早报 |2024款飞凡R7官宣;小米14新配色材质
  • Spark新特性与核心概念
  • 网络(番外篇)can网络知识
  • VScode 调试 linux内核
  • 【错误解决方案】ModuleNotFoundError: No module named ‘cPickle‘
  • SQL Server Management Studio (SSMS)的安装教程
  • MongoDB的安装
  • 【黑马程序员】mysql进阶再进阶篇笔记
  • 2M大小的PDF文档上传到LangChain-ChatGLM知识图谱中,大致需要的时间
  • 网络协议--TCP的成块数据流
  • C++单调向量算法应用:所有子数组中不平衡数字之和