본문 바로가기
Unreal/Manual

Unreal EQS(Environment Query System) 사용하기

by Dev_카페인 2024. 2. 6.
반응형

[Unreal] EQS(Environment Query System) Circle 사용하기

 

언리얼 엔진에서 EQ(Environment Query)를 사용하는 방법을 소개합니다.

먼저 필요한 것은 다음과 같다.

1. 내비 메시 바운드 볼륨 : (Nav Mesh Bounds Volume)

2. EQS 테스팅 폰 : EQS(Environment Query System)TestingPawn

3. 인바이런먼트 쿼리 EQ(Environment Query)

 

내비 메시 바운드 볼륨 : (Nav Mesh Bounds Volume) 을 월드에 배치하고 AI가 활동할 영역 크기만큼 스케일을 지정해줍니다. 현재 바닥과 내비 메시 볼륨 스케일은 (10, 10, 1) 입니다. 내비메시바운드볼륨 영역을 표시하려면 키보드의 'P'키를 눌러 활성화할 수 있습니다.

 

EQS 테스팅 폰 : EQS(Environment Query System)TestingPawn

EQSTestingPawn을 상속받아 블루프린트 클래스를 만들어 월드 안에 배치해줍니다.

내비메시바운드 볼륨 안에 포함되어야 합니다.

 

인바이런먼트 쿼리 EQ(Environment Query)를 만들어 줍니다.

 

인바이런먼트 쿼리를 열면 루트 노드가 있습니다.

화살표를 끌거나 마우스 우클릭을 통해 Generators를 생성할 수 있습니다.

 

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

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

CurrentLocation :  테스트를 검증하기 위해 지정한 쿼리 컨텍스트(Query Context) 의 위치를 가져옵니다. 

Perceived Actors : 감지된 액터를 사용합니다.

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

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

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

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

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

 

루트 노드와 연결하고 해당 노드를 클릭해 디테일 창에서 값을 조정할 수 있습니다.

 

 

 

 

 

 

원 반지름 : Query를 적용할 최대 거리를 지정합니다.

원 간격 포인트 메서드

- By Space Between : 사이 공간 크기에 따라 포인트를 배치합니다.

- By Number Of Points : 포인트 수에 따라 배치합니다.

 

사이 공간 : 포인트간 떨어져있을 거리를 나타냅니다.

포인트 수 : 포인트 개수를 지정합니다. 포인트는 호 각도에 따라 적절한 위치로 생성됩니다.

 

호 방향 : 방향에 따라 호를 이동시킬 수 있습니다.

ex)플레이어 방향에 따라 호를 이동

호 각도 : 각도를 지정할 수 있습니다.

 

 

 

 

 

 

 

 

 

 

Generator에 테스트를 추가할 수 있습니다.

테스트는 쿼리 진행시 필터 역할을 하거나 점수를 추가하는 역할을 합니다.

Distance를 사용하여 점수를 매길 수 있습니다.

 

Distance를 선택하여 멀리 있을 수록 점수를 줄 수 있습니다.

이 때 스코어 인수를 -1로 하면 가까울 수록 점수를 받습니다.

 

 

Cone 사용

 

Donut

 

Grid

 

PathingGrid

 

 

 

 

 

 

 

 

 

인바이런먼트 쿼리 시스템 노드 레퍼런스

인바이런먼트 쿼리 시스템 노드 레퍼런스 페이지입니다.

docs.unrealengine.com

 

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

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

docs.unrealengine.com

 

 

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

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

docs.unrealengine.com

 

 

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

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

docs.unrealengine.com

 

 

인바이런먼트 쿼리 테스팅 폰

EQS 테스팅 폰을 사용하여 EQS 쿼리가 무엇을 하고 있는지 디버그 및 표시하는 방법을 설명합니다.

docs.unrealengine.com

 

반응형