[ Unreal Engine 5 / #17 Enemy AI, EQS ]

SeungWoo·2024년 10월 2일
0

[ Ureal Engine 5 / 수업 ]

목록 보기
18/31
post-thumbnail

EQS ( Environment Query System )

Unreal Engine의 AI Perception과 EQS(Query System)는 게임에서 AI가 주변 환경을 인식하고 판단하는 데 사용되는 도구

  • AI Perception
    • AI Perception은 AI가 주변 환경을 인식하고 상호 작용할 수 있도록 해주는 시스템입니다.
      AI 캐릭터가 주변에 무엇이 있는지 감지하고 이해하는 데 사용됩니다.
    • AI Perception은 시각, 청각, 특정 이벤트 또는 사건에 대한 감지 등을 포함하여 다양한 감각을 통해 주변 환경을 감지합니다.
  • EQS (Environment Query System)
    • EQS는 AI가 환경을 탐색하고 결정을 내릴 때 사용되는 쿼리 시스템입니다.
    • EQS는 특정 질문 또는 쿼리를 작성하여 AI에게 주변 환경을 조사하고 상황에 맞는 최적의 결정을 내리도록 도와줍니다.
    • 예를 들어, AI가 적을 추적할지, 아이템을 찾을지, 플레이어와의 상호 작용을 할지 등을 결정하는 데 사용됩니다.

  • EQS 가 적용되는 공간 (범위)

  • 감지 영역이 많아지면서 렉이 약간 발생할 수 있으나 한번 감지 영역이 어떻게 변화하는지 확인

  • 파란색 구체 :
    • 이 구체는 해당 아이템의 테스트가 실패했음을 나타냅니다. 따라서 아이템은 아무런 가중치가 적용되지 않고 결과에서 제외됩니다.
    • 보통 값이 필터로 걸러졌을 때 발생합니다.
    • Distance 테스트 등으로 모든 아이템이 필터 범위를 초과하거나 필터 범위 미만일 때와 같은 경우입니다.
    • 값이 완전히 제외되기를 원하지 않는다면 점수화 섹션의 범위제한(Clamp) 옵션을 사용하면 됩니다.

  • 녹색에서 빨간색 구체 :
    • 녹색에서 빨간색 사이의 구체는 아이템이 특정 테스트에 의한 최적의 결과로서 얼마나 바람직한지를 나타냅니다.
    • 녹색이 빨간색보다 바람직하며, 표시되는 숫자는 가중치가 적용된 아이템의 점수입니다.
    • 하나의 디버그 스텝(Debug Step)만 프리뷰하는 경우 이 값이 선택된 테스트의 최종값이 됩니다.

  • EQS (원) Point 들을 어디에 생성할지 ? -> 원중심 정하기

  • Item -> 특정 Object , Querier -> 해당 쿼리를 진행하는 주체

  • 플레이어를 중앙으로 하는 Context 생성

  • Circle Center 옵션

    • Circle Center는 EQS에서 사용되는 하나의 옵션으로, 원형 영역을 정의할 때 중심 지점을 지정하는 데 사용됩니다.
    • EQS 쿼리에서 원형 영역을 사용할 때, 해당 영역의 중심을 설정하여 쿼리할 때 필요한 중심점을 제공합니다.
    • 이 옵션은 원을 기반으로 하는 쿼리에 사용되며, 원의 중심을 정의하여 해당 지점을 중심으로 쿼리를 실행합니다.
    • EnvQueryContext_Querier :
      • 이 컨텍스트는 EQS 쿼리를 실행하는 주체를 나타냅니다.
      • 일반적으로 AI 캐릭터나 다른 유형의 쿼리 실행자를 지칭합니다.
      • EnvQueryContext_Querier는 보통 쿼리를 실행하는 주체인 AI 캐릭터를 나타내며, 해당 캐릭터를 기준으로 쿼리를 실행합니다.
    • EnvQueryContext_Item :
      • 이 컨텍스트는 EQS 쿼리에서 대상이 되는 아이템을 나타냅니다.
      • 일반적으로 대상이 되는 오브젝트, 위치 또는 엔티티를 지칭합니다.
      • EnvQueryContext_Item은 쿼리 대상으로 사용되는 아이템을 나타내며, 이를 기반으로 쿼리가 실행됩니다.

  • 나는 이름을 'EQSC_Attack'이라고 지었다

  • 기본적으로 이 함수는 EQS 시스템이 쿼리를 실행할 때, 해당 쿼리에 따라 단일 액터를 제공하도록 설계되어 있습니다. EQS는 주어진 상황에 따라 액터들을 평가하고 테스트하여 가장 적합한 액터를 결정하는 데 사용됩니다. "Provide Single Actor" 함수는 이러한 액터 선택 프로세스에서 단일 액터를 제공하는 역할을 합니다.
  • 이 함수를 사용하면 EQS 시스템은 사용자가 지정한 기준에 따라 하나의 액터를 선택하고, 해당 액터를 기반으로 쿼리를 실행합니다.
  • 이는 예를 들어, 특정 조건을 만족하는 가장 가까운 적 캐릭터, 특정 유형의 아이템 또는 특정 위치에 있는 액터 등을 선택하는 데 활용될 수 있습니다.

  • 만들어논 Set State Attack 함수를 수정


  • EQSC_Attack 블루프린트 작성

  • 나는 EQSC_Attack로 뜬다

  • EQSC_Attack

  • 감지 부분을 BT에 적용 시켜본다

  • 테스트에 적용할 수 있는 추가 옵션과 테스트의 용도를 정의 합니다
    • Filter Only
      • 결과에 필터를 적용하는 용도 입니다. 테스트를 통과하지 못한 아이템은 제거 됩니다
    • Score Only
      • 결과에 점수를 부여하는 용도입니다. 반환된 아이템에는 가중치 값이 부여 됩니다
    • Filter and Score
      • 결과에 필터를 적용하고 점수를 부여하는 용도 입니다

  • 플레이어 캐릭터가 보이는지에 대한 Trace 테스트의 레퍼런스 포인트(컨텍스트)를 제공
  • Bool 옵션을 비활성화하면 플레이어 캐릭터를 볼 수 없는 포인트가 필터로 걸러짐
  • 테스트 목적 ( Test Purpose ) = 필터만 ( Filter Only )
  • 컨텍스트 ( Context ) = EQC_PlayerContext
  • Bool 일치 ( Bool Match ) = 비활성화

  • 동작 상태로 복구

profile
This is my study archive

0개의 댓글