介绍

EQS环境查询 主要是用来从场景环境中获得你想要的满足指定条件的数据,主要是和AI行为树配合使用, 比如获得获得玩家距离最近的位置等等
详细的官网文档 链接

下面是简单的使用方法,目的是寻找一个点,这个点是不被玩家看到,并且距离玩家最近的点

准备

使用EQS需要在EditorSetting中实验功能中开启EQS

步骤

  1. 创建EQS资源
  2. 使用Points:Grid 可以生成点阵位置,从中筛选出我们想要的位置(如果对寻找的位置有特殊的需求,也可以自己在c++中重载UEnvQueryGenerator,参考现有的SimpleGrid等)


3. 点击Generate 在右侧的属性中介绍主要几个, 详细的可以参考官方文档
GridHalfSize:环境的范围
SpaceBetween:寻找到的点的间隔
GenerateAround:寻找范围的中心点,默认是运行行为树的ai位置,也可以通过添加继承自EnvQueryContextBlueprintBase,重载其中的Provide SingleActor,返回你想要的actor

4. 在Generator上右键添加Test,Test分为两类,一种是过滤掉不合适的位置,还有一类是根据条件给不同的位置打分,便于比较不同位置的权重,比如你想要的最远或者最近,下面添加的三个目的分别是 寻找点存在可以抵达玩家位置路径,过滤掉可以看见玩家的位置,距离玩家越近得分越高

这里说一下Test中通用的几项属性
Test Purpose:使用Filter过滤还是Score打分
Context: 设置目标对象,我这里是EQCContext_Player,自定义的EnvQueryContextBlueprintBase类,返回的是当前的玩家,你也可以自由修改返回的对象
BoolMatch:设置是否满足test条件,简单的说比如使用trace Test,TestPurpse设置为FiterOnly,那么为true的情况,就是代表过滤掉能被玩家看见的位置,false的话就是过滤掉不能被玩家看见的位置
ScoringFactor:作用和上面的差不多,为1的话,那么距离玩家越远,得分权重越高,设置为-1的话,离玩家越近得分权重越高

  1. 在行为树种使用EQS

    使用RunEQSQuery,这里要注意右侧一个是BlackboardKey,这里要现在黑板中定义一个Vector类型的键,用来存储我们使用EQS的到的点,还有就是Query Template使用我们刚才创建的EQS资源,还有一个RunMode 默认的话是返回得分权重最高的点,你也可以修改返回其他类型。

测试

上面这些做完基本上就是全部内容了,接下来就是如何方便的观察我们的EQS获得点的权重情况,就是在我们的场景中拖一个EQSTestingPawn用来模拟在改Pawn的位置上使用EQS

这里要注意需要将TestPawn的Query Template设置为EQS资源
结果就显示出来了,这里说一下 蓝色代表的就是过滤掉的点,参考我们之前的设置,可以看出来蓝色都是可以被左侧玩家看见的位置,所以需要过滤掉,绿色代表得分权重高,红色代表得分权重低,我们这里就是距离玩家越近,得分越高为绿色,距离玩家越远,得分越低为红色

