루리코딩 세상

Unreal Engine AI 설정 활용 방안 본문

이론/Unreal Engine

Unreal Engine AI 설정 활용 방안

루리딩 2025. 5. 19. 17:41

언리얼 엔진에서 지원하는 강력한 기능 중에는 AI를 활용하는 방안이 있다.

이를 이용해서 플레이어와 AI간의 상호작용으로 더욱더 실감나는 게임을 만들기 위해서는

언리얼 엔진의 블루프린트 클래스와 프로그래밍을 적극적으로 활용해야한다.

 

먼저 블루 프린트 클래스를 활용해서 프로그래밍을 하기 전에 어떤 동작을 AI에게 주면 좋을지에 대해서 나눠보자.

 

움직이는 동작 관련()
전진( 걷기, 뛰기, 전력질주 )
( Walk, Run, Sprint )
순찰 상태
( Patrol )
점프 상태
( Jump )
정지해있는 상태
( Idle )
   
전투 동작 관련(애니메이션 동작 관련)
무기를 들고 있는 행동
( Idle->Holster )
무기를 꺼내는 장착하는 행동
( Begin-Equip )
무기를 휘두르는 행동
( Attack )
방어를 위한 행동 범위 내 감지하는 행동
( Perception )
플레이어를 추적하는 행동
( Approach )
기타 동작 관련
피격 당하는 행동
( Damaged )
   

뷰포트 AI 디버깅 상태

콘텐츠 고급 에셋에는 인공 지능 클래스는

블랙보드(Blackboard)

비헤이비어 트리(Behavior Tree)

인바이런먼트 쿼리(Environment Query System, EQS) 세 종류를 확인가능하다.

 

각각의 기능을 정리하면 아래와 같다.


1. 🧠 블랙보드 (Blackboard)

AI기억장치, 즉 "생각하는 공간"입니다.

  • 무엇인가?
    AI현재 상태나 목표를 기억할 있도록 도와주는 데이터 저장소입니다.
  • 예시 변수:
    • TargetActor (공격 대상)
    • MoveLocation (이동 위치)
    • AIState (현재 행동 상태 – 대기, 추적 등)
  • 어디서 쓰이나요?
    비헤이비어 트리, 데코레이터, 서비스, 태스크 여러 노드에서 조건 판단 공유사용됩니다.

블랙보드는 AI뇌처럼 "어디로 갈까? 누구를 공격하지?" 등의 결정을 위한 기준이 됩니다.


2. 🌲 비헤이비어 트리 (Behavior Tree)

AI행동 순서도, 즉 "무엇을 어떻게 것인지"설계합니다.

  • 무엇인가?
    AI어떤 상황에서 어떤 행동을 해야 하는지 논리적 흐름을 설계하는 도구입니다.
  • 구성 요소:
    • RootComposite (Sequence/Selector) → Decorator/Task/Service
  • 기본 노드 종류:
    • Sequence: 순차 실행 (모두 성공해야 성공)
    • Selector: 조건 분기 (하나라도 성공하면 성공)
    • Task: 실제 행동 (이동, 공격 등)
    • Decorator: 조건 확인 (예: 적이 보일 때만 실행)
    • Service: 상태 갱신 (예: 타겟 계속 확인)

비헤이비어 트리는 AI상황에 따라 무엇을 할지 스마트하게 결정하는 경로도입니다.


3. 🔍 인바이런먼트 쿼리 시스템 (Environment Query System, EQS)

AI주변 환경을 탐색하고 판단하는 시스템, 즉 "주변을 살펴보고 어디가 좋은지 판단"합니다.

  • 무엇인가?
    AI환경을 스캔해서 최적의 위치를 선택하거나 대상 탐색을 도와주는 쿼리 기반 탐색 도구입니다.
  • 활용 예시:
    • 장애물 없는 가장 가까운 위치 찾기
    • 플레이어와 일정 거리 유지하는 위치 선정
    • 은신처나 유리한 포지션 찾기
  • 쿼리 항목:
    • Generate Location (위치 생성)
    • Test Distance (거리 검사)
    • Test Visibility (시야 검사)

EQSAI환경을 고려한 전략적 위치 선택적합하며, 고급 AI매우 유용합니다.

 

인공 지능 클래스의 블랙보드

 

인공 지능의 비헤이비어 트리 행동을 어떻게 동작 할 것인지에 대하여 설정하는 과정이다.

AI-Behavior Tree - 블랙보드 에셋을 알맞는 부모 클래스-블랙보드 에셋으로 설정해주어야 작동한다.

 

블루 프린트 클래스 중 AIcontroller (부모 클래스)