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

EQS에서 테스트를 사용하여 '최적'의 옵션을 생성하는 방식을 설명합니다.

Choose your operating system:

Windows

macOS

Linux

인바이런먼트 쿼리 시스템(Environmental Query System, EQS) 내에서는 테스트(Test) 를 통해 특정 컨텍스트(Context) 또는 레퍼런스 프레임을 바탕으로 제네레이터(Generator)에서 생성된 아이템(Item) 중 '최적'의 옵션을 결정합니다. 엔진에서는 사용 사례의 상당 부분을 커버하는 다양한 테스트를 제공합니다. 예를 들면 '아이템이 다른 위치를 트레이스할 수 있는지(볼 수 있는지)' 또는 '아이템과 컨텍스트 사이의 거리가 지정된 범위 이내인지' 등입니다.  효과적으로 결과의 폭을 좁히고 최적의 옵션을 얻기 위해 하나의 제네레이터에 여러 개의 테스트를 추가할 수도 있습니다. 

기본 엔진 테스트로 원하는 결과가 나오지 않는다면 C++ 코드로 커스텀 테스트를 만드는 방법이 있습니다.

공통 테스트 프로퍼티

각 테스트 타입에는 테스트의 수행 방식을 정의하는 고유한 프로퍼티가 있습니다. 그러나 모든 테스트에는 테스트의 목적과 결과 처리 방식을 정의하는 일반 프로퍼티가 있습니다. 예를 들어 테스트가 결과를 필터로 걸러내는 용도인지, 결과에 점수와 가중치를 부여하는 용도인지 또는 둘 다인지 정의하게 됩니다. EQS 에디터(EQS Editor)에서 테스트를 선택하면 디테일(Details) 패널의 여러 프로퍼티 중에서 테스트 목적(Test Purpose) 을 정의할 수 있습니다. 

테스트(Test) 프로퍼티

프로퍼티

설명

테스트 코멘트(Test Comment)

테스트 목적을 부연하는 코멘트 또는 설명입니다. 입력하지 않아도 됩니다. 테스트의 목적이 분명하지 않을 때, 특히 같은 타입의 테스트가 여러 개일 때 유용합니다.

테스트 목적(Test Purpose)

테스트에 적용할 수 있는 추가 옵션과 테스트의 용도를 정의합니다. 

프로퍼티

설명

Filter Only

결과에 필터를 적용하는 용도입니다. 테스트를 통과하지 못한 아이템은 제거됩니다.

Score Only

결과에 점수를 부여하는 용도입니다. 반환된 아이템에는 가중치 값이 부여됩니다.

Filter and Score

결과에 필터를 적용하고 점수를 부여하는 용도입니다.

필터(Filter) 프로퍼티

테스트 목적(Test Purpose)FilterFilter and Score 로 설정하면 다음 옵션을 적용할 수 있습니다.

필터로 걸러진 아이템의 점수를 계산하지 않기 위해 필터는 점수보다 먼저 적용됩니다.

프로퍼티

설명

Bool 일치(Bool Match)

스코어 인수를 허가하기 위해 일치시킬 값(true 또는 false)입니다. 테스트를 수행할 때 이 값이 일치하지 않으면 점수가 변경되지 않습니다. 예를 들어 Trace 테스트에서는 히트 여부에 따라 true와 false가 정해집니다. Pathing 테스트에서는 경로가 존재하는지 여부에 따라 정해집니다.

다중 컨텍스트 필터 연산자(Multiple Context Filter Op)

까지의 거리(Distance To) 컨텍스트가 여러 아이템을 반환할 때 필터를 적용할 연산자를 정의합니다. All Pass 면 모든 컨텍스트가 통과해야 하고, Any Pass 면 최소 하나의 컨텍스트가 통과해야 합니다.

플로트 값 최소(Float Value Min)

이 값 이하의 값에 필터를 적용합니다. 

