Unreal Project Acero#38(EQS with AICover)

공팡팡·2025년 5월 16일

Unreal - Project Acero

목록 보기
9/10

EQS

저번 시간에 소개하였던 블랙보드의 연장선이다. 먼저 알아야 할 것은 EQS의 개념이다. UE5에서 제공하는 블랙보드의 기능중 하나인데, 에이전트나 환경에서 데이터를 수집하게 한다.

에이전트의 주변에 어떤 여러 조건을 걸어서 가장 좋은 아이템, 액터, 장애물등을 찾을 수 있게 하는 데이터집합체 형태라고 할 수 있다. 예를 들어 플레이어가 어떤 던전에 들어갔다고 하자. 그럼 가장 주의해야 할 적을 플레이어에게 알려줘야 할 필요가 있다. 이때 미리 설정해둔 조건문을 통해 실시간으로 바뀌는 위험한 적의 우선순위를 EQS를 통해 알려줄 수 있다.

이번 프로젝트에서는 이러한 EQS시스템을 3가지의 경우로 다루려고 한다.

  1. AI가 적의 공격을 피하기 위한 엄폐물을 찾기
  2. 탄약이 부족할때 교체를 위한 무기 찾기
  3. 시야에서 감지되거나, 발자국 소리가 들릴때 가장 가까운 적에게로 이동하기

이러한 시스템을 EQS로 한번 구성해보려고 한다.

이를 위해 에이전트의 컨트롤러를 가져오기 위한 Context_Player, EQS의 두가지, 마지막으로 이를 디버깅 하기 위한 EQSTester를 준비하였다.

EQS_FindingCover

우리는 장전같은 공격에 취약한 상황에 처하게 되면 엄폐물에 숨는 행위를 하게 된다. AI가 이러한 행동을 하게 하려면 여러가지 조건을 걸어줘야 한다.

1. Trace - Context Player > 엄폐물을 찾기 위해, 에이전트의 시야를 가로막는 물체(엄폐물)을 확인해야 한다.
2. Overlap Box - 엄폐물의 크기와 형태가 적당한가? 만약 너무 작다면 엄폐물로 간주하지 말아야 한다.
3. Distance to Querier - 쿼리 대상(Plyaer)와 엄폐물의 거리를 알아야 한다. Player와 Agent 자신의 거리를 비교하는데, 예시로 적에겐 너무 가까운 엄폐물은 그 의미를 잃을 것이다.
4. Distance to Context Player - 적당한 거리의 엄폐물만 선택하여야 한다.

위의 조건을 예시로 TestingPawn을 세우면 다음과 같다.

Pawn에서 가까운 Point들을 선택하여 가장 고득점인 엄폐물을 고를 수 있게 된다.

profile
공부 정리 노트

0개의 댓글