news 2026/7/7 6:53:22

教程13:随机与概率相关节点的使用-–-behaviac

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
教程13:随机与概率相关节点的使用-–-behaviac

原文

本文档描述的是3.6及以后版本,对于3.5及以前的老版本请参考分类“3.5”。

为了方便使用,behaviac组件除了提供传统的序列、选择等组合节点之外,还提供了随机与概率相关的节点类型,主要包括随机序列(SequenceStochastic)、随机选择(SelectorStochastic)和概率选择(SelectorProbability)等节点。

这3个节点对于初学者容易混淆,本文将结合行为树中对这3个节点的使用来分别加以说明。

1. 创建类型信息

首先创建Agent子类“FirstAgent”及其成员方法Say(behaviac::string& value),Say()方法用于打印指定的参数,如下图所示:

2. 随机序列节点

如果对随机序列节点不熟悉,请首先查看其手册《随机序列节点》。

1. 创建行为树“sequencestochasticBT”,其中随机序列节点有3个动作子节点,分别输出“A”、“B”、“C”,如下图所示:

2. 随机序列节点的的属性“随机数”默认为空,表示使用系统默认的随机数产生器,当然也可以配置自己实现的随机数方法,这里我们保持为空即可,如下图所示:

3. 执行该行为树,结果如下图所示:

可以看到随机输出了“B”、“C”、“A”,但多次执行程序,发现都是输出这个顺序,并没有随机输出。这是由于没有调用随机种子方法,需要在代码中调用如下接口即可:

#ifBEHAVIAC_CCDEFINE_MSVCtime_t timer;time(&timer);behaviac::RandomGenerator::GetInstance()->setSeed((unsignedint)timer);#endif

3. 随机选择节点

如果对随机选择节点不熟悉,请首先查看其手册《随机选择节点》。

1. 创建行为树“selectorstochasticBT”,其中随机选择节点有3个动作子节点,分别输出“A”、“B”、“C”,如下图所示:

2. 随机选择节点的的属性“随机数”默认为空,表示使用系统默认的随机数产生器,当然也可以配置自己实现的随机数方法,这里我们保持为空即可,如下图所示:

3. 执行该行为树,结果如下图所示:

可以看到随机输出了“C”,多次执行程序,可以看到还会随机输出“A”或“B”。

4. 概率选择节点

如果对概率选择节点不熟悉,请首先查看其手册《概率选择节点》。

1. 创建行为树“selectorprobabilityBT”,其中概率选择节点有3个动作子节点,权值分别为20、30、50,表示分别会已20%、30%、50%的概率输出“A”、“B”、“C”,如下图所示:

2. 概率选择节点节点的的属性“随机数”默认为空,表示使用系统默认的随机数产生器,当然也可以配置自己实现的随机数方法,这里我们保持为空即可,如下图所示:

3. 执行该行为树,结果如下图所示:

可以看到随机输出了“B”,多次执行程序,可以看到还会随机输出“A”或“C”。

本教程相关的工作区和代码工程详见源码包的目录tutorials/tutorial_13。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/6 21:26:23

HEIF Utility:Windows平台HEIF图像转换终极指南

HEIF Utility:Windows平台HEIF图像转换终极指南 【免费下载链接】HEIF-Utility HEIF Utility - View/Convert Apple HEIF images on Windows. 项目地址: https://gitcode.com/gh_mirrors/he/HEIF-Utility HEIF Utility是一款专为Windows系统设计的开源工具&a…

作者头像 李华
网站建设 2026/7/7 18:33:51

3D点云数据优化:Point-E预处理技巧深度解析

3D点云数据优化:Point-E预处理技巧深度解析 【免费下载链接】point-e Point cloud diffusion for 3D model synthesis 项目地址: https://gitcode.com/gh_mirrors/po/point-e 在3D视觉与生成式AI快速发展的今天,Point-E项目为我们提供了强大的3D点…

作者头像 李华
网站建设 2026/7/7 16:32:14

[APM32F4] 嵌入式C:揭秘 union 关键字在 SDK 寄存器位域中的应用

在嵌入式开发中,特别是在翻芯片 SDK 的时候,经常会遇到 union 关键字嵌在结构体里,配合位域(bit-field)使用,SDK的库函数中基本上全是这玩意儿,新手可能会比较头疼。比如下面这段代码&#xff0…

作者头像 李华
网站建设 2026/7/7 10:40:17

成就电子电路设计高手,探讨FPGA控制系统中的电子电路设计方法

电子电路设计应用很多,对于电子电路设计,我们需正确认识其重要性。为增进大家对电子电路设计的了解,本文将介绍电子电路相关知识,并对FPGA控制系统中的电子电路设计方法予以探讨。如果你对这篇电子电路设计文章存在兴趣&#xff0…

作者头像 李华
网站建设 2026/7/6 14:47:12

百度ERNIE 4.5大模型深度解析:多模态技术突破与企业级应用新范式

在人工智能技术迅猛发展的当下,百度最新发布的ERNIE 4.5大语言模型凭借其革命性的技术架构与卓越性能,正引领着多模态智能领域的新方向。该模型通过创新的异构专家系统设计、全链路训练优化方案以及精细化模态调优策略,不仅实现了跨模态信息处…

作者头像 李华
网站建设 2026/7/7 18:26:22

Tube MPC鲁棒控制完全指南:从理论到MATLAB实战

Tube MPC鲁棒控制完全指南:从理论到MATLAB实战 【免费下载链接】robust-tube-mpc An example code for robust model predictive control using tube 项目地址: https://gitcode.com/gh_mirrors/ro/robust-tube-mpc 在工业自动化、机器人控制和过程优化的复杂…

作者头像 李华