EQS

QueryContext

查询环境,表示以哪个东西作为查询参考点

两个常量:

EnvQueryContext_Querier表示查询者本身作为查询参考点,假如查询者为敌人的AI,那么就代表敌人本身。

EnvQueryContext_Item 表示生成的点本身

另外可以自己定义QueryContext,方法如下:

创建一个蓝图,基类选择EnvQueryContext_BlueprintBase, 然后override它的函数,根据需要进行override,共有4个函数可以override:

ProvideActorSet 提供一组actor

ProvideSingleLocation 提供一个三维向量

ProvideSingleActor 提供一个actor

ProvideLocationSet 提供一组三维向量

例如,下面的例子创建了一个提供ThirdPersonCharactor 对象作为参考点

Generators

用于生成一系列点

Points: Circle

Circle Radius:圆圈半径

Space Between:点之间的距离

Number Of Points:点的数量

Point on Circle Spacing Method: 采用点的间距还是点的总数来布点

Arc Direction 扇形方向

Arc Angle:扇形范围,例如180就只有半个圆弧

下面两项在其他Generators上都有,属于通用选项

Trace Data: 水平方向上Trace点的位置

Trace Mode:

None 完全无视NavMesh和物体,一般不会使用

Navigation 以NavMesh作为边界进行查找

Geometry 以几何体作为边界进行查找

Navigation Over Ledge 暂时未发现和Geometry的区别

Trace Channel:

查找通道,和Line Trace的channel一样。可选Visibility和Camera

Trace Shape:

类似于Line Trace和Sphere Trace。另外还有Box和Capsule可选

Projection Data: 垂直方向上Trace点的位置

Trace Mode:

Navigation 以NavMesh的高度作为目标高度

Geometry 以几何体的高度作为目标高度

Projection Down 向下延伸多少距离进行Trace

Projection Up 向上眼神多少距离进行Trace

Points: Cone

Points: Donut

Points: Grid

Points: Path Finding Grid

相当于在Grid的基础上过滤掉了无法导航到的位置

Tests

过滤条件

Distance

根据距离评分或过滤

Test:

(通用,后面的不再说明)

Test Purpose:

Filter Only: 仅过滤。对点进行一次“硬排除”,把不符合条件的点排除掉,而符合条件的点不做任何处理。

Score Only:仅评分。对所有的点进行一次评分,不做任何过滤。

Filter and Score:过滤和评分,对不符合条件的点进行排除,剩余的点进行评分。

Distance:

Test Mode: 哪个方向/维度上的距离

Distance 3D 三维空间距离

Distance 2D 水平方向距离

Distance Z 垂直方向距离

Distance Z (Absolute) 暂不清楚和上一个选项具体的区别以及应用场景

Distance To: (每个点)到哪里的距离

这里一般不适宜使用EnvQueryContext_Item,因为这样的意思就是测量每个点到自身的距离,当然所有的数值都是0,起不到任何作用

Filter: (通用模块,后续不再重复说明。仅当启用了Filter或者Filter and Score两个Test Purpose才有用)

有Range, Minimum 和 Maximum三个模式,分别是制定一个范围,选取最小的和最大的

Score:(通用模块,后续不再重复说明)

Scoring Equation:

Linear 线性增加,表示数值越大评分越高,在当前Distance过滤器中,意思就是离查询参考点越远,评分越高

Inverse Linear线性减少,表示数值越小评分越高,在当前Distance过滤器中,意思就是离查询参考点越进评分越高

Square和InverseSquare是上述两个选项的曲线图形平方。

Square Root,是Linear的平方根

Dot

Line A 第一个向量

Mode :

Rotation 使用一个对象的朝向

Two Points: 使用两个点

Line Frome: 向量的起点

Line To: 向量的终点

Line B 第二个向量

上图范例:LineA是查询者(图中TestingPawn)的朝向, Line B是从查询者到每一个目标点,由图可见,两个向量夹角越小,dot值越大。

Trace

很简单,视线检测,不过需要注意亮点:

首先一般这里都使用排除, 即Filter模式,因为这里的结果是布尔型的,评分没有意义

