언리얼 엔진 - 게임 프로젝트/GAS 프레임워크 RPG 프로젝트

몬스터 AI - 1) AI의 구성과 동작방식

monstro 2025. 9. 19. 12:25
728x90
반응형

- 개요

몬스터 AI의 구성

 

몬스터의 AI의 구성은 위와 같이 이뤄져있다

차례대로 다음과 같다

  • BehaviorTree : 우선순위 알고리즘트리 구조를 사용하여 인공지능을 설계
  • Blackboard : AI의 의사결정을 위한 데이터를 모아놓은 저장소
  • AIController 클래스 : PlayerController와 다르게 환경과 게임 월드의 입력에 반응하는 Controller 클래스
  • BehaviorTree 컴포넌트 : AIController가 부착된 PawnBehaviorTree를 설정 / 관리하는 컴포넌트
  • Blackboard 컴포넌트 : AIController가 부착된 PawnBlackboard를 설정 / 관리하는 컴포넌트
    • AIController 내부에서 Blackboard라는 이름의 멤버변수로 제공

 

1) 행동 트리의 기본적인 동작 방식

행동 트리의 기본적인 구성

 

행동 트리는 위와 같이 트리 기반으로 설계할 수 있다

따라서 다음과 같은 동작 방식을 지닌다

  • 항상 왼쪽에 있는 노드우선순위를 부여한다
  • 왼쪽 노드부터 우선 실행한다

 

2) 행동 트리 모델의 구성 요소 - Composites 노드

Composites 노드의 종류

 

행동트리는 기본적으로 행동을 중심으로 설계하는데, 이때 Composites 노드를 통해 다수의 행동을 컨트롤한다

  • Selector 노드 : 여러 Tasks 노드 중에서 하나의 노드를 지정하여 수행 -> 공격하거나 회피하기
  • Sequence 노드 : 여러 Tasks 노드순차적으로 모두 수행 -> 공격한 후에 회피하기
  • Parrallel 노드 : 여러 Tasks 노드동시에 모두 수행 -> 공격하면서 회피하기

 

3) 행동 트리 모델의 구성 요소 - Composites 노드의 부가 요소

Composites 노드의 부가 요소

 

Composites 노드우클릭하여 부가적인 기능을 추가하는 것이 가능하다

  • Decorator : Composites 노드가 실행되는 조건을 설정
    • 예시 : 마트 공휴일이 아니라면(Decorator), 마트에서 장 보기(Sequence)
  • Service : Composites 노드가 활성화될 때 주기적으로 실행하는 부가 명령을 설정
    • 예시 : 2시간 동안 시험을 보되(Sequence), 1시간마다 종료 알림(Service)
  • Abort : Decorator의 조건에 부합하면 Composite 노드의 활동을 전부 중단하고, Root 부터 다시 실행
    • 예시 : 연락이 없다면(Decorator), 연락이 올때까지 일하기(Sequence), 연락이 오면 중지(Abort)

 

4) 행동 트리 모델의 구성요소 - Tasks 노드의 결과

Tasks 노드의 결과

 

Composites 노드에 의해 관리되는 Tasks 노드들다양한 실행 결과를 반환하는데,

이런 실행 결과를 사용하여 다양한 작업을 처리할 수 있다

  • Succeed(성공) : Task 노드가 성공하여 완료
  • Failed(실패) : Task 노드는 완료되었지만 실패
  • Aborted(중지) : Task 노드가 외부요인으로 인해 완료되지 못한 채실패
  • InProgress(진행중) : Task 노드의 결과반환하지 않고 홀딩하는 중 
728x90
반응형