안선생의 개발 블로그

[UE5 AI] EQS( Environment Query System) 본문

언리얼/AI

[UE5 AI] EQS( Environment Query System)

안선생 2025. 2. 17. 21:45

🎯 EQS (Environment Query System)란?

EQS(Environment Query System)는 언리얼 엔진의 AI 시스템 중 하나로, AI가 환경을 분석하고 최적의 위치를 찾을 수 있도록 도와주는 시스템입니다.

쉽게 말해, **"AI가 어디로 이동해야 하는지, 어떤 타겟을 선택해야 하는지"**를 판단할 때 사용됩니다.
예를 들어:
✔ AI가 엄폐물 뒤로 숨을 수 있는 가장 적절한 위치 찾기
✔ 플레이어와 가장 가까운 적 탐색
✔ 특정 조건(높이, 거리 등)에 맞는 최적의 포인트 찾기

🏗 EQS의 기본 개념

EQS는 쿼리(Query) 를 실행하여 환경에서 여러 후보 지점을 평가하고, 가장 적합한 결과를 반환하는 방식으로 작동합니다.

1. Query 생성 과정

EQS는 여러 개의 스텝을 거쳐 데이터를 수집하고 평가합니다.

1️⃣ Generator (생성기)

  • 후보 지점(Point)들을 생성하는 역할
  • 예: 주변 랜덤 포인트, 네비메시 기반 포인트 등

2️⃣ Test (테스트 조건)

  • 생성된 후보 지점을 평가하는 기준
  • 예: 플레이어와의 거리, 장애물 유무, 시야 확보 여부 등

3️⃣ Scoring (점수 계산)

  • 각 지점의 점수를 계산하여 가장 적절한 포인트를 선택

 

1️⃣ EQS 기본 생성하기

먼저, EQS를 생성하고 설정하는 방법을 알아봅시다.

  1. EQS 에디터 열기
    • 콘텐츠 브라우저에서 우클릭 → Artificial Intelligence → Environment Query를 선택하여 새로운 EQS를 생성합니다.



  2. Points Grid 생성
    • 생성된 EQS 에디터에서 루트(Root) 를 드래그하여 Points Grid를 추가합니다.
    • 이는 일정한 격자 형태로 포인트를 생성하는 역할을 합니다.



  3. 쿼리 테스트 실행하기
    • EQS는 단독으로 실행할 수 없으며, 테스트하기 위해 EQS Testing Pawn이 필요합니다.

 

2️⃣ EQS Testing Pawn 설정

이제 EQS를 테스트할 수 있도록 EQS Testing Pawn을 설정해보겠습니다.

  1. EQS Testing Pawn 생성
    • 콘텐츠 브라우저에서 우클릭 → Blueprint Class를 선택하고 EQS Testing Pawn을 부모 클래스로 선택합니다.
    • 생성된 블루프린트(BP_EQS_TestingPawn)를 레벨에 배치합니다.



  2. 쿼리 템플릿 설정
    • 배치한 EQS Testing Pawn의 **디테일 패널(Details Panel)**에서 Query Template을 방금 생성한 EQS로 설정합니다.
    • 레벨에서 EQS가 실행되면서 동그란 원(아이템) 들이 나타납니다.



💡 아이템(Item)이란?
EQS가 생성한 탐색 지점으로, AI가 이 포인트들을 분석하여 최적의 결과를 반환합니다.

 




3️⃣ EQS 디테일 패널 설정

이제 EQS의 다양한 옵션을 조정하여 원하는 데이터를 얻을 수 있도록 설정해보겠습니다.

 

  1. 사이 공간 (Space Between)
    • 아이템 간의 간격을 조정하는 값으로, 좁힐수록 더 촘촘한 포인트가 생성됩니다.
  2. 주변 생성 (Generate Around)
    • 특정 액터를 기준으로 포인트를 생성하도록 설정할 수 있습니다.
  3. 아래로 투영 (Project Down) / 위로 투영 (Project Up)
    • 포인트를 생성할 때 지형의 높낮이를 감안하여 위/아래로 탐지할 수 있습니다.
    • 이를 통해 경사진 지형에서도 적절한 포인트를 찾을 수 있습니다.

.

5️⃣ Behavior Tree에서 EQS 사용하기

EQS를 Behavior Tree에 적용하는 방법을 알아보겠습니다.

  1. Run EQS Query 노드 추가
    • Behavior Tree에서 Run EQS Query 노드를 추가합니다.
    • Query Template에 생성한 EQS를 설정합니다.



  2. 설정해야 할 주요 값
    • 값(Value): 생성할 아이템(포인트)의 개수
    • 실행 모드(Run Mode): Single Random Item from Best 25% → 최적의 아이템 중 상위 25% 내에서 랜덤 선택
    • 블랙보드 키(Blackboard Key): 선택된 아이템을 블랙보드에 저장하여 AI가 사용할 수 있도록 설정



  3. Behavior Tree 실행
    • AI 컨트롤러에서 Behavior Tree를 실행하면 EQS 쿼리가 실행되고, AI가 최적의 위치를 선택하여 이동 또는 액션을 수행하게 됩니다.