1. AI Asset
1) Behavior Tree
(1) Behavior Tree 생성
- 콘텐츠 브라우저 > Artificial Intelligence > Behavior Tree 클릭
(2) 특징
- 블루프린트의 또 다른 한 종류라고 생각하면 되지만 로직과 코드가 비교적 많지 않은 것이 특징
- AI에 알맞게 행동하도록 다양한 태스크들 간에 연결이 이뤄짐
(3) 노드 유형
- 몇 가지 유형의 노드와 명령이 있지만 주로사용하는 것은 두가지임
- Composites
- 행동 트리 가지 중 하나
- 어떤 태스크를 실행할지 선택
- 모든 컴포짓 노드는 작은 원 안에 번호가 새겨져 있으며 이는 행동 트리가 따르는 순서
- Decorators
- 서비스나 태스크와 같은 역할
- 기능을 부여할 수 있는 컴포짓을 추가
- ex) Blackboard 유형의 데코레이터를 이용하면 Blackboard 에셋으로부터 값을 가져와 특정 행동 트리의 가지에 사용
2) BTTask(Behavior Tree Task)
(1) 생성
- 일반적인 블루프린트 생성 방법을 따름
- 부모 class로 BTTask_BlueprintBase를 선택
(2) 특징
- AI가 수행할 작업을 나타냄
- 일반적인 블루프린트와 같이 태스크 안에 로직을 포함할 수 있음
- C++로 로직을 작성할 경우 블루프린트를 통해 호출함
3) BTService
(1) 생성
- BTTask와 같음
- 부모 클래스로 BTService_BlueprintBase를 따름
(2) 특징
- 태스크와 거의 같지만 실행시간 내내 호출된다는 점이 차이점
4) Blackboard
(1) 생성
- 콘텐츠 브라우저 우클릭 > Arificial Intelligence > Blackboard
(2) 특징
- 데이터 저장소
- 데이터를 저장하고 행동트리 태스크 안에서 이 데이터를 사용
2. Class for Ai
1) AIController
- 입력을 통해 어떤 동작을 취하는지 결정되는 Character와 달리 환경과 내비게이션 메시 등에 따라 동작을 취함
- Blackboard 에셋에 대한 값을 설정
- 직군의 회전을 조정
- 내비게이션 메시를 사용
(1) 자주 사용되는 컴포넌트
UPROPERTY(transient)
UBlackboardComponent* BlackboardComp;
UPROPERTY(transient)
UBehaviorTreeComponent* BehaviorComp;