其次默认情况下,Trace过程中碰到了东西是True,没有Trace到东西结果是False,如果想把结果进行反向,可以在Score中把Bool Match 的勾去掉。

PathFinding

也很简单,检测从参考点到目标点之间是否存在导航路径。

时间: 2024-08-09 01:55:53

EQS的相关文章

POJ 1840 Eqs(暴力)

Description Consider equations having the following form: a1x13+ a2x23+ a3x33+ a4x43+ a5x53=0 The coefficients are given integers from the interval [-50,50]. It is consider a solution a system (x1, x2, x3, x4, x5) that verifies the equation, xi∈[-50,

EQS(场景查询系统)

首先要在Editor Preferences中设置EQS开关,在General中的Experimental(实验)中的AI中勾选EQS. 这样就可以在AI中创建Environment Querying了.创建了之后进行编辑,如何实现呢,其实跟Task差不多,直接在行为树中进行实现就OK了.下面就说如何去在EQS中写. 写东西要明白要达到什么效果,如何达到.这里想达到的效果是躲猫猫,当看到Player时,就跑到一个看不到他的位置,那么就要EQS要做的是找到这个位置,首先要控制范围,在一定范围里寻找

POJ 1840.Eqs

Eqs Time Limit:5000MS     Memory Limit:65536KB     64bit IO Format:%I64d & %I64u Submit Status Practice POJ 1840 Description Consider equations having the following form: a1x1 3+ a2x2 3+ a3x3 3+ a4x4 3+ a5x5 3=0 The coefficients are given integers fr

Eqs 折半枚举+二分查找 大水题

Eqs 题目抽象:a1x13+ a2x23+ a3x33+ a4x43+ a5x53=0 (*),给出a1,a2,a3,a4,a5.    ai属于[-50,50]. 求有多少序列   x1,x2,x3,x4,x5 ,xi属于 [-50,50]-{0}. 思路:折半枚举+二分查找 1 #include <iostream> 2 #include <cstdio> 3 #include <cstring> 4 #include <cmath> 5 #inclu

POJ 1840 Eqs(hash)

题意  输入a1,a2,a3,a4,a5  求有多少种不同的x1,x2,x3,x4,x5序列使得等式成立   a,x取值在-50到50之间 直接暴力的话肯定会超时的   100的五次方  10e了都    然后可以考虑将等式变一下形   把a1*x1^3+a2*x2^3移到右边   也就是-(a1*x1^3+a2^x2^3)=a3*x3^3+a4*x4^3+a5*x5^3 考虑到a1*x1^3+a2^x2^3的最大值50*50^3+50*50^3=12500000  这个数并不大  可以开这么大

测试赛C - Eqs(哈希)

C - Eqs Time Limit:5000MS     Memory Limit:65536KB     64bit IO Format:%I64d & %I64u Submit Status Description Consider equations having the following form: a1x1 3+ a2x2 3+ a3x3 3+ a4x4 3+ a5x5 3=0 The coefficients are given integers from the interva

poj 1840 Eqs 【解五元方程+分治+枚举打表+二分查找所有key 】

Eqs Time Limit: 5000MS   Memory Limit: 65536K Total Submissions: 13955   Accepted: 6851 Description Consider equations having the following form: a1x13+ a2x23+ a3x33+ a4x43+ a5x53=0 The coefficients are given integers from the interval [-50,50]. It i

POJ 1804 Eqs

C - Eqs Time Limit:5000MS     Memory Limit:65536KB     64bit IO Format:%I64d & %I64u Submit Status Description Consider equations having the following form: a1x13+ a2x23+ a3x33+ a4x43+ a5x53=0 The coefficients are given integers from the interval [-5

POJ 1840 Eqs(哈希)

题目地址:POJ 1840 sad...整个比赛期间一直以为是用什么定理或数学公式推导来做..一直没仔细看..结果最后5分钟的时候才看到每个元素的数据范围只是[-50,50]...算了..就算看到了也做不出来..因为会MLE,解决MLE需要把hash数组的定义类型定义成short...这我是不可能想出来的....也没遗憾了.. 这题就是先求前两个for循环,将结果用hash数组存起来.再进行后面三个for循环,如果值为相反数的话,说明和为0.然后记录有多少个. 代码如下: #include <i