이 옵션은 DistanceDot 테스트에서만 사용할 수 있습니다.

플로트 값 최대(Float Value Max)

이 값 이상의 값에 필터를 적용합니다. 

이 옵션은 DistanceDot 테스트에서만 사용할 수 있습니다.

필터 타입(Filter Type)

값의 최소(Minimum) , 최대(Maximum) 또는 범위(Range) 에 적용되는 필터 타입을 변경합니다. 플로트 값 최소(Float Value Min) 프로퍼티로 지정된 값 미만이거나 플로트 값 최대(Float Value Max) 프로퍼티로 지정된 값을 초과하는 값은 모두 제외됩니다. 

이 옵션은 DistanceDot 테스트에서만 사용할 수 있습니다.

점수 프로퍼티

테스트 목적(Test Purpose)ScoreFilter and Score 로 설정하면 다음 옵션을 적용할 수 있습니다.

프로퍼티

설명

다중 컨텍스트 필터 연산자(Multiple Context Filter Op)

까지의 거리(Distance To) 컨텍스트가 여러 아이템을 반환할 때 필터를 적용할 연산자를 정의합니다. All Pass 면 모든 컨텍스트가 통과해야 하고, Any Pass 면 최소 하나의 컨텍스트가 통과해야 합니다.

범위제한 최소 타입(Clamp Min Type)

점수 공식을 적용하기 전 원본 테스트 값을 정규화할 때 지정된 값(Specified Value) 을 사용할지 아니면 발견된(테스트된) 최저 값을 사용할지 정의합니다. 

이 옵션은 DistanceDot 테스트에서만 사용할 수 있습니다.

범위제한 최대 타입(Clamp Max Type)

점수 공식을 적용하기 전 원본 테스트 값을 정규화할 때 지정된 값(Specified Value) 을 사용할지 아니면 발견된(테스트된) 최고 값을 사용할지 정의합니다. 

이 옵션은 DistanceDot 테스트에서만 사용할 수 있습니다.

점수 계산식(Scoring Equation)

상수(Constant) , 선형(Linear) , 사각형(Square) , 역선형(Inverse Linear) 또는 제곱근(Square Root) 타입의 커브를 따르도록 테스트 점수를 수정합니다. 

이 옵션은 DistanceDot 테스트에서만 사용할 수 있습니다.

스코어 인수(Scoring Factor)

점수 계산식을 적용한 후 정규화된 점수에 곱하는 가중치(인수)입니다. 음수로 지정해도 됩니다. 

이 옵션은 DistanceDot 테스트에서만 사용할 수 있습니다.

정규화 타입(Normalization Type)

점수 정규화에 사용되는 값 범위를 결정하는 방법을 지정합니다. 절대(Absolute) (0을 정규화 범위의 베이스로 사용) 또는 점수 기준(Relative to Scores) (최저 아이템 점수를 정규화 범위의 베이스로 사용) 중에서 선택합니다. 

이 옵션은 DistanceDot 테스트에서만 사용할 수 있습니다.

레퍼런스 값(Reference Value)

레퍼런스 값 에 가까운 값일수록 더 높은 정규화 결과가 산출되는 방식으로 테스트 결과를 정규화합니다. 레퍼런스 값 으로부터 가장 먼 값은 0으로 정규화되고, 그 사이의 다른 모든 값은 레퍼런스 값 까지의 거리에 따라 선형으로 정규화됩니다. 

이 옵션은 DistanceDot 테스트에서만 사용할 수 있습니다.

Distance

Distance 테스트

Distance 테스트는 아이템과 선택된 까지의 거리(Distance To) 프로퍼티 사이의 직선거리를 반환합니다.  까지의 거리에 위치가 두 개 이상이면 각각의 거리를 확인한 결과의 평균을 반환합니다. 

거리 테스트 디테일

프로퍼티

설명

테스트 모드(Test Mode)

