首先要在Editor Preferences中设置EQS开关,在General中的Experimental(实验)中的AI中勾选EQS。

这样就可以在AI中创建Environment Querying了。创建了之后进行编辑,如何实现呢,其实跟Task差不多,直接在行为树中进行实现就OK了。下面就说如何去在EQS中写。

写东西要明白要达到什么效果,如何达到。这里想达到的效果是躲猫猫,当看到Player时,就跑到一个看不到他的位置,那么就要EQS要做的是找到这个位置,首先要控制范围,在一定范围里寻找合适的点,创建一个Generator->Point当然在什么区域中寻找点自己定。区域订好了,现在就要进行条件选择了。在其中添加一些FilterAndScore。来选择这些判定的条件,这里说思路,需要哪些判定条件在官方文档中搜索。躲猫猫的寻找点的条件是1.点是不是距离自身最近,是不是距离敌人较远。2.点是不是被敌人看不到,可不可以被自己看到。3.从自身到点的路径是不是存在。4.尽量将点设在角色两旁。就先实现一个这样的小案例,感觉EQS还是很方便的。

1.       用生成器生成一个获取点的范围。创建一个Grid。

介绍一下生成器上的编辑数据,GridHalfSize(一半的大小)SpaceBetween(两个Item之间的距离)(获取点,将会把Location存成一个Item,这里指两个点之间的间隔)GenerateAround围绕着什么生成(生成网格的Context)。TraceMode追踪模式(在什么范围内追踪,一般都在导航区域内,Navigation。)

2.       添加Test,首先测试距离,添加一个Distance,介绍一下面板,TestPurpose测试的目的是过滤还是分数,还是两者都有。Distance->TestMode 测试的模式,3D.2D.Z,根据需求自定,DistanceTo(到哪的距离),FilterType(过滤方式)->Range(一定范围)——Max(最大)——Min(最小),Score->Clamping(限制)

具体如何使用,不清楚。ScoringEquation(分数的方程)->可使用Constant(常量)Linear(线性)Square(平方)InverseLinear(反线性)SquareRoot(平方根),这是对测试权重的算法,很精确。ScoringFactor次测试在所有测试中的权重,可以为负值。

NormalizationType正常化的方式(不知何用),Preview是ScporingEquation的图标。

下面设置参数,使距离Quer的距离近,首先不要过滤,如果过滤的话就只省一个最近的点了,我们要对其进行权重判断,距离近的分高,将所有因素的分数相加取最高的。顾这里要将Purpose设为ScoreOnly.,那DistanceTo的Context就是Querier。这里Context我认为是将一些需要的测试数据存储在其中,进行调用。这里本身就有Querier的Context,这是引擎创建的,而其中的目标则是AIController所控制的Pawn。还需要修改的就是ScoringFactor,因为我想让这个Test占用的权重多一些,就将其改大一点。

3.       那下面就要换做离Player远一些了。与上面不通的就是,目标不同,因为系统中没有Player的Context,我们要自己创建一个基于EnvQueryContext_BlueprintBase的类,在类中可以复写函数有ProvideActor,ProvideLocation。当然也有Single和Array的区分。这里我们这么写,将角色添加进去。

这样更该DistanceTo就OK了,还需要更改的就是ScoreFactor,要的效果是,距离越远分数越多。

4.       接下来就是第二个条件了,判断可不可以被看到,那么我们可以用Test中的Trae来设置,这是射线的检测,被Hit到代表可以被追踪到。

5.       先设定,不能被Player看到,这里就使用过滤了,分数有没有都可。将被Player看到的点都过滤掉。这里在介绍一下Detail面板中的Trace,TraceChannel(追踪通道),设置通道的碰撞,TraceComplex,(对复杂的网格进行追踪)TraceFormContext(将射线从Context发出)Filter->BoolMatch(布尔值)(将看到的点进行过滤)(不勾选的话将没看到的点都过滤)。

6.       设定能被Querier看到的点。

7.       获得的点必须是要可以移动过去的,这里可以添加一个Test->PathFinding.

8.       基本上就可以了。不过要是更加智能还需要添加Dot。

9.       Dot的目的是测试角度,LineA和LineB的点积为返回值。向量A*向量B=|A|*|B|*cos角度,所以在加绝对值的情况下返回0是0或180度(也就是前后),返回1的时候就是-90或90度(就是左右)。这样就可以对点进行位于目标的左右还是前后进行分数改变了。

还有一个小知识点就是AIDebug,Show->Developer->AIdebug。Play后点击‘(Enter左边)就可以看到了,进行调试。

转载于:https://www.cnblogs.com/wbx-Blog/p/7147666.html

