언리얼 엔진의 EQS 노드 레퍼런스: 제네레이터

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

Choose your operating system:

Windows

macOS

Linux

인바이런먼트 쿼리 시스템(Environmental Query System, EQS)에서 제네레이터(Generator)아이템(Item) 이라는 위치나 액터를 생성합니다. 아이템에는 테스트와 가중치가 적용되며, 가중치가 가장 높은 아이템은 비헤이비어 트리(Behavior Tree)로 반환됩니다. 정보를 얻기 위한 제네레이터에는 여러 타입이 있습니다. 블루프린트나 C++로 제네레이터를 만들 수도 있습니다. 

Actors Of Class

Actors Of Class

Actors Of Class 제네레이터는 검색 중앙(Search Center) 주변의 지정된 검색 반경(Search Radius) 내에서 특정 클래스의 액터를 찾습니다. 반환된 액터는 테스트에서 아이템으로 사용할 수 있습니다. 

Actors Of Class 제네레이터는 검색 중앙 주변의 지정된 검색 반경 내에서 특정 클래스의 액터를 찾습니다

프로퍼티

설명

검색된 액터 클래스(Searched Actor Class)

찾을 액터의 클래스(예: 폰, 캐릭터)입니다.

반경 내에 액터만 생성(Generate Only Actors in Radius)

지정한 검색 반경 내에서만 지정한 검색된 액터 클래스 의 액터를 찾아 반환합니다. 비활성화하면 게임 월드 전체에서 지정한 검색된 액터 클래스 의 액터를 찾아 반환합니다. 함께 사용할 사용자 정의 데이터 바인딩(Data Bindings) 을 포함시킬 수도 있습니다.

검색 반경(Search Radius)

지정된 검색된 액터 클래스(Searched Actor Class) 를 찾을 최대 거리입니다.  

0이나 음수 값을 입력하면 아무 결과도 반환하지 않습니다.

검색 중앙(Search Center)

쿼리 요청자(Querier) 또는 기타 다른 컨텍스트를 검색할 중심점을 의미하는 컨텍스트입니다.

옵션 이름(Option Name)

Actors Of Class 제네레이터의 베이스 클래스로부터 상속받는 프로퍼티입니다. 주로 해당 제네레이터의 이름을 표시하는 데 사용합니다(예: HUD 또는 출력 메시지).

테스트 자동 정렬(Auto Sort Tests)

활성화하면 쿼리가 실행되기 전에 최적의 퍼포먼스를 내도록 테스트를 자동 정렬합니다.

Composite

Composite 제네레이터

EQS 쿼리를 구성하다 보면 하나의 테스트 사례에 제네레이터 를 두 개 이상 포함하고 싶은 인스턴스가 있을 수 있습니다. Composite 노드로 여러 개의 제네레이터 가 포함된 배열을 테스트에 사용할 수 있습니다. 

Composite 노드로 여러 개의 제네레이터를 배열에 추가할 수 있습니다

프로퍼티

설명

제네레이터(Generators)

테스트에 포함할 제네레이터를 여러 개 추가할 수 있습니다.

다른 아이템 타입 허용(Allow Different Item Types)

여러 아이템 타입을 포함하는 제네레이터에서 테스트를 허용합니다. 

제네레이터는 원본 데이터에 ForcedItemType 을 사용하므로, 자손 제네레이터가 자체 아이템 타입으로 메모리 블록에 쓸 때 메모리 레이아웃이 적절한지 확인해야 합니다. 예를 들어 테스트가 강제된 항목 타입 을 통해 아이템의 위치나 프로퍼티를 읽을 동안에는 데이터가 강제된 항목 타입 으로 할당된 블록에 적합해야 합니다.

강제된 항목 타입(Forced Item Type)

테스트에 사용할 아이템 타입입니다. 액터, 방향, 포인트 등을 지정할 수 있습니다.

옵션 이름(Option Name)

Actors Of Class 제네레이터의 베이스 클래스로부터 상속받는 프로퍼티입니다. 주로 해당 제네레이터의 이름을 표시하는 데 사용합니다(예: HUD 또는 출력 메시지).

테스트 자동 정렬(Auto Sort Tests)

활성화하면 쿼리가 실행되기 전에 최적의 퍼포먼스를 내도록 테스트를 자동 정렬합니다.

Current Location