거리 테스트에 사용되는 메서드입니다. 3D 공간, XY 평면인 2D 공간, Z축 또는 Z(절댓값) 축을 기준으로 테스트할 수 있습니다.

까지의 거리(Distance To)

거리를 측정할 대상인 컨텍스트입니다.

Dot

Dot 테스트

Dot 테스트는 두 벡터의 내적(Dot Product)을 계산합니다. 컨텍스트의 회전일 수도 있고 두 포인트 간의 벡터일 수도 있습니다. 무언가가 다른 것을 향해 있는지 확인할 때 유용합니다.

Dot 테스트 디테일

Dot 테스트에서 사용 가능한 프로퍼티는 다음과 같습니다. 

프로퍼티

설명

라인 A 모드(Line A Mode)

테스트에 사용되는 첫 번째 선의 방향을 정의합니다. 방향을 얻는 메서드에는 두 가지가 있습니다. 

프로퍼티

설명

Rotation

방향으로 사용할 컨텍스트를 지정합니다.

Two Points

한 컨텍스트의 위치에서 다른 컨텍스트의 위치로 향하는 방향입니다.

라인 B 모드(Line B Mode)

테스트에 사용되는 두 번째 선의 방향을 정의합니다. 방향을 얻는 메서드에는 두 가지가 있습니다. 

프로퍼티

설명

Rotation

방향으로 사용할 컨텍스트를 지정합니다.

Two Points

한 컨텍스트의 위치에서 다른 컨텍스트의 위치로 향하는 방향입니다.

테스트 모드(Test Mode)

테스트를 완전한 3D 벡터를 사용하여 계산할지 아니면 라인 A라인 B 벡터의 2D 헤딩 벡터만 사용할지를 정합니다.

절댓값(Absolute Value)

테스트가 내적의 절댓값을 반환하게 합니다. 내적은 -1.0~1.0 사이의 값을 반환합니다.

Gameplay Tags

Gameplay Tag 테스트

Gameplay Tags 테스트를 사용하면 테스트에서 쿼리하고 일치를 시도할 태그를 지정할 수 있습니다. 

Gameplay Tags 테스트 디테일

프로퍼티

설명

일치시킬 태그 쿼리(Tag Query to Match)

검증할 태그를 지정하는 게임플레이 태그 에디터를 실행합니다.

호환되지 않는 항목 거부(Reject Incompatible Items)

IGamePlayTgAssetInterface를 구현하지 않는 액터를 처리하는 방식을 제어합니다. 'true'면 인터페이스를 구현하지 않는 액터는 무시됩니다. 즉, 해당 액터가 점수에 반영되지 않으며 필터링 시에 고려되지 않습니다. 'false'면 인터페이스를 구현하지 않는 액터가 필터에 포함되며, 작업에 점수가 0점으로 기록됩니다.

Overlap

Overlap 테스트

Overlap 테스트는 프로퍼티로 정의된 바운드 내에 아이템이 있는지 확인합니다. 

Overlap 테스트 디테일

프로퍼티

설명

X 범위(Extent X)

X축을 따라 오버랩되는 셰이프 파라미터입니다.

Y 범위(Extent Y)

Y축을 따라 오버랩되는 셰이프 파라미터입니다.

Z 범위(Extent Z)

Z축을 따라 오버랩되는 셰이프 파라미터입니다.

셰이프 오프셋(Shape Offset)

오버랩을 테스트할 아이템 위치로부터의 오프셋입니다. 예를 들어 평평한 지면의 오버랩을 방지하기 위해 수직 오프셋이 필요할 수 있습니다.

오버랩 채널(Overlap Channel)

오버랩에 사용되는 지오메트리 트레이스 채널입니다.

오버랩 셰이프(Overlap Shape)

지오메트리 오버랩에 사용할 셰이프입니다. 박스(Box) , 스피어(Sphere) , 캡슐(Capsule) 이 있습니다.