EQS(场景查询系统)相关推荐

  1. tkmybatis 子查询_日均20亿流量:携程机票查询系统的架构升级

    携程机票查询系统,日均20亿流量,且要求高吞吐,低延迟的架构设计.于是,提升缓存的效率以及实时计算模块长尾延迟,成为制约机票查询系统性能的关键.本文是携程集团机票业务技术总监宋涛在「云加社区沙龙onl ...

  2. asp毕业设计——基于asp+access的学生成绩查询系统设计与实现(毕业论文+程序源码)——成绩查询系统

    基于asp+access的学生成绩查询系统设计与实现(毕业论文+程序源码) 大家好,今天给大家介绍基于asp+access的学生成绩查询系统设计与实现,文章末尾附有本毕业设计的论文和源码下载地址哦. ...

  3. java毕业设计——基于java+JSP+J2EE的城市公交查询系统设计与实现(毕业论文+程序源码)——城市公交查询系统

    基于java+JSP+J2EE的城市公交查询系统设计与实现(毕业论文+程序源码) 大家好,今天给大家介绍基于java+JSP+J2EE的城市公交查询系统设计与实现,文章末尾附有本毕业设计的论文和源码下 ...

  4. Javaweb城市公交查询系统的设计与实现

    Javaweb城市公交查询系统的设计与实现 摘 要 近年来, Internet推动了以互联网技术为核心的各项工作蓬勃展开,互联网的强大也大大的促进了社会的发展,整个社会信息化进程逐步加快,网络也变成了 ...

  5. 【php毕业设计】基于php+mysql的成绩查询系统设计与实现(毕业论文+程序源码)——成绩查询系统

    基于php+mysql的成绩查询系统设计与实现(毕业论文+程序源码) 大家好,今天给大家介绍基于php+mysql的成绩查询系统设计与实现,文章末尾附有本毕业设计的论文和源码下载地址哦. 需要下载开题 ...

  6. dremio连接mysql_一种基于dremio实现跨数据源分布式查询系统和方法_2018108444691_说明书_专利查询_专利网_钻瓜专利网...

    a.给选择出的最优sql配置一个sqlid和sql模板: b.sql模板会预留sql参数: c.用户通过sqlid和参数调用查询接口: d.查询接口使用模板生成dremio的sql: e.通过drem ...

  7. 【项目精选】城市公交查询系统(论文+视频+源码)

    点击下载源码 1.1 选题背景 随着低碳生活的普及,人们更倾向于低碳环保的出行方式,完善公交系统无疑具有重要意义.公交是居民日常生活中最常使用的交通工具之一,伴随着我国经济繁荣和城市人口增长,出行工具 ...

  8. 基于java的医院门诊查询系统代码

    源码编号:B-E83 项目名称:基于JSP+Servlet的医院门诊查询系统 源码作者:霹雳制作 论文作者:逍遥游撰写 当前版本:V1.0版本 用户类型:三角色(患者.医生.管理员) 项目架构:B/S ...

  9. 基于HBase的冠字号查询系统1--理论部分

    1. 软件版本和部署 maven:3.3.9,jdk:1.7 ,Struts2:2.3.24.1,hibernate:4.3.6,spring:4.2.5,MySQL:5.1.34,Junit:4,M ...

最新文章

  1. dstat用法;利用awk求dstat所有列每列的和;linux系统监控
  2. 如何使用React Hook
  3. org.springframework.web.servlet.PageNotFound - No mapping found for HTTP request with URI
  4. 【SpringCloud】服务注册之 Consul
  5. linux脚本base64加密当时,【加密算法】Base64
  6. 我和Django那些事儿(8)----相册django插件photologue,jQuery插件Slides
  7. j - cyk追楠神系列一_「清单」小米烧水杯太萌了,喜茶桂花冻太香了,优衣库新系列太美了!...
  8. postgresql报错 :FATAL: no pg_hba.conf entry for host 192.168.163.130,user postgres,database pos
  9. 苹果8p吃鸡服务器没有响应,今天绝地求生更新之后进不去了,一进开始界面就游戏未响应:为什么绝地求生更新完进不去...
  10. Python入门--类的创建
  11. [leetcode]5179. 将二叉搜索树变平衡
  12. python数值计算库Numpy学习之—np.linalg.norm(求范数)
  13. 苹果屏幕录制怎么没有声音_苹果6plus没有声音怎么回事
  14. 最小的 中文 linux,麻雀虽小五脏俱全 最小Linux系统试用
  15. [AAM-GCN Neurocomputing2021] Attention adjacency matrix based graph convolutional networks for skele
  16. Destoon增加内容页的浏览历史记录
  17. 既有住宅加装电梯数学建模问题
  18. 华北电力大学2021年高等代数试卷
  19. 错误率的计算、离散概率模型下的统计决策举例
  20. 34、查询课程名称为数学,且分数低于60的学生姓名和分数(不重点)(自己做出)

热门文章

  1. 前缀树TrieNode
  2. Vue3 element-ui实现Pagination分页组件--封装分页
  3. 程序员面试等通知一般多久?
  4. 基于python-opencv给图像添加水印
  5. taobao.trades.sold.query( 根据收件人信息查询交易单号 )
  6. MySQL高性能索引设计
  7. iOS 支持webrtc的浏览器 bowser
  8. web应用F12查看报错(前后端bug判断、2XX/3XX/4XX/5XX常见状态码解析)
  9. Easy Deep Learning——卷积层
  10. 产业巨头布局移动互联网 惠普比联想棋高一筹