[Unreal Engine 5] AI Controller

2024. 10. 1. 13:54·Game Programming/Unreal Engine
728x90
반응형

개요

이번 포스팅에서는 몬스터 AI를 구현하기 위해 필요한 AI Controller에 대해 다루어보도록 하겠습니다.


Controller

언리얼 엔진의 Controller는 Pawn(폰) 또는 Character(캐릭터)처럼 폰에서 파생된 클래스를 빙의(Possess)하여 동작을 제어할 수 있는 액터입니다.

 

크게 사람이 조종하는 폰에 사용되는 PlayerController와 AI를 구현하기 위해 필요한 AI Controller로 구분되며, 두 컨틀롤러 모두 Possess 함수를 통해 Pawn(폰)의 제어권을 획득하고, Unpossess 함수로 소유권 해제가 가능합니다.

 

컨트롤러는 제어중인 폰에 발생하는 다수의 이벤트를 받으며, 기본적으로 Pawn(폰)과 1:1 대응 관계를 가집니다. 즉, 각각의 컨트롤러는 하나의 폰만을 제어할 수 있다는 의미입니다.


AI Controller

AI Controller는 게임 세계에서 AI가 어떻게 동작하고 상호작용할지 제어하는 "두뇌"와 같은 역할을 합니다.

 

AI Controller는 다음과 같은 역할을 수행합니다.

  1. AI 캐릭터 제어
    • Possess() 함수를 사용해 특정 Pawn을 제어하거나 UnPossess() 함수를 통해 연결을 해제할 수 있습니다. 
    • Pawn을 제어하여 이동 경로를 계산하고, 목적지로 이동시키거나 공격/방어 등의 행동을 실행합니다.
  2. 의사 결정
    • Behavior Tree와 Blackboard를 함께 사용하여 AI의 의사 결정 과정을 만들 수 있습니다.
    • AI Controller는 BehaviorTree와 상호작용하며, Blackboard를 통해 데이터를 저장 및 사용할 수 있습니다.
  3. 경로 탐색
    • AI Controller는 내장된 Navigation System을 활용하여 소유한 Pawn이 장애물을 피해 목적지까지 이동할 수 있도록 경로를 탐색하고, 이동시킬 수 있습니다.

AI Controller 간단 설정

실제로 몬스터에 사용할 AI Controller를 설정(Possess / UnPossess)하는 코드를 작성해보았습니다.

 

Possess (빙의)

 

UnPossess (빙의 해제)

 

위와 같이 간단히 Possess와 UnPossess 코드를 작성하였다면, 실제 몬스터 클래스에서 AI Controller를 해당 클래스로 설정해주면 자동으로 몬스터가 배치/스폰됨과 동시에 설정한 Behavior Tree를 실행됩니다.


참고 자료

https://dev.epicgames.com/documentation/ko-kr/unreal-engine/controllers-in-unreal-engine

 

 

 

728x90
반응형
저작자표시 비영리 변경금지 (새창열림)

'Game Programming > Unreal Engine' 카테고리의 다른 글

[Unreal Engine] 스마트 포인터 (C++ vs UE)  (0) 2024.10.29
[Unreal Engine] DataAsset, Lazy Loading  (0) 2024.10.28
[Unreal Engine 5] FABRIK IK  (0) 2024.08.25
[Unreal Engine] 리플렉션 시스템, CDO  (0) 2024.07.26
[Unreal Engine 5] GameInstanceSubsystem  (0) 2024.07.17
'Game Programming/Unreal Engine' 카테고리의 다른 글
  • [Unreal Engine] 스마트 포인터 (C++ vs UE)
  • [Unreal Engine] DataAsset, Lazy Loading
  • [Unreal Engine 5] FABRIK IK
  • [Unreal Engine] 리플렉션 시스템, CDO
리태s
리태s
게임 클라이언트 프로그래머 직무를 준비하며 공부한 내용을 정리한 블로그입니다.
    반응형
    250x250
  • 리태s
    LeeTaes 공부노트
    리태s
  • 전체
    오늘
    어제
    • Home (165)
      • 프로젝트 (20)
        • Isaac 3D (5)
        • TimelessAdventure (13)
        • FruitsPuzzle (2)
      • Game Programming (25)
        • C# (8)
        • Unity Engine (6)
        • Unreal Engine (8)
        • UE_Multiplayer (3)
      • 코딩테스트 (111)
        • 프로그래머스 (Lv. 0) (27)
        • 프로그래머스 (Lv. 1) (31)
        • 프로그래머스 (Lv. 2) (21)
        • 백준 (Study) (29)
        • 알고리즘 (3)
      • CS지식 (7)
        • 운영체제 (7)
      • 일상 (2)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    프로젝트
    CS지식
    fsoftobjectpath
    project t.a develop
    unity
    issac3d
    후기
    2018 kakao
    timelessadventure
    2019 kakao
    구현
    프로세스
    코딩테스트
    Summer/Winter Coding
    dataasset
    ai controller
    delegate
    청년취업사관학교
    pcce 기출문제
    Unreal Engine
    c#
    sesac
    백준
    unrealengine
    Algorithm
    프로그래머스
    2022 kakao
    C++
    fruitspuzzle
    tsoftobjectptr
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
리태s
[Unreal Engine 5] AI Controller
상단으로

티스토리툴바