블로킹 히트만(Only Blocking Hits)

설정하면 오버랩이 블로킹 히트만 찾습니다.

오버랩 복합(Overlap Complex)

설정하면 복합 콜리전에서만 오버랩이 실행됩니다.

겹치는 쿼리 요청자 건너뛰기 (Skip Overlap Querier)

설정하면 오버랩이 쿼리 요청자 컨텍스트 히트를 건너뜁니다.

Pathfinding

Pathfinding 테스트

Pathfinding 테스트는 컨텍스트로 가는 경로나 컨텍스트로부터 오는 경로의 존재 여부, 비용 또는 길이를 확인합니다. 

Pathfinding 테스트 디테일

프로퍼티

설명

테스트 모드(Test Mode)

테스트가 적용되는 메서드입니다.

프로퍼티

설명

Path Exist

컨텍스트로 가는 경로나 컨텍스트로부터 오는 경로의 존재 여부입니다.

Path Cost

컨텍스트로 가는 경로나 컨텍스트로부터 오는 경로의 비용입니다.

Path Length

컨텍스트로 가는 경로나 컨텍스트로부터 오는 경로의 길이입니다.

컨텍스트(Context)

경로가 도착하거나 출발할 컨텍스트입니다.

컨텍스트로부터 패스(Path from Context)

컨텍스트로 가는 경로인지(false) 컨텍스트로부터 오는 경로인지(true)를 결정합니다.

필터 클래스(Filter Class)

경로 탐색에 사용하는 선택적 내비게이션 필터입니다.

도달 불가능한 경우 건너뛰기(Skip Unreachable)

설정하면 경로가 실패하는 아이템은 무효화됩니다.

테스트 모드(Test Mode)Path CostPath Length 로 설정하면 디테일(Details) 패널의 필터(Filter)스코어(Score) 섹션이 변경되어 원래는 DotDistance 테스트에서만 사용할 수 있었던 공통 프로퍼티 옵션이 제공됩니다.

Pathfinding Batch

Pathfinding 테스트

Pathfinding 테스트는 컨텍스트로 가는 경로나 컨텍스트로부터 오는 경로의 존재 여부, 비용 또는 길이를 확인합니다. 처리한 컨텍스트(경로)는 모두 정의된 테스트 모드(Test Mode) 에 따라 점수화됩니다. 

Pathfinding 테스트 디테일

프로퍼티

설명

테스트 모드(Test Mode)

테스트가 적용되는 메서드입니다.

프로퍼티

설명

Path Exist

컨텍스트로 가는 경로나 컨텍스트로부터 오는 경로의 존재 여부입니다.

Path Cost

컨텍스트로 가는 경로나 컨텍스트로부터 오는 경로의 비용입니다.

Path Length

컨텍스트로 가는 경로나 컨텍스트로부터 오는 경로의 길이입니다.

컨텍스트(Context)

AI의 경로가 도착하거나 출발할 컨텍스트입니다.

컨텍스트로부터 패스(Path from Context)

컨텍스트로 가는 경로인지(false) 컨텍스트로부터 오는 경로인지(true)를 결정합니다.

필터 클래스(Filter Class)

경로 탐색에 사용하는 선택적 내비게이션 필터입니다.

스캔 범위 배수(Scan Range Multiplier)

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

도달 불가능한 경우 건너뛰기(Skip Unreachable)

설정하면 경로가 실패하는 아이템은 무효화됩니다.

테스트 모드(Test Mode)Path CostPath Length 로 설정하면 디테일(Details) 패널의 필터(Filter)스코어(Score) 섹션이 변경되어 원래는 DotDistance 테스트에서만 사용할 수 있었던 공통 프로퍼티 옵션이 제공됩니다.

Project

Project 테스트

결과 아이템을 내비메시에 투영하는 Project 테스트와 투영에 사용할 내비메시 데이터 세트입니다. 

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

Project 테스트 디테일

