UE4 行为树装饰器(Decorator)简单实用说明(1)

2023-11-06

      在行为树标准模型中,条件语句为 Task 叶节点,除成功和失败外不执行任何操作。虽然也可以使用传统的条件 tasks,但还是强烈推荐您使用 Decorator 系统作为条件语句。

使用 decorators 而非 tasks 作为条件语句有多个明显优点。

       首先,条件 decorators 使行为树 UI 显得更加直观易读。条件语句位于其所控制分支树的根部,因此一旦条件语句未被满足,便可直接看到树的哪个部分被“关闭”。此外,所有叶节点均为行动 tasks,因此更容易分辨树在对哪些实际行动下达命令。 在传统模型中,条件语句混于叶节点中,因此需要花更多时间分辨哪些叶节点是条件语句,哪些叶节点是行动。(UE4官方说明文档中对Decorator的解释) 


      在我使用过程中对装饰器的理解是:装饰器是UE4行为树的判定节点,简单来讲就是它用来判定行为节点是否执行,以及行为节点执行后的结果反馈和处理。

      当装饰器作为判定节点使用时候,通常我们要覆盖重写(Override) PerformConditionCheck或者PerformConditionCheckAI函数,我推荐使用后者,因为后者自带了2个参数, OwnerController(当前行为树所有者的控制器,也就是你运行的AIController),ControllerPawn(当前行为树所控制的pawn,简单来讲就是你要控制的Actor),比如我从AIController派生了一个MyAIController,控制了一个叫MyAIActor的角色,那么使用时候就很方便,直接把参数OwnerController 转换为MyAIController(CastToMyAIController),把ControllerPawn转换为MyAIActor(CastToMyAIActor)。


       这就是一个简单的判定节点的装饰器,当PerformConditionCheckAI 函数返回真时候,则其修饰的节点才会运行,如果返回假,则下方节点就不再运行了

       如上图,如果BTDecorator_IsAround节点返回值为false,则就不会执行BTTask_TestAround节点了。下一篇再继续讲装饰器的另外一个作用:行为节点执行后的结果反馈和处理。



本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

