본문 바로가기

언리얼 BluePrint 정리

07/25 학습 정리 ( Environment Query System )

Environment Query System 

 

인바이런먼트 쿼리 시스템(EQS) 은 언리얼 엔진 5(언리얼 엔진)의 인공 지능 시스템 내에 있는 기능으로, 환경으로부터 데이터를 수집하는 데 사용됩니다.

EQS에서는 다양한 테스트를 통해 수집된 데이터에 대해 질문할 수 있으며, 이러한 데이터는 질문 유형에 가장 잘 맞는 항목을 생성합니다.

EQS 쿼리는 비헤이비어 트리(Behavior Tree)에서 호출되어 테스트 결과를 바탕으로 의사 결정을 내리는 데 사용될 수 있습니다.

EQS 쿼리는 주로 생성기(Generator) 컨텍스트(Context)로 구성됩니다.

EQS 쿼리는 AI 캐릭터가 플레이어를 공격할 시야가 확보되는 최적의 위치, 가장 가까운 체력 또는 탄약 아이템, 가장 가까운 은폐 지점 등을 찾도록 지시하는 데 사용될 수 있습니다.


Generator에 대해서 제시한 조건을 만족하는 Item을 찾는것이 목적 ( Item은 Generator로 생성시킨 구체 같은것 ) 

'키 + Num3으로 시각화 할수있다. /키를 누르면 만족하는 Item의 리스트가 나온다.

조건을 만족하는 Item은 Winner로 표시된다. 만족하는 Item이 많을경우 Index가 빠른 Item이 Winner

 

 

인공지능 - 인바이런먼트 쿼리로 생성하고 BT_Enemy_Ranged에서 'Run EQS Query' Task의 Detail에서 EQS Request에 등록 시켜준다.

 

 

Generator - Points : Grid로 Item이 격자패턴으로 된 범위를 생성

GridHalfSize : 정사각형으로 범위를 나타내는데 그 정사각형의 한변의 절반 길이

Space Between : Item들의 사이 거리 ( 낮을수록 촘촘해지지만 그만큼 무거워진다 )

Generate Around : 중심이 되는 지점 (EQ_Context로 생성 가능)

 


Test : Distance

 

 

BT의 Decorator와 비슷하게 생긴 Test는 Item들을 검사하여 조건에 얼마나 충족했는가에 따라 점수를 매기는 기능을한다.

그중 Distance는 지정한 Context로 부터 Item의 거리를 나타낸다. 데코레이터 처럼 우클릭으로 추가 할수 있다.

 

 

Test Purpose : 필터만 할지 점수만 매길지 선택할수 있으나 현재는 버그때문인지 작동을 잘하지않아 Filter and Score로                            지정하고 무시하면 된다.

Test Mode : Distance 측정 방식을 정한다. 자세한건 아래 그림 참조


 

Filter Type : Minimum, Maximum, Range가 있으며 범위를 Filtering하여 필요없는 부분은 파란색으로 제외시킨다.

 

Clamping Min  : 필터링 되지않았고 이 값보다 이하인 범위는 전부 최하값으로 한다

Clamping Max : 필터링 되지않았고 이 값보다 이상인 범위는 전부 최고값으로 한다

Score Equation : 점수의 그래프 방식을 결정한다. ( Linear는 조건에 만족할수록 고점, Inverse Linear는 조건에 만족할수록 저점)

Scoring Factor : 점수 X Scoring Factor를 하여 최종 점수를 정한다. 다수의 Test가 존재한다고 할때 Test의 중요도를 나타내기위해 존재, 다수의 테스트가 있다면 테스트 값은 각각의 테스트의 결과의 합으로 정한다.

Normalization Type : Absolute - 원점으로부터 절대적인 거리가 점수

                                  Relative to Scores - 원점이 아니라 활성화된 Item중 거리가 최소인 Item이 0점

 

Relative to Scores

Reference Value : 이곳에 지정한 값에 가까워 질수록 점수가 낮아진다. 반대로 하고싶으면 Inverse Linear로 설정