EQS节点参考:情境

讲述在EQS系统中情境如何用于测试和生成器。

Windows
MacOS
Linux

在场景查询系统(EQS)中,情境 为使用的所有测试生成器提供参考框架。情境可以是简单的 查询器(其执行测试),也可以比较复杂,例如 某种类型的所有ActorPoints:Grid 之类的生成器可以使用返回多个位置或Actor的情境。这将会在每个情境的位置处创建一个网格(按照定义的大小和密度)。除了引擎提供的情境以外,还可以在蓝图中使用 EnvQueryContext_BlueprintBase 类或通过 C++ 代码创建自定义情境。 

EnvQueryContext_Item

项目(Item) 由生成器创建,如果使用 EQS测试Pawn 创建,那么它们就是出现在编辑器中的球体。EnvQueryContext_Item是位置(FVector)或Actor(AActor)。

EnvQueryContext_Querier

查询器 是当前被AI控制器占据的Pawn,执行启动场景查询的行为树。举例而言,可以使用查询器作为情境的一种情况是:希望在AI角色周围的场景中搜索它们可以使用的物品,或者寻找可以使其获得掩护躲避玩家的地方,或者只是确定AI执行查询的当前位置。

在生成器类型的 细节(Details) 面板中,可以将查询器指定为下列属性的情境:

生成器

属性

Actors of Class

Search Center

Querier_SearchCenter.png

Current Location

Query Context

Querier_CurrentLocation.png

Points:Circle

Circle Center

Querier_Circle.png

Points:Cone

Center Actor

Querier_Cone.png

Points:Donut

Center

Querier_Donut.png

Points:Grid

Generate Around

Querier_Grid.png

Points:Pathing Grid

Generate Around

Querier_PathingGrid.png

EnvQueryContext_BlueprintBase

可以通过蓝图使用 EnvQueryContext_BlueprintBase 类创建自定义情境。这会提供四个可覆盖的函数,以便用户添加自己的自定义情境,用于查询中的测试。

使用自定义情境的方法:

  1. 创建 EnvQueryContext_BlueprintBase 类的新蓝图。
    BlueprintBase_Create.png

  2. 在EnvQueryContext_BlueprintBase中,单击 覆盖(Override) 并选择要使用的函数类型。
    BlueprintBase_Function.png

请参见下表了解每种函数覆盖的描述:

函数

描述

Provide Single Location

这会返回单个位置(矢量)。生成该位置的方式由用户来决定。举例而言,下面的函数将返回在距离查询器1500厘米以内范围发现的随机Actor(在DesiredObjectType中发现的Actor,如Pawn、载具)的追踪命中位置。

Provide Single Actor

这会返回单个Actor。可以通过任何想要的方法获取该Actor。在这个示例中,该函数将返回玩家0的受控Actor:

ProvideSingleActor.png

Provide Locations Set

这会返回位置(矢量)的数组。生成这些位置的方式由您决定。在下面的示例中,此函数将从位于一个半径1500单位的圆上的16个等间距位置进行追踪,返回场景中的成功命中:

Provide Actors Set

这会返回Actor的排列。可以使用任何想要的方法获取这些Actor。下面的示例使用了一个“获取所有Actors of Class”(Get All Actors of Class)节点来将我们指定的类获取为要返回的Actor:

ProvideActorsSet.png

Select Skin
Light
Dark

欢迎来到全新虚幻引擎4文档站!

我们正在努力开发新功能,包括反馈系统,以便您能对我们的工作作出评价。但它目前还未正式上线。如果您对此页面有任何意见与在使用中遭遇任何问题,请前往文档反馈论坛告知我们。

新系统上线运行后,我们会及时通知您的。

发表反馈意见