안선생의 개발 블로그
[UE5 AI] EQS( Environment Query System) 본문
🎯 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를 생성하고 설정하는 방법을 알아봅시다.
- EQS 에디터 열기
- 콘텐츠 브라우저에서 우클릭 → Artificial Intelligence → Environment Query를 선택하여 새로운 EQS를 생성합니다.
- 콘텐츠 브라우저에서 우클릭 → Artificial Intelligence → Environment Query를 선택하여 새로운 EQS를 생성합니다.
- Points Grid 생성
- 생성된 EQS 에디터에서 루트(Root) 를 드래그하여 Points Grid를 추가합니다.
- 이는 일정한 격자 형태로 포인트를 생성하는 역할을 합니다.
- 쿼리 테스트 실행하기
- EQS는 단독으로 실행할 수 없으며, 테스트하기 위해 EQS Testing Pawn이 필요합니다.
2️⃣ EQS Testing Pawn 설정
이제 EQS를 테스트할 수 있도록 EQS Testing Pawn을 설정해보겠습니다.
- EQS Testing Pawn 생성
- 콘텐츠 브라우저에서 우클릭 → Blueprint Class를 선택하고 EQS Testing Pawn을 부모 클래스로 선택합니다.
- 생성된 블루프린트(BP_EQS_TestingPawn)를 레벨에 배치합니다.
- 쿼리 템플릿 설정
- 배치한 EQS Testing Pawn의 **디테일 패널(Details Panel)**에서 Query Template을 방금 생성한 EQS로 설정합니다.
- 레벨에서 EQS가 실행되면서 동그란 원(아이템) 들이 나타납니다.
💡 아이템(Item)이란?
EQS가 생성한 탐색 지점으로, AI가 이 포인트들을 분석하여 최적의 결과를 반환합니다.
3️⃣ EQS 디테일 패널 설정
이제 EQS의 다양한 옵션을 조정하여 원하는 데이터를 얻을 수 있도록 설정해보겠습니다.
- 사이 공간 (Space Between)
- 아이템 간의 간격을 조정하는 값으로, 좁힐수록 더 촘촘한 포인트가 생성됩니다.
- 주변 생성 (Generate Around)
- 특정 액터를 기준으로 포인트를 생성하도록 설정할 수 있습니다.
- 아래로 투영 (Project Down) / 위로 투영 (Project Up)
- 포인트를 생성할 때 지형의 높낮이를 감안하여 위/아래로 탐지할 수 있습니다.
- 이를 통해 경사진 지형에서도 적절한 포인트를 찾을 수 있습니다.
.
5️⃣ Behavior Tree에서 EQS 사용하기
EQS를 Behavior Tree에 적용하는 방법을 알아보겠습니다.
- Run EQS Query 노드 추가
- Behavior Tree에서 Run EQS Query 노드를 추가합니다.
- Query Template에 생성한 EQS를 설정합니다.
- 설정해야 할 주요 값
- 값(Value): 생성할 아이템(포인트)의 개수
- 실행 모드(Run Mode): Single Random Item from Best 25% → 최적의 아이템 중 상위 25% 내에서 랜덤 선택
- 블랙보드 키(Blackboard Key): 선택된 아이템을 블랙보드에 저장하여 AI가 사용할 수 있도록 설정
- Behavior Tree 실행
- AI 컨트롤러에서 Behavior Tree를 실행하면 EQS 쿼리가 실행되고, AI가 최적의 위치를 선택하여 이동 또는 액션을 수행하게 됩니다.
'언리얼 > AI' 카테고리의 다른 글
[UE5 AI] Behavior Tree - Decorator (0) | 2024.03.27 |
---|---|
[UE5 AI] Behavior Tree - Service (0) | 2024.03.21 |
[UE5 AI] Simple Parallel (0) | 2024.03.21 |
[UE5 AI] AI - BlackBoard (0) | 2024.03.20 |
[UE5 AI] AI Behavior Tree - Task, 셀렉터(Selector),시퀀스(Sequence) (0) | 2024.03.17 |