언리얼 엔진의 EQS 노드 레퍼런스: 컨텍스트

컨텍스트가 EQS 시스템의 테스트와 제네레이터에서 어떻게 사용되는지 설명합니다.

Choose your operating system:

Windows

macOS

Linux

인바이런먼트 쿼리 시스템(Environment Query System, EQS)에서 컨텍스트(Contexts) 는 사용되는 테스트(Test)제네레이터(Generator)를 위한 레퍼런스 프레임을 제공합니다. 컨텍스트에는 테스트를 실시하는 주체인 쿼리 요청자(Querier) 처럼 간단한 것도 있고, 특정 타입의 모든 액터(All Actors of a Type) 처럼 복잡한 것도 있습니다. Points: Grid 와 같은 제네레이터는 여러 위치나 액터를 반환하는 컨텍스트를 사용할 수 있습니다. 이 경우, 각 컨텍스트 위치에 크기와 밀도가 정의된 그리드가 생성됩니다. 엔진에서 제공하는 컨텍스트 외에도 EnvQueryContext_BlueprintBase 블루프린트 클래스나 C++ 코드로 커스텀 컨텍스트를 생성할 수 있습니다. 

EnvQueryContext_Item

아이템(Item) 은 제네레이터로 생성되며, EQS 테스팅 폰(EQS Testing Pawn) 을 사용하고 있다면 에디터에 구체로 나타납니다. EnvQueryContext_Item은 위치(FVector)이거나 액터(AActor)입니다.

EnvQueryContext_Querier

쿼리 요청자(Querier) 는 현재 AI 컨트롤러에 빙의되어 인바이런먼트 쿼리를 개시한 비헤이비어 트리(Behavior Tree)를 실행하고 있는 폰입니다. 쿼리 요청자를 컨텍스트로 사용하는 경우의 예시로는 AI 캐릭터가 사용할 아이템을 찾아 환경을 돌아다니거나 플레이어로부터 엄폐할 장소를 찾아가게 하려는 경우, 쿼리를 수행 중인 AI의 현재 위치를 확인하는 경우 등이 있습니다.

제네레이터 타입별로 디테일(Details) 패널에서 쿼리 요청자를 컨텍스트로 할당하는 프로퍼티는 다음과 같습니다.

제네레이터

프로퍼티

Actors of Class

검색 중앙(Search Center)

Actors of Class

Current Location

쿼리 컨텍스트(Query Context)

현재 위치

Points: Circle

원 중앙(Circle Center)

원 중앙

Points: Cone

중앙 액터(Center Actor)

원뿔 포인트

Points: Donut

중앙(Center)

도넛 포인트

Points: Grid

주변 생성(Generate Around)

그리드 포인트

Points: Pathing Grid

주변 생성(Generate Around)

Pathing Grid 포인트

EnvQueryContext_BlueprintBase

블루프린트로 커스텀 컨텍스트를 생성하려면 EnvQueryContext_BlueprintBase 클래스를 사용합니다. 이 클래스에 제공되는 오버라이드 가능한 함수 4종으로 쿼리의 테스트에 사용할 커스텀 컨텍스트를 추가할 수 있습니다.

커스텀 컨텍스트를 사용하려면 다음 단계를 따릅니다.

  1. EnvQueryContext_BlueprintBase 블루프린트 클래스를 생성합니다.
    EnvQueryContext BlueprintBase 클래스를 생성합니다

  2. EnvQueryContext_BlueprintBase 내에서 오버라이드(Override) 를 클릭하고 사용할 함수 타입을 선택합니다.
    오버라이드를 클릭하고 사용할 함수 타입을 선택합니다

각 함수 오버라이드에 대한 설명은 아래 표를 참고하세요.

함수

설명

Provide Single Location

단일 위치(벡터)를 반환합니다. 위치를 생성하는 방식을 정할 수 있습니다. 예를 들어 아래 함수는 쿼리 요청자로부터 1,500cm 이내 거리에서 발견된 랜덤 액터(폰, 비히클 등 DesiredObjectType 배열에서 발견된 액터)의 트레이스 히트 위치를 반환합니다.

Provide Single Actor

단일 액터를 반환합니다. 원하는 메서드로 액터를 획득할 수 있습니다. 이 예시에서 함수는 플레이어 0의 제어된 액터를 반환합니다.

단일 액터 제공

Provide Locations Set

위치 배열(벡터)을 반환합니다. 위치를 생성하는 방식을 정할 수 있습니다. 아래 예시의 함수는 반경 1,500유닛인 서클에서 16개의 위치를 일정한 간격으로 트레이스하고 환경에 성공적인 히트를 반환합니다.

Provide Actors Set

액터 배열을 반환합니다. 원하는 메서드로 액터를 획득할 수 있습니다. 아래 예시에서는 Get All Actors of Class 노드를 사용하여 지정한 클래스를 반환할 액터로 얻습니다.

액터 세트 제공