UE4 行为树装饰器(Decorator)简单实用说明(1) 的相关文章

  • 陆续收集 UE4 常用的宏的用法

    UPROPERTY EditAnywhere 任何地方 UPROPERTY EditDefaultsOnly 只有在类的编辑界面 UPROPERTY EditInstanceOnly 只有在拖拽到场景下类的编辑界面 UClass meta
  • UE4快速导入Blender模型——Send to Unreal 插件使用

    下载地址 https github com epicgames blendertools blender安装Send to Unreal插件 设置自定义路径 打开UE4 插件 搜索 Python Editor Script Plugin 勾
  • [深入研究4G/5G/6G专题-31]: 5G NR开机流程5.2 - UE Attach流程(Registeration Request/Accept/Complete)

    作者主页 文火冰糖的硅基工坊 文火冰糖 王文兵 的博客 文火冰糖的硅基工坊 CSDN博客 本文网址 https blog csdn net HiWangWenBing article details 125160897 目录 前言 前置条件
  • UI、UE、UX的区别

    UI UE UX的区别 大部分程序员可能对UI UE UX这几个概念不是很熟悉 但在整个项目周期里 这些岗位还是很重要的 特别是对于产品公司 这些岗位对于一个产品是否能成功起着关键的作用 老规矩 我们先看看这三个缩写的定义 UI 是User
  • UE4数字孪生项目制作规范

    UE数字孪生项目制作规范 说明 协同 规范 说明 UnrealEngine项目 打包输出Window应用 鼠标操作 键盘快捷键操作 协同 内部开发的可以自己内网搭建svn服务器协同开发 如有外部人员参与项目开发 则项目协同可使用svnbuc
  • UE4 C++ 使用第三方库(动态库) 详解

    目录 1 代码共享的方式 2 使用三方库 2 1 准备一个动态库 包含 h lib dll 2 2 创建一个UE C 工程 2 3 配置三方库 1 代码共享的方式 在使用三方库之前 先介绍一下三方库的由来 以及为什么需要三方库 就从程序员共
  • UE4 行为树装饰器(Decorator)简单实用说明(1)

    在行为树标准模型中 条件语句为 Task 叶节点 除成功和失败外不执行任何操作 虽然也可以使用传统的条件 tasks 但还是强烈推荐您使用 Decorator 系统作为条件语句 使用 decorators 而非 tasks 作为条件语句有多
  • UE基础使用

    一 打包 二 显示FPS 三 坐标系 四 第三人称模式 四 筛选物体 五 物体对其到地面 六 UE加载窗口默认布局 七 关闭磁力吸附 关闭后可以自由移动 八 属性变为默认值 九 快速聚焦到物体 按F键或者双击 十 按shift键拖拽坐标轴
  • UE4信息交互-关卡蓝图内的交互

    笔记为 风之神韵 蓝图进阶教学视频中讲解的内容 整理笔记是为了便于学习和查询 UE4版本 4 8 1 一 事件调用函数的方式 1 gt 第一步 打开关卡蓝图 菜单Blueprints gt Open Level Blueprint 如图 2
  • 2022年5月计划(UE4视频教程+osgearth源码调试+ogreRenderSystem源码抄写)

    按照年度计划走就可以了 五一期间突击完了ue4第七套视频教程 客户端差不多了 各项终于达到什么都会 什么都不精了 没有短板 也没有长处 平衡进行就行了 包括久违的渲染 也可以引进了 以前如果单单干渲染是不行的 毕竟这种工作少 还要会引擎架构
  • UE4 Niagara粒子系统基础笔记

    目录 Niagara基础概念 Niagara官方建议 Niagara堆栈面板 Niagara渲染模式 材质 Niagara和蓝图 Niagara常用模块 Niagara常用技巧 Niagara ModuleScript Niagara基础概
  • UE Mesh Generation and Editing at Runtime

    UE Mesh Generation and Editing at Runtime 虚幻运行时和编辑器下生成和编辑 网格体 UE Mesh 虚幻中常用的三种网格体 UProceduralMeshComponent 程序化网格体 UStati
  • 从UE4到UE5:新特性的限制

    Nanite 原理 划分culster 按层级进行三角形的culling和lod selection HLOD 基于compute shader 和N卡的mesh shader同目的不同路 纯软件和硬件路线 开启 导入时勾选build na
  • 解决vs2015update3无法更新的问题

    解决方法很简单 直接去微软官方网站下载社区版 免费 网上其他地方的都是有问题的 官方网站下载下来是7个G 而其他地方下载是3个G 还缺少很多东西 链接https my visualstudio com Downloads q visual
  • Niagara官方示例笔记 - 盘点自带重要模块

    Emitter State life cycle生命周期控制 发射器选择system 所有发射器都在system的state里设置生命周期 选择self 发射器独立控制 可以给发射器创建不同类型变量 使用set parameter模块计算
  • 2022年4月3日-4月15日(方案A,ogremain源码抄写+ue4视频学习,共22小时,合计1270小时,剩8730小时)

    截至2022年4月1日 ogreMain剩下4533行 含注释 纯代码2646行 周二时学完了ue第五套视频教程编辑器1 good 接下来 UE4视频教程进行到了mysql 1 1 tf1 2 1 oss 4 2 simpleThread
  • 8. UE4的盒体触发器和时间轴(制作感应门)

    一 盒体触发器 Box Trigger 1 创建一个盒体触发器 Box Trigger 拖动到地面上空 按End键 贴近地面 2 选中盒体触发器 在关卡蓝图中添加 On Actor Begin Overlap 事件 进入盒体触发器事件 a
  • UE编辑器下简单把 excel格式的表格转换为wiki支持的表格

    觉得 wiki下 mediawiki 导入excel和word表格好麻烦 微软自带的offic插件wiki转换工具一直都安装不上 为了更新wiki内容只能手动来做了后来总结了以下手动方法 1 复制编辑好的Excel表格到记事本 用ue打开
  • 【UE】制作物体逐渐溶解消失并且可以复原的效果

    效果 步骤 1 新建一个工程 创建一个Basic关卡 添加第三人称游戏和初学者内容包资源到内容浏览器 2 找到并打开初学者内容包中椅子的材质 M Chair 将混合模式改为 已遮罩 在材质图表中添加如下节点 此时我们就可以通过参数 Fade
  • 【UE 材质】任务目标点效果

    效果 步骤 1 新建一个工程 创建一个Basic关卡 2 新建一个材质 这里命名为 M GoalPoint 打开 M GoalPoint 设置混合模式为 半透明 勾选 双面 在材质图表中添加如下节点 此时预览效果如下 继续添加如下节点 此时

