EQS(场景查询系统)

首先要在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左边)就可以看到了,进行调试。

时间: 2024-10-25 01:32:48

EQS(场景查询系统)的相关文章

基于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,Myeclipse:2014: Hadoop2.6.4,HBase1.1.2 源码下载:https://github.com/fansy1990/ssh_v3/releases 部署参考:http://blog.csdn.net/fansy1990/article/details/51356583 数

基于Impala平台打造交互查询系统

本文来自网易云社区 原创: 蒋鸿翔 DataFunTalk 本文根据网易大数据蒋鸿翔老师DataFun Talk--"大数据从底层处理到数据驱动业务"中分享的<基于Impala平台打造交互查询系统>编辑整理而成,在未改变原意的基础上稍做整理. 以上是今天的内容大纲,第一个讲一下交互式查询的特点,在大数据平台有很多查询平台可以选择,第二个讲一下依据项目如何选择平台,选型因素是什么.第三个讲一下Impala基本介绍,以及在Impala上的改进.接下来是impala的应用场景,最

依云工资查询系统升级至6.0

作品介绍:依云工资查询系统,一款企业员工工资查询软件,管理员只需录入员工信息.添加工资模板.上传员工工资,员工即可网上查询工资.查询工资更加方便,实现无纸化工资查询,大大节省打印裁剪工资条时间.1.设有3种不同的角色:系统管理员.部门管理员.普通用户.系统管理员可以录入部门管理员.添加工资模板.上传员工工资,部门管理员可以编辑对应部门的员工与工资,员工可以查看自己工资.2.支持Excel表格模板上传员工信息,使员工信息录入更加方便.3.支持Excel表格模板上传员工工资,使员工工资上传更加快捷.

Oracle EBS-SQL (SYS-11):查询系统已打的PATCH.sql

select a.patch_name,         b.DRIVER_FILE_NAME,         c.language,         b.creation_datefrom apps.ad_applied_patches    a,        apps.ad_patch_drivers      b,        apps.ad_patch_driver_langs c where a.applied_patch_id = b.applied_patch_id     

开房记录查询系统

开房记录查询系统★★扣扣187.5969★★查全国开房记录,微信聊天记录,手机通话短信清单,全家户籍,身份证轨迹,手机定位,婚姻调查等 推乐趣 在数字世界中,只需点击一下即可获得王国的钥匙. 你知道鱼叉钓鱼是历史上最大的数据泄露背后的唯一秘密武器吗? 这是真的,因为雅虎的一个员工成为一个简单的网络钓鱼攻击的受害者,点击了一个错误的链接,让黑客在公司的内部网络立足. 您可能熟悉网络钓鱼攻击 - 企图窃取用户凭据或财务数据 - 而钓鱼网络钓鱼是一种有针对性的网络钓鱼形式,攻击者欺骗员工或供应商提供远

Ajax + PHP实现域名查询系统

运行环境:WAMP/XAMPP搭建的本地服务器. 预备知识:HTML + PHP的用户交互和表单,变量传递:上篇简介的Javascript类对象和Ajax技术. 由于生成的页面太丑,自行搜索了点CSS知识.稍微美化了一丢丢丢,前端只上代码不注释. <style type="text/css"> body, div, dl, dt, dd, ul, ol, li, h1, h2, h3, h4, h5, h6,pre, form, fieldset, input, texta

【云图】如何制作全国KTV查询系统?

摘要:本文以[唱吧]531麦霸音乐节为案例,详细解读了如何导入自有数据到高德云图,并进行检索和展示.最后,调起高德mobile地图来进行路线规划和周边查询. 本案例可以应用在微信开发平台,支付宝公众服务上,适合餐饮商家,汽车4S店,银行,停车场等业务. 由于使用高德云图+URI API的方式实现,开发者无需进行繁琐的数据库操作,即可实现自有数据的存储与检索. -------------------------------------------------------------- 一.数据准备

《结对-自然语言进行数据库查询系统-设计文档》

二〇一七年九月十四日十点一刻少两分钟 关于结对编程的设计文档: 题目:自然语言进行数据库查询系统 编程语言:C# 数据库:MySql ,其他逐渐扩展 软件所要实现的功能: 用户打开软件之后可以连接到数据库,并且通过自然语言进行数据库的查询,例如我想知道小明的学号,如果在数据库中查询需要输入 select ID from 学生表 where name = "小明"才能实现,我们要做的是,输入查询小明的学号,软件就可以将自然语言转换成sql语句进行数据库的查询. 所要实现的功能: 1.进行

《结对-自然语言进行数据库查询系统-开发环境搭建过程》

二〇一七年九月十四日晚上十点半多了一分钟 题目:自然语言进行数据库查询系统 编程语言:C# 数据库:MySql ,其他逐渐扩展 环境理论支持windows的所有版本(如果现在仍然有95,98,2000这样的系统那我也没办法了,没实际测试过...) 编译器使用:Visual Studio 2015 数据库使用:MySql数据库(计划未来支持更多) 环境搭建过程:因为环境较为特殊不需要特别搭建哈....