What is EQS (Environmental Query System)?
Is a function of the UE4AI system to collect data from the surrounding environment
In EQS, the collected data can be asked questions through different kinds of tests ,
which will generate the most suitable items according to the type of questions asked
Builder
For example, SimpleGrid in EQS_FindPlayer is a generator, which is used to generate
the position or Actor to be tested and weighted, and what is generated is a range and a shape
test node
It is mainly used to test distance, custom boundaries, points, or track certain hit or miss events, as well as
the length of pathfinding, etc.
In the Trace tracking test,
the blue represents the filtered position, that is, do not select
Red is the reserved position, that is, select the position
Trace test:
In the result of the scene query, ask the result through the test to filter or select the optimal value.
Distance test
Select the optimal value according to different tests, green is more preferred than other colors
situation
Context is to provide a frame of reference for all tests or generators used. It can be a simple queryer
or complex. For example, all Actors of a certain type
can be simply understood as: where to test, or who needs to test
Scene Query Test Pawn
By dragging this into the scene and modifying the value in the editor, you can see the query test changes, the corresponding range changes, and the query color changes in advance
Allow controller to act as EQS querier
After ticking in the project settings,
it is allowed to use the Pawn controlled by the player or AI as a queryer.
My current understanding is that the Pawn that was originally dragged into the scene by Test can now be used as an AI and mobile query.
Understanding of node concept in EQS queryer
1:ActorsofClass
The generator finds all Actors of a given class within a specified radius around the search center. The
returned Actors can be used as test items.
Actors can be seen as containers containing objects of a particular type.
Note: This search is not affected by levels Angle of view, the influence of terrain, as long as it is within the range, you can find
2: Situation
EQC_C in the EnvQueryContext_Querier
project refers to the querier, which
is the Pawn currently controlled by the AI controller, and executes the behavior tree that starts the scene query. For example,
a situation where the querier can be used as a situation is:
I want to be in the AI role Search for items that they can use in the surrounding scenes, or find
a place where they can get cover to avoid players, or just determine the current location where the AI executes the query. The
simple understanding is: who is the center of the query, or reference objects, objects, enemies , friend?
When it is set to EnvQueryContext_Item,
if you turn on the option of only generating Actors in the radius, you will not be able to search for players in the scene.
After removing it, it means looking for players in the entire scene without distance restrictions.
When set to EnvQueryContext_Querier,
if you turn on the Actor option that generates only the Actors in the radius, it means searching for players within the range
; after removing it, it means looking for players in the entire scene without distance restrictions.
custom context
The overloaded function provides an array of multiple locations.
One, the arrangement of multiple Actors.
In Point:Grid, an item (item) grid will be generated around the queryer specified under GenerateAround
Dot test
Computes the dot product of two vectors, taking advantage of the properties of the dot product, these vectors can be situational choices, or
vectors from one point to another, used to determine if something is oriented towards something else.
If two vectors If the dot product is greater than 0, then their direction is similar, if it is less than 0, the direction is opposite, and it is judged whether it is in front of the player or behind it
(To be added)