zoukankan      html  css  js  c++  java
  • EQS

    QueryContext

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

    两个常量:

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

    EnvQueryContext_Item 表示生成的点本身

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

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

    ProvideActorSet 提供一组actor

    ProvideSingleLocation 提供一个三维向量

    ProvideSingleActor 提供一个actor

    ProvideLocationSet 提供一组三维向量

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

    Generators

    用于生成一系列点

    Points: Circle

    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

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

  • 相关阅读:
    通过docker把本地AspNetCore WebAPI镜像打包到阿里云镜像仓库并在centos部署
    记一次Java AES 加解密 对应C# AES加解密 的一波三折
    .Net Core MVC实现自己的AllowAnonymous
    Net Core 中间件实现修改Action的接收参数及返回值
    手把手教你实现自己的abp代码生成器
    C# 实现Jwtbearer Authentication
    vs2017调试浏览器闪退
    ABP 邮箱设置
    FastJson反序列化获取不到值
    内网环境下搭建maven私服小技巧
  • 原文地址:https://www.cnblogs.com/AnKen/p/7523185.html
Copyright © 2011-2022 走看看