UE4 简单记录EQS的使用方法相关推荐

  1. 简单记录—vue 用js方法实现侧边导航栏联动选择

    侧边导航栏有两个功能要实现: 1.选择任意一条页面滚动到指定目录位置 2.页面内容滚动侧边栏跟随一起滚动 页面结构部分,根据数据循环写一个ul > li,生成侧边目录 <ul>< ...

  2. mysql group by取条数最多_mysql获取group by总记录行数的方法

    本文实例讲述了mysql获取group by总记录行数的方法,分享给大家供大家参考.具体方法分析如下: 一般来说,mysql获取group by内部可以获取到某字段的记录分组统计总数,而无法统计出分组 ...

  3. 简单记录一下fabric版本1.4的环境搭建,

    简单记录一下fabric版本1.4的环境搭建,运行环境为Ubuntu18.04,其中一些内容是根据官方文档整理的,如有错误欢迎批评指正. 本文只介绍最简单的环境搭建方法,具体的环境搭建解析在这里深入解 ...

  4. mysql groupby 取值_mysql获取groupby总记录行数的方法

    本文实例讲述了mysql获取group by总记录行数的方法,分享给大家供大家参考.具体方法分析如下: 一般来说,mysql获取group by内部可以获取到某字段的记录分组统计总数,而无法统计出分组 ...

  5. oracle仅部分记录建立索引的方法

    今天研究了一下oracle对部分记录建立索引的方法.其实对部分记录建立的索引就是基于 函数的索引.由于部分记录函数化以后,返回了NULL值,而ORACLE索引不索引NULL值, 导致这些记录没有索引条 ...

  6. 数据清洗 Chapter07 | 简单的数据缺失处理方法

      大家好,我是不温卜火,是一名计算机学院大数据专业大二的学生,昵称来源于成语-不温不火,本意是希望自己性情温和.作为一名互联网行业的小白,博主写博客一方面是为了记录自己的学习过程,另一方面是总结自己 ...

  7. 关于majaro安装后的配置,简单记录 机型华硕FZ53v

    关于majaro安装后的配置,简单记录 机型华硕FZ53v 关于majaro安装后的配置,简单记录 机型华硕FZ53v 关于majaro安装后的配置,简单记录 机型华硕FZ53v ##关于v2ray配 ...

  8. 简单记录下几家公司的面试经历(Java一年经验)

    一年经验,记录下最近几家公司的面试经历. 1.深圳缇铭科技有限公司 1)先让自我介绍,讲一下最近的项目 根据项目提问,比如: redis你是如何部署的?你的code是直接套用他们的模板去编写,还是自己 ...

  9. SpringBoot学习之路---简单记录整合SpringSecurity实现登录认证授权

    基本上每一个项目都会有用户登录的这个功能,用户需要在登录之后才能够去访问一些资源,如果没登录的话就不能访问(403).我们可以自己编码去实现这样的业务逻辑,当然每一次都自己去编码是比较耗时的,毕竟市面 ...

最新文章

  1. 技术图文:双指针在求解算法题中的应用
  2. dubbo集群和负载均衡
  3. 用python pandas按块读取超大csv/txt
  4. UA MATH636 信息论9 Reed-Solomon Code
  5. 软件工程个人作业05
  6. 方立勋_30天掌握JavaWeb_Servlet
  7. iOS进阶之正则表达式
  8. oracle 转 mysql 乱码问题吗_Oracle数据传输MySQL中文编码问题
  9. linux open函数解释,linux之open函数解析
  10. 插画素材 | 冬天很冷,看到它内心就暖了!
  11. 为什么黑客都用python-为什么如此多的黑客都用python?
  12. Mac Office如何彻底卸载
  13. SQL:pgsql插入数据
  14. 【Modbus】 RTU CRC校验码计算方法
  15. 从项目中学习Django 天天生鲜---------前台首页分析
  16. 多线程 委托 匿名函数 拉姆达 事件
  17. 使用Datadog在docker环境下监控Java, Tomcat, Nginx, Kfaka, ZooKeeper
  18. 如何用AARRR模型拆解社群运营,实现用户的裂变增长
  19. JavaBean,POJO,EJB的区别
  20. 个人云盘、企业云盘傻傻分不清楚?3分钟带你清晰两者差异!

热门文章

  1. 制作简单的星星评分案例
  2. html2canvas+canvas2image 做vue移动端页面海报
  3. 航空模型手工制作_小学生的简易航空模型地制作
  4. excel使用vb选中指定单元格,到指定行的最后一行有数据的等行数的单元格区间(列等高复制)
  5. android导入音频格式,如何把音乐导入android手机?
  6. 小米10谷歌连携失败_第一批用户反馈小米手表问题多,产品总监发长文解答
  7. html导出excel合并单元格,JS导出EXCEL,动态设置单元格格式,合并单元格(横向或纵向)等操作...
  8. windows下gfortran编译error:Note: The following floating-point exceptions are signalling: IEEE_UNDERFLOW
  9. 破解Windows7开机密码
  10. 记录——kubeadm集群node节点加入