随机推荐

  • [系统

    系统环境说明 系统 Deepin V20 平台 amd64 参考文献 asdf maven asdf document asdf plugins asdf vm安装 见多版本管理命令行工具asdf vm安装及使用 asdf vm安装Mave
  • 「C++学习笔记」面向.Net Core的(C++)CLR类库非专业入门(+使用Opencv)

    关键词 C CLR Net Core Net Famework Opencv C 目录 什么是CLR类库 本文说明 创建Demo程序 调用dll 通过项目引用 通过dll文件引用 其他还没完全清楚的坑 有关C CLI这块的资料真的很少而且都
  • 如何看待ChatGPT

    如何看待ChatGPT 如何看待ChatGPT 语言学家乔姆斯基说 这是一个抄袭的机器 欺骗性机器 ChatGPT使用大量文本数据进行训练 然后以一种令人信服的修饰语句展现 这使得它和人的互动能力更加契合 但是仍然不是一个充满创造力的智能机
  • 微信小程序之拨打电话

    微信小程序拨打电话功能的实现是采用wx makePhoneCall 具体方法如下 wxml lt view gt 电话 15888888888 lt view data ph 15888888888 bindtap callPhone gt
  • 【Android 12 AOSP学习】Android 12源码下载编译

    一 搭建环境 liunx系统 Ubuntu20 04 Android系统 12 1 安装 Repo 下载Repo前先安装 curl 库 sudo apt get install curl 下载好 curl 库后 设置清华源下载 Repo 然
  • 前端 JavaScript 提取 JSON 数据

    原文地址 假如我们从后端接收到了以下 JSON 数据 id 1 name Xu Albter age 18 使用 JSON parse 方法处理以上数据 将其转换为 JavaScript 对象 var obj JSON parse id 1
  • select函数缺陷分析

    与poll和epoll不同 select函数是事件为单位组织文件描述符 监视的行为较为单一 函数原型 int select int nfds fd set readfds fd set writefds fd set exceptfds s
  • 链表应用:两数相加

    关于链表 链表是一种极其重要的数据结构 因为对指针和抽象思维的要求较高 一度成为身边同学最痛恨的对象 我在将这里演示如何使用链表制作一个可以按位储存数字的容器 鉴于本人亦初学者 有错误请各位在评论区指正 这里还是以介绍链表为主 算法部分苦于
  • SpringCloud和微服务介绍

    SpringCloud介绍 微服务架构是什么 微服务实例的开发 服务的注册与发现 负载均衡 服务容错 API网关 分布式配置中心 调试 部署 持续集成 SpringCloud介绍 SpringCloud是在SpringBoot的基础上构建的
  • 一个完整详细的二维SVR案例分析过程

    文章目录 案例介绍 数据预处理 函数拟合仿真 SVR建模 模型调参 案例介绍 首先 此次案例是以油气开发为背景 选取加粗样式其中重要的两个参数含油饱和度和孔隙度分别作为此次案例的自变量和因变量进行试验 按照正常的案例分析步骤进行操作 此次为
  • 神经网络(ANN)

    算法介绍 概念 人工神经网络是由具有适应性的简单单元组成的广泛并行互连的网络 它的组织能够模拟生物神经神经系统对真实世界物体所作出的交互反应 在实际应用中 80 90 的人工神经网络模型是采用误差反转算法或其变形形式的网络模型 一个神经网络
  • 小程序的配置文件和小程序的模板语法

    微信小程序 小程序的配置文件 一个小程序应用程序会包括 会有最基本的两种配置文件 一种是全局的 app json 一种是页面自己的 page json 注意 配置文件中不可以出行注释 1 1 全局配置文件 app json app json
  • 主题模型(Topic Model)与LDA算法

    Topic Model 主题模型 Topic Model 是以非监督学习的方式对文档的隐含语义结构 latent semantic structure 进行聚类 clustering 的统计模型 主题模型认为在词 word 与文档 docu
  • 第十三章:QT多线程(QThread)

    回顾 第一章 Qt的概述 第二章 在Ubuntu编写第一个Qt程序 第三章 Qt的字符串和字符编码 第四章 Qt的信号和槽 第五章 Qt容器窗口 父窗口 第六章 面向对象的Qt编程 第七章 Qt设计师使用 designer 第八章 Qt创造
  • Unittest框架多个testcase之间全局变量的调用

    unittest模块进行接口自动化的时候遇到以下场景 新增 修改 查看 删除一个项目配置流程 但是每次用真实数据请求 数据库就会增加很多脏数据 所以就产生了数据一条龙服务 从新增到删除 涉及到了Unittest下个接口需要调用上个接口的返回
  • mysql数据库访问控制查询_MySQL ------ 管理用户对数据库的访问控制(GRANT 与 REVOKE)(二十九)...

    数据库服务器通常包含着关键的数据 所以为了确保这些数据的安全和完整需要要利用访问控制 MySQL服务器的安全基础是 用户应该对他们需要的数据具有适当的访问权 既不能多也不能少 即用户不能对过多的数据具有访问权 访问控制 需要给用户提供他们所
  • 电子计算机的发展史

    1 电子计算机元器件变化 继电器 真空管 晶体管 2 计算机的出现背景 20世纪人口暴增 科学与工程进步迅速 航天计划成形 以上导致数据的复杂度急剧上升 计算量暴增 对于计算的自动化 高速有迫切的需求 3 电子计算机的发展 1945年 哈佛
  • antd table合并行或者列(动态添加合并行、列)

    antd table合并行或者列 动态添加合并行 列 表头只支持列合并 使用 column 里的 colSpan 进行设置 表格支持行 列合并 使用 render 里的单元格属性 colSpan 或者 rowSpan 设值为 0 时 设置的
  • Ubuntu系统安装企业微信和微信

    一 Ubuntu16 04安装企业微信 1 安装git工具 sudo apt install wget g git 2 安装deepin wine git clone https gitee com wszqkzqk deepin wine
  • UE4 行为树装饰器(Decorator)简单实用说明(1)

    在行为树标准模型中 条件语句为 Task 叶节点 除成功和失败外不执行任何操作 虽然也可以使用传统的条件 tasks 但还是强烈推荐您使用 Decorator 系统作为条件语句 使用 decorators 而非 tasks 作为条件语句有多