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

并行节点-–-behaviac

原文

并行(Parallel)节点在一般意义上是并行的执行其子节点,即“一边做A,一边做B”,如下图所示:

在选择或序列节点中,是顺序的一个接一个的执行其子节点,上一个子节点执行结束后,根据其状态是否执行接下来的子节点。而并行节点在逻辑上是“同时”并行的执行所有子节点(但实际也是从上往下依次执行),然后根据所有子节点的状态决定本身的状态。

注意:并行节点每帧都有可能执行所有的子树,大量使用的时候请注意其性能。

如何根据所有子节点的返回状态,来决定并行节点本身的状态呢?并行节点有几个重要属性可以配置,如下图所示:

  • 失败条件:决定并行节点在什么条件下是失败的
  • 成功条件:决定并行节点在什么条件下是成功的
  • 子节点结束继续条件:子节点结束后是重新再循环执行,还是结束后不再执行
  • 退出行为:当并行节点的成功或失败条件满足并返回成功或失败后,是否需要终止掉其他还在运行的子节点
  • 当子节点执行状态既不满足失败条件,也不满足成功条件,且无Running状态子节点时,并行节点将直接返回Failure

在序列节点中,假设其子节点包括了条件节点和其他节点。那么,条件节点实际上是作为其他节点的前提条件,只有条件节点返回Success,下面的其他节点才会得到执行。

并行节点可以用来实现所谓的“上下文相关的前提条件”(context precondition),如下图所示:

并行节点配置条件节点和其他节点,并且失败条件是缺省的配置FAIL_ON_ONE,那么只有当条件节点成功的时候其他节点才被执行,从而条件节点事实上是其他节点的前提条件。

注意:作为前提条件的这种用法是不严谨的,当条件失败的时候,在并行节点返回失败之前,后续的其他节点会多执行一次。所以,请使用“前置”附件来实现这种前置条件的需求。

与序列节点+条件节点方式的不同之处在于,序列节点实现的前提条件只是“进入”其他节点的前提条件,一旦首次进入并开始执行其他节点后,就不再检查该前提条件了。而并行节点实现的前提条件是上下文相关的,不但首次进入并开始执行前需要检查,之后每次执行也都要检查。

具体的执行逻辑可以查看 behaviortree/nodes/composites/parallel.cpp

http://www.cnnetsun.cn/news/56676.html

相关文章:

  • Holo1.5开源发布:重塑计算机交互智能,引领多模态代理技术新纪元
  • 30、图像魔法棒:ImageMagick实用脚本指南
  • 百度网盘极速下载:3步告别龟速等待的实用指南
  • 28、网络数据分类与回归分析技术详解
  • Unity反向遮罩技术深度解析与应用实践
  • 多模态大模型新突破:Janus-Pro-7B重构跨模态理解与生成范式
  • 13、系统管理:用户管理脚本实用指南
  • PyQt-Fluent-Widgets 现代桌面应用开发终极指南
  • Duplicity:高效《缺氧》存档编辑器助力玩家打造个性化殖民地
  • AutoGPT文化展览策展助手
  • RSSHub-Radar终极指南:智能信息管理的完整解决方案
  • 蚂蚁开源Ring-1T引爆AI推理革命:万亿参数模型重构开源技术边界
  • 一、基于freertos系统上关于ATGM336H定位模块的定位测试验证
  • Flutter包体积优化终极指南:让你的直播App轻装上阵
  • Qwen3-0.6B震撼发布:轻量级大模型迎来推理与多语言能力的双重突破
  • Pig企业级权限管理系统:从零搭建微服务架构的实战指南
  • Obsidian Git高效配置:构建智能笔记备份系统
  • 心电图AI分类终极指南:3个简单步骤让新手快速上手
  • Unity反向遮罩技术深度解析:从原理到实战应用
  • 多模态生成革命:Lumina-DiMOO全能模型重塑跨模态交互新范式
  • MarkText主题定制完全攻略:打造专属写作空间的5个关键步骤
  • 21、网络命名服务:NIS、NIS+、DNS 与 LDAP 详解
  • 22、OpenLDAP与负载均衡技术解析
  • TaskFlow:重新定义Java任务流程管理的轻量级编排框架
  • AppleRa1n终极教程:iOS设备激活锁完全绕过方案
  • 零基础入门Whisper.cpp:5分钟搭建离线语音识别系统
  • YoloMouse游戏光标自定义工具:终极使用配置指南
  • 34、Unix系统下SMB/CIFS共享访问工具全解析
  • 40、Samba使用的额外资源与命令详解
  • 27、Google 演示文稿使用指南:文本操作与格式设置全攻略