현재 위치

Current Location 제네레이터는 테스트를 검증하기 위해 지정한 쿼리 컨텍스트(Query Context) 의 위치를 가져옵니다. 

Current Location 제네레이터는 테스트를 검증할 목적으로 지정한 쿼리 컨텍스트의 위치를 가져옵니다

프로퍼티

설명

쿼리 컨텍스트(Query Context)

테스트에 사용할 컨텍스트와 해당 컨텍스트의 현재 위치입니다.

옵션 이름(Option Name)

Actors Of Class 제네레이터의 베이스 클래스로부터 상속받는 프로퍼티입니다. 주로 해당 제네레이터의 이름을 표시하는 데 사용합니다(예: HUD 또는 출력 메시지).

테스트 자동 정렬(Auto Sort Tests)

활성화하면 쿼리가 실행되기 전에 최적의 퍼포먼스를 내도록 테스트를 자동 정렬합니다.

Custom Generators

엔진에서 제공하는 제네레이터 타입 외에 EnvQueryGenerator_BlueprintBase 클래스 타입의 새 블루프린트를 생성하여 커스텀 제네레이터를 만들 수도 있습니다.

커스텀 제네레이터

일반적으로 C++로 만든 제네레이터가 블루프린트로 만든 제네레이터보다 더 빠르게 실행됩니다.

커스텀 제네레이터를 만든 후에는 인바이런먼트 쿼리(Environmental Query) 내에서 사용할 수 있습니다.

커스텀 제네레이터를 만든 후에는 인바이런먼트 쿼리 내에서 사용할 수 있습니다

커스텀 제네레이터 내에는 오버라이드할 수 있는 Do Item Generation 함수가 있습니다.

커스텀 제네레이터 내에는 오버라이드할 수 있는 Do Item Generation 함수가 있습니다

이 함수를 오버라이드하면 인바이런먼트 쿼리에서 전달된 컨텍스트 위치의 배열을 구할 수 있습니다.

인바이런먼트 쿼리에서 전달된 컨텍스트 위치의 배열을 구할 수 있습니다

배열은 컨텍스트에 따라 달라집니다. 예를 들어 쿼리 요청자(Querier)의 위치를 포함하는 엔트리가 하나뿐인 배열일 수도 있고, 레벨 내 모든 체력 픽업의 위치를 포함하는 배열일 수도 있습니다.

함수는 하나의 값만 반환하므로, Do Item Generation 함수가 인바이런먼트 쿼리에 다시 전달할 수 있는 배열에는 Add Generated ActorAdd Generated Vector 두 가지가 있습니다.

Add Generated Actor

Add Generated Actor 노드는 액터 반환 배열에 액터를 추가합니다. Add Generated Vector 노드(아래)와 함께 사용하면 위치 값도 반환할 수 있습니다. 제네레이터가 비헤이비어 트리(Behavior Tree)에 무엇을 전달할지는 인바이런먼트 쿼리(Environment Query) 노드에서 설정하는 블랙보드 키(Blackboard key)를 바탕으로 결정됩니다. 

Add Generated Actor

Points: Circle

Circle 제네레이터

Points: Circle 제네레이터는 원 중앙(Circle Center) 으로부터 트레이스를 발산하고, 생성된 원의 반경 에지에 도달한 히트를 아이템으로 반환합니다. 

Circle 제네레이터는 원 중앙으로부터 트레이스를 발산합니다

프로퍼티

설명

원 반지름(Circle Radius)

원 중앙 컨텍스트에서 확산되는 원의 최대 반경입니다.

사이 공간(Space Between)

원의 바깥쪽 에지에 생성되는 아이템 사이의 간격(cm 단위)입니다.

포인트 수(Number Of Points)

원에 생성될 아이템의 개수입니다.

호 방향(Arc Direction)

호 방향이 결정되는 모드를 정의합니다. Two Points 를 선택하면 한 컨텍스트 위치에서 다른 컨텍스트 위치로 향하는 방향입니다. Rotation 을 선택하면 컨텍스트의 회전을 방향으로 사용합니다.

호 각도(Arc Angle)

호의 각도를 도 단위로 정의합니다.

원 중앙(Circle Center)

원의 중앙으로 사용할 컨텍스트입니다.

서클 생성 시 모든 컨텍스트 액터 무시(Ignore Any Context Actors when Generating Circle)

