UE4 HTN插件使用说明
文章目录
- 介绍
- 流程
- 复合节点
- 任务
- 装饰器
- 服务
- VisualLogger
- [VisualLogger 说明](http://docs.manew.com/ue4/1218.html)
- HTN VisualLogger 使用指南
源码部分
介绍
HTN的优势就是可以对未来进行规划(全局最优、全局代价最小),所以可以轻松做到多个盒子和球,分别到达一次盒子和一次球,总时间最短这种事情
内部有一个Loop-Submit,相当于一个任务在规划时创建多个分支,会对每种分支进行代价计算
流程
- 计划制定:根据Task(可多次提交、通过worldstate剪枝)、复合节点(If等)、装饰器(通过worldstate剪枝)创建出很多个可选计划
- 计划选择:从中选择一个代价最小的计划进行执行
- 计划执行:一步一步执行计划,直到执行完毕或者计划不合法(任务失败、装饰器检测)为止,重新制定计划
复合节点
接口:单个接口可以连接多个节点,会选择Cost小的那个执行
Any Order:创建AB和BA两种情况分支,进行代价评估
If:如果装饰器成功则运行top-branch,否则bottom-branch
Parallel:平行,执行top-branch和时候同时执行bottom-branch,代价相加(先计算bottom-branch)。top-branch执行结束会打断bottom-branch,反之则不会
Scope:包装。由于HTN内任务节点不一定是根,所以假设需要在之后的节点内持续激活装饰器和服务,就需要这个包装。可以看成没有任何功能的复合节点
Sequence:先A后B
SubNetwork:子HTN
SubNetworkDynamic:动态子HTN,设置一个默认的HTN,以及一个GameplayTag用于在运行时修改该节点所对应的子HTN
任务
CreatePlanSteps内使用SubmitPlanStep(this, NewWorldState, Cost)
提交分支(计划中的一步),并以NewWorldState对之后的计划造成影响。在实际运行成功结束时,此影响也会施加到黑板键上。
例如EQS、SetValue、SetRandomPoint等设置黑板键的任务,其修改的目标值并不是开始任务时定下的,而是制定计划的时候就已经定下
装饰器
下图中有4种检测场合,分别是:
- Plan Enter:当前节点开始制定计划(CreatePlanSteps)时是否需要检测(不包括开始执行)
- Plan Exit:当前节点结束制定计划(CreatePlanSteps)时是否需要检测(不包括结束执行)
- Plan Recheck:处于还未被执行的计划内时,Tick检测
- Tick:处于激活状态时,Tick检测(单任务)
任务节点过去了就不激活了,但是复合节点还会继续激活,继续Tick,这就是Scope存在的原因
服务
和装饰器一样,在激活时进行Tick操作
由于服务是持续性作用,让服务影响worldstate或者检测判断比较麻烦,所以服务设计为不影响worldstate和制定计划,只在激活后运行,接触的也是blackboard而不是worldstate
VisualLogger
VisualLogger 说明
相关代码在Engine\Source\Runtime\Engine\Public\VisualLogger\VisualLogger.h内
打开方式:Tools - Debug - VisualLogger
使用UE_VLOG将日志输出到VisualLogger(每个Tick收集一次打印)
UE_VLOG(GetOwner(), LogHTN, VeryVerbose, TEXT("ticking %s."), *ExecutingTask.GetNodeName());
对象:影响Classes
日志分类:影响Graph Filters和LogsList的头部
日志级别:影响LogsList内的内容
Error Warning Log Verbose VeryVerbose
显示内容:影响LogsList内的内容
UE_VLOG_ARROW等其它绘制办法同理,点击VisualLogger内的某一帧时,会将这一帧的内容在当前世界中画出来
操作:
在制定类别上右键,可以调整显示日志等级(选择等级上方的日志(包括画线)才能显示),下方可以快速关闭所有其它的和开启所有。
HTN VisualLogger 使用指南
点击VisualLogger内的某一帧,可以在World内看到位置,移动目的地等信息
怎么找到制定计划的帧
关闭除HTN外的VisualLogger(HTN上右键 - Disable all but this)
然后将日志级别调成Log即可
下方可以看实时黑板、Plan、Step的记录
制定计划时,选出的计划前面会有箭头标记
UE4 HTN插件使用说明相关推荐
- UE4 HTN插件源码解析
文章目录 节点部分 UHTNNode UHTNStandaloneNode:UHTNNode UHTNTask:UHTNStandaloneNode UHTNService:UHTNNode UHTN ...
- UE4制作插件的插件神器pluginCreator
本文章由cartzhang编写,转载请注明出处. 所有权利保留. 文章链接:http://blog.csdn.net/cartzhang/article/details/45644007 作者:car ...
- DTVideo UE录屏插件使用说明
本插件可以在蓝图中简单调用即可时时录制游戏画面并保存为MP4文件. 插件只有2个蓝图函数开放使用,这两个函数已经可以满足使用需求. This plug-in can be simply called ...
- 翻译Houdini官方对UE4新版插件的介绍:Houdini Engine for Unreal - V2
原视频:Houdini For Unreal - YouTube 目录 介绍 0. 总览 1. 简介HoudiniEngine 2. UE4的HoudiniEngine - 第二版 为什么要做&quo ...
- uniapp 图片上传插件使用说明
插件地址:https://ext.dcloud.net.cn/plugin?id=4589 使用说明 本插件是一个云端上传插件,能够将本地的文件包括图片上传到云存储,ImageX是火山引擎推出的专业图 ...
- UE4 WebUI插件分享
UE4 WebUI插件分享 方便那些无法访问外网的朋友 插件包含了4个版本(4.24~4.27),每个版本里面包含了四4个压缩包 每个压缩包里面都包含了自身的安装方法 链接:https://pan.b ...
- UE4全景插件Nvidia Ansel Photography
Nvidia 的 Ansel 工具使 PC 玩家能更便捷地从游戏中采集高精度图像并进行分享.将 Ansel ue4 插件整合到游戏中的方法简单而快捷. 可在 Nvidia Ansel 站点 查看 An ...
- 【UE4】插件与模块
文章目录 一.什么是插件与模块 二.创建插件 三.插件目录介绍 四.配置文件 1.插件 2.模块 3.项目 五.创建模块 1. 插件中创建模块 2. 项目中创建模块 六.模块加载与卸载 七.插件封装 ...
- UE4 天气系统插件使用
将场景关于灯光天气的先全部删除 将它放入场景 在这里设置天气 想影响到材质的话:例如影响草地材质 拖入进去即可 不想去改引擎插件的话,最简单的动态修改方法就是放多个WeatherSystem然后显隐 ...
最新文章
- 大数据系列6:HBase – 基于Hadoop的分布式数据库
- 编码中统一更该变量的快捷键_流媒体的7种方式使您成为更好的编码器
- 【Android 逆向】IDA 工具使用 ( 函数窗口 Function window | 创建引用图 Xrefs graph to | 创建调用图 Xrefs graph from )
- 作为JavaScript开发人员,这些必备的VS Code插件你都用过吗?
- python和sqlserver_利用python实现mysql数据库向sqlserver的同步
- Python Data Science的多版本多环境管理工具Anaconda
- Microsoft宣布.NET Core支持计划
- Java的注解机制——Spring自动装配的实现原理
- 正则表达式pcre在Android下的移植
- opencv 边缘平滑_基于OpenCV的车道检测实现(一)
- mysql-5.6.31.tar.gz_MySQL5.6.31源码安装
- MPLAB ICD3
- 关于ScreenToClient
- 东芝2510ac请求维修cd40_TOSHIBA东芝2510复印机维修资料
- 微信大数据挑战赛决赛方案:微信视频号推荐算法
- Android开发人员不得不收集的代码(不断更新)
- 微信公众号创建菜单报错40016
- 技术的共通性—从姿态估计到自动驾驶
- 编写优质嵌入式C程序(转)
- 苹果Mac如何查看多张图片?
热门文章
- NOJ 1972 炒股票的女巫璐璐 NOJ 1974 BRN (浅谈两点法)
- java中String xx xx_JAVA超级基础之String型字符串
- 电商数仓DWD层用户行为日志解析
- 修复kali Linux安装AMD ati显卡驱动后开机黑屏
- 东芝虚报销售收入再涉财务造假 遭投诉索赔约166亿日元
- 2021-2027全球与中国金属化陶瓷基板市场现状及未来发展趋势
- FL Studio 编辑软件入门讲解
- 基于I2C硬件协议的AHT20温湿度传感器的数据采集
- 做食品蔬菜零售有什么好用方便的管理软件?
- linux下键盘输入有粘滞感,linux怎么取消粘滞键