프로퍼티

설명

트레이스 모드(Trace Mode)

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

프로퍼티

설명

내비게이션(Navigation)

컨텍스트로 가는 경로나 컨텍스트로부터 오는 경로의 존재 여부입니다.

채널별 지오메트리(Geometry by Channel)

채널 트레이싱을 사용하여 컨텍스트로 가는 경로나 컨텍스트로부터 오는 경로의 비용을 파악합니다.

프로파일별 지오메트리(Geometry by Profile)

프로파일 트레이싱을 사용하여 컨텍스트로 가는 경로나 컨텍스트로부터 오는 경로의 비용을 파악합니다.

내비게이션 필터(Navigation Filter)

사용할 내비게이션 필터 클래스를 선택할 수 있습니다.

X 범위(Extent X)

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

아래로 투영(Project Down)

검색 높이를 지정한 포인트 아래로 정의합니다.

위로 투영(Project Up)

검색 높이를 지정한 포인트 위로 정의합니다.

투영 후 세로 오프셋(Post Projection Vertical Offset)

결과 위치의 Z축에 더할 값입니다. 

내비게이션에 포인트를 투영할 때 유용할 수 있습니다. 내비메시는 레벨 지오메트리의 근사치일 뿐이어서 충돌 가능한 지오메트리 아래 아이템이 놓이고 비저빌리티 테스트가 잘못될 수 있기 때문입니다.

Trace

Trace 테스트

Trace 테스트는 아이템이나 컨텍스트를 도착점이나 출발점으로 트레이스하여 히트 여부를 반환합니다. 필터(Filter) 옵션의 Bool 일치(Bool Match) 를 설정하면 결과가 반전됩니다. 대표적인 사용 사례 중 하나는 적이 레벨에서 플레이어를 볼 수 있는지 여부를 확인하는 것입니다. 

Trace 테스트 디테일

프로퍼티

설명

트레이스 모드(Trace Mode)

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

프로퍼티

설명

채널별 지오메트리(Geometry by Channel)

채널 트레이싱을 사용하여 컨텍스트로 가는 경로나 컨텍스트로부터 오는 경로의 비용을 파악합니다.

프로파일별 지오메트리(Geometry by Profile)

프로파일 트레이싱을 사용하여 컨텍스트로 가는 경로나 컨텍스트로부터 오는 경로의 비용을 파악합니다.

트레이스 채널(Trace Channel)

트레이스를 수행할 대상 채널입니다. 기본적으로 VisibilityCamera 옵션만 사용할 수 있지만, 편집(Edit) > 프로젝트 세팅(Project Settings) > 피직스(Physics) > 트레이스 채널(Trace Channels) 에서 채널을 더 추가할 수 있습니다.

트레이스 셰이프(Trace Shape)

트레이스를 수행하는 셰이프입니다. 선(Line) , 스피어(Sphere) , 박스(Box) , 캡슐(Capsule) 중에서 선택합니다.

트레이스 컴플렉스(Trace Complex)

트레이스를 메시(컴플렉스)에도 수행할지 단순 콜리전에만 수행할지 결정합니다.

블로킹 히트만(Only Blocking Hits)

결과에 블로킹 트레이스를 사용할지 논블로킹 트레이스를 사용할지 결정합니다.

컨텍스트에서 트레이스(Trace from Context)

트레이스의 출발점인 컨텍스트입니다. 쿼리 요청자, 아이템 또는 직접 만든 커스텀 컨텍스트 등을 선택할 수 있습니다.

컨텍스트(Context)

트레이스의 반대쪽 끝입니다.

항목 높이 오프셋(Item Height Offset)

테스트에서 트레이스하는 아이템에 Z 오프셋을 cm 단위로 추가합니다.

컨텍스트 높이 오프셋(Context Height Offset)

테스트에서 트레이스하는 컨텍스트에 Z 오프셋을 cm 단위로 추가합니다.