활성화하면 원을 생성할 때 컨텍스트 액터에 대한 트레이스를 무시합니다.

원 중앙 ZOffset(Circle Center ZOffset)

Z축 컨텍스트에 적용할 수 있는 오프셋입니다.

트레이스 데이터(Trace Data)

트레이스의 수행 방식과 관련된 옵션입니다. 

프로퍼티

설명

트레이스 모드(Trace Mode)

지오메트리 트레이싱에 사용할 셰이프입니다.

내비게이션 필터(Navigation Filter)

트레이싱에 사용할 내비게이션 필터입니다.

X 범위(Extent X)

트레이스의 셰이프 파라미터입니다.

투영 데이터(Projection Data)

결과 아이템을 내비메시에 투영할지 여부와 투영에 사용할 내비메시 데이터 세트입니다.

옵션 이름(Option Name)

Actors Of Class 제네레이터의 베이스 클래스로부터 상속받는 프로퍼티입니다. 주로 해당 제네레이터의 이름을 표시하는 데 사용합니다(예: HUD 또는 출력 메시지).

테스트 자동 정렬(Auto Sort Tests)

활성화하면 쿼리가 실행되기 전에 최적의 퍼포먼스를 내도록 테스트를 자동 정렬합니다.

Points: Cone

Cone 제네레이터

Points: Cone중앙 액터(Center Actor) 로부터 지정된 원뿔 각도(Cone Degrees) 의 원뿔 모양으로 트레이스를 발산하여 아이템을 생성합니다. 

Cone은 중앙 액터로부터 지정된 원뿔 각도의 원뿔 모양으로 트레이스를 발산하여 아이템을 생성합니다

프로퍼티

설명

정렬된 포인트 디스턴스(Aligned Points Distance)

같은 각도의 각 포인트 간 거리입니다.

원뿔 각도(Cone Degrees)

생성된 원뿔의 최대 각도입니다.

각도 단계(Angle Step)

각도가 증가하는 단계입니다. 반드시 1 이상이어야 합니다. 값이 작을수록 생성되는 아이템의 수가 작습니다.

범위(Range)

컨텍스트로부터 원뿔을 생성할 거리입니다.

중앙 액터(Center Actor)

이 액터가 바라보는 방향으로 원뿔이 생성됩니다.

컨텍스트 로케이션 포함(Include Context Location)

아이템 생성 시 중앙 액터 의 위치를 포함할지 여부입니다. 

이 옵션은 MinAngledPointsDistance 파라미터를 건너뜁니다.

투영 데이터(Projection Data)

결과 아이템을 내비메시에 투영할지 여부와 사용할 내비메시 데이터 세트입니다.

옵션 이름(Option Name)

Actors Of Class 제네레이터의 베이스 클래스로부터 상속받는 프로퍼티입니다. 주로 해당 제네레이터의 이름을 표시하는 데 사용합니다(예: HUD 또는 출력 메시지).

테스트 자동 정렬(Auto Sort Tests)

활성화하면 쿼리가 실행되기 전에 최적의 퍼포먼스를 내도록 테스트를 자동 정렬합니다.

Points: Donut

Donut 제네레이터

Points: Donut 제네레이터는 중앙(Center) 컨텍스트에서 발산되는 사용자 지정 링 수(Number of Rings) 를 사용하여 셰이프 기반 트레이스를 생성합니다. 

Donut 제네레이터는 중앙 컨텍스트에서 발산되는 사용자 지정 링 수를 사용하여 셰이프 기반 트레이스를 생성합니다

프로퍼티

설명

내부 반경(Inner Radius*)

포인트와 컨텍스트 간의 최소 거리입니다.

외부 반경(Outer Radius)

포인트와 컨텍스트 간의 최대 거리입니다.

링 수(Number of Rings)

생성할 링의 개수입니다.

링별 포인트(Points Per Ring)

링마다 생성할 아이템 개수입니다.

호 방향(Arc Direction)

호 방향이 결정되는 모드를 정의합니다. Two Points 를 선택하면 한 컨텍스트 위치에서 다른 컨텍스트 위치로 향하는 방향입니다. Rotation 을 선택하면 컨텍스트의 회전을 방향으로 사용합니다.

호 각도(Arc Angle)

호의 각도를 도 단위로 정의합니다.

나선 패턴 사용(Use Spiral Pattern)

활성화하면 휠의 링이 나선 패턴으로 회전합니다. 비활성화하면 회전이 없어져 바큇살 모양에 가까워집니다.

중앙(Center)

검색의 중심이 될 컨텍스트입니다. 쿼리 요청자(Querier)일 수도 있고 다른 컨텍스트일 수도 있습니다.

투영 데이터(Projection Data)

결과 아이템을 내비메시에 투영할지 여부와 사용할 내비메시 데이터 세트입니다.

옵션 이름(Option Name)

Actors Of Class 제네레이터의 베이스 클래스로부터 상속받는 프로퍼티입니다. 주로 해당 제네레이터의 이름을 표시하는 데 사용합니다(예: HUD 또는 출력 메시지).

테스트 자동 정렬(Auto Sort Tests)

활성화하면 쿼리가 실행되기 전에 최적의 퍼포먼스를 내도록 테스트를 자동 정렬합니다.

Points: Grid

Grid 제네레이터

Points: Grid 제네레이터는 주변 생성(Generate Around) 프로퍼티로 지정한 쿼리 요청자(Querier)를 중심으로 아이템의 그리드를 생성합니다. 

Grid 제네레이터는 주변 생성 프로퍼티로 지정한 쿼리 요청자를 중심으로 아이템의 그리드를 생성합니다

프로퍼티

설명

그리드 절반 크기(GridHalfSize)

생성할 아이템 그리드의 높이와 폭입니다.

사이 공간(Space Between)

그리드 아이템 사이의 간격입니다.

주변 생성(Generate Around)

이 컨텍스트 주변에 그리드를 생성합니다.

투영 데이터(Projection Data)

결과 아이템을 내비메시에 투영할지 여부와 사용할 내비메시 데이터 세트입니다. 

벽 속에 있거나 장애물에 걸린 아이템이 내비메시로 돌아오지만, 그리드 라인이 내비메시의 모서리 바로 너머에 있다면 번칭이 발생할 수 있습니다.

옵션 이름(Option Name)

Actors Of Class 제네레이터의 베이스 클래스로부터 상속받는 프로퍼티입니다. 주로 해당 제네레이터의 이름을 표시하는 데 사용합니다(예: HUD 또는 출력 메시지).

테스트 자동 정렬(Auto Sort Tests)

활성화하면 쿼리가 실행되기 전에 최적의 퍼포먼스를 내도록 테스트를 자동 정렬합니다.

Points: Pathing Grid

Pathing Grid

Points: Pathing Grid 는 지정된 컨텍스트 위치 주변에 그리드를 생성합니다. 

Pathing Grid는 지정된 컨텍스트 위치 주변에 그리드를 생성합니다

프로퍼티

설명

아이템 경로(Path to Item)

활성화하면 아이템에서 가까워지는 방향으로 경로를 탐색합니다. 비활성화하면 아이템에서 멀어지는 방향으로 경로를 탐색합니다.

내비게이션 필터(Navigation Filter)

경로 탐색에 사용할 내비게이션 필터입니다.

그리드 절반 크기(GridHalfSize)

사각형 크기의 절반입니다(에지 거리).

사이 공간(Space Between)

그리드에서 생성할 포인트의 밀도를 정의합니다.

주변 생성(Generate Around)

이 컨텍스트 주변에 그리드를 생성합니다.

투영 데이터(Projection Data)

결과 아이템을 내비메시에 투영할지 여부와 사용할 내비메시 데이터 세트입니다. 

벽 속에 있거나 장애물에 걸린 아이템이 내비메시로 돌아오지만, 그리드 라인이 내비메시의 모서리 바로 너머에 있다면 번칭이 발생할 수 있습니다.

옵션 이름(Option Name)

Actors Of Class 제네레이터의 베이스 클래스로부터 상속받는 프로퍼티입니다. 주로 해당 제네레이터의 이름을 표시하는 데 사용합니다(예: HUD 또는 출력 메시지).

테스트 자동 정렬(Auto Sort Tests)

활성화하면 쿼리가 실행되기 전에 최적의 퍼포먼스를 내도록 테스트를 자동 정렬합니다.

스캔 범위 배수(Scan Range Multiplier)

포인트와 컨텍스트 사이의 최대 거리에 대한 배수입니다.