득이공간

[언리얼 게임 프레임웍의 이해] 4장. 게임 데이터와 인공지능 본문

GP/UE5

[언리얼 게임 프레임웍의 이해] 4장. 게임 데이터와 인공지능

쟁득 2024. 2. 14. 22:57
해당 게시물은 이득우 교수님의 '언리얼 게임 프레임웍의 이해' 강의를 수강하며
학습한 내용을 개인적으로 정리한 글입니다.

📌 목차 - 4장. 게임 데이터와 인공지능

4-1. 게임데이터 관리
4-2. 행동트리 모델의 이해
4-3. 행동트리 모델의 구현


📌 4-1. 게임데이터 관리

1. 외부 데이터 파일로부터 게임 데이터를 관리하는 다양한 방법의 학습
2. 데이터를 관리하는 싱글톤 클래스 생성 방법의 이해
3. 데이터 테이블 기반의 캐릭터 스탯 시스템 구축
4. 지연 생성을 활용한 액터 초기화 방법의 이해

 

* 이번 강의에서 다룬 게임프레임웍 기능
- 데이터: 테이블, 설정

* 엑셀 데이터의 임포트
- DataAsset과 유사하게 FTableRowBase를 상속받은 구조체를 선언
- 엑셀의 Name 컬럼을 제외한 컬럼과 동일하게 UPROPERTY 속성을 선언
- 엑셀 데이터를 csv로 익스포트한 후 언리얼 엔진에 임포트

* 데이터를 관리할 싱글톤 클래스의 설정
- 언리얼 엔진에서 제공하는 싱글톤 클래스
1. 게임 인스턴스
2. 애셋 매니저
3. 게임 플레이 관련 액터 (게임 모드, 게임 스테이트)
4. 프로젝트에 싱글톤으로 등록한 언리얼 오브젝트
- 언리얼 오브젝트 생성자에서 사용하지 않도록 주의

* 프로젝트의 주요 레이어
- 게임 레이어: 기믹과 NPC
- 미들웨어 레이어: 캐릭터의 스탯 컴포넌트, 아이템 박스
- 데이터 레이어: 스탯 데이터, 데이터 관리를 위한 싱글톤 클래스

* 캐릭터 스탯 시스템
- Character Stat Component: Base Stat (GameSingleton) + Modifier Stat (Weapon)

* 액터의 생성과 지연 생성의 프로세스
- SpawnActor -> 초기화 & Begin Play
- SpawnActorDeferred -> 초기화 -> FinishSpawning -> Begin Play


📌 4-2. 행동트리 모델의 이해

1. 행동 트리 모델이 가지는 장점
2. 행동 트리 모델의 구성 요소와 설계 방법
3. 언리얼 엔진의 행동트리를 구동시키기 위한 기본 설정

 

* 이번 강의에서 다룬 게임프레임웍 기능
- 인공지능: BT

* 행동 트리(Behavior Tree)의 역사
- 2004년 개발사 번지의 헤일로2에서 인공지능을 설계하는데 사용됐다.
- 2005 GDC에서 발표: "Handling Complexity in the Halo 2 AI"
- 우선순위와 트리 구조를 사용해 인공지능을 설계하는 기법
- 게임 산업에서 개량해 널리 사용하고 있다.

* 행동 트리 모델의 장점
- FSM(유한상태기계)이 가지고 있던 문제를 해결하는 새로운 게임 인공지능 모델의 수립
1. 모듈화가 잘 되어 있어 확장이 자유롭다.
2. 트리를 기반으로 계층화가 잘 되어 있어, 복잡한 인공지능 모델을 쉽게 설계할 수 있다.
3. 다이어그램으로 인공지능 모델을 효과적으로 표현할 수 있다.
4. 제공되는 여러 편리한 부가 기능을 활용해 다양한 상황에 대해 손쉽게 제어할 수 있다.

* 행동 트리 모델의 구성 요소
- Root - Composite - Action
- 트리에서 항상 왼쪽에 있는 노드에 우선 순위를 부여한다.
- 시작 상태를 설정할 필요 없이 왼쪽부터 깊이 우선 탐색을 시작한다.

* 행동 컨트롤
- 행동을 중심으로 설계한다.
- 단 부모 노드에서 다수의 행동을 컨트롤 한다. = Composite
1. 셀렉터(Selector): 여러 행동 중 하나의 행동을 지정
2. 시퀀스(Sequence): 여러 행동을 모두(순차적으로) 수행
3. 패러렐(Parallel): 여러 행동을 함께(동시에) 수행

* 행동에 대한 결과
- 컴포짓 노드마다 다른 행동 결과 처리
1. 성공(Succeeded): 행동의 성공
2. 실패(Failed): 행동의 실패
3. 중지(Aborted): 외부 요인으로 인한 행동의 실패
4. 진행 중(InProgress): 행동 결과를 홀딩

* 행동 트리 모델의 부가 기능
- 컴포짓 노드에 부착하는 다양한 추가 기능
1. 데코레이터(Decorator): 컴포짓 노드가 실행되는 조건을 지정
2. 서비스(Service): 컴포짓 노드가 활성화될 때 주기적으로 실행하는 부가 명령
3. 관찰자 중단(Abort): 데코레이터 조건에 부합되면 컴포짓 내 활동을 모두 중단


📌 4-3. 행동트리 모델의 구현

1. 블랙보드의 설정
2. 내비게이션 메시의 설정
3. 인터페이스를 활용한 AI와 캐릭터 간의 분리 설계
4. 일반 태스크와 지연 태스크의 제작과 활용
5. 서비스와 데코레이터의 제작과 활용

 

* 이번 강의에서 다룬 게임프레임웍 기능
- 인공지능: 길찾기, BT