1. 주요 개념
(1) 비헤이비어 트리(Behavior Tree)
AI의 주요 행동을 조직, 관리할 수 있는 트리.
다양한 노드를 배치하여 AI의 행동을 제어할 수 있다.
(2) 블랙 보드(Black Board)
AI가 탐색하고 저장하는 데이터 공간.
목표, 목표 지점등의 데이터를 키로 지정한다.
키-값 쌍을 사용한다.
2. 비헤이비어 트리와 블랙 보드 구성 - ShooterAIController.cpp
아래 헤더 파일을 추가한다.
#include "BehaviorTree/BlackboardComponent.h"
void AShooterAIController::BeginPlay()
{
Super::BeginPlay();
if (AIBehavior)
{
RunBehaviorTree(AIBehavior);
APawn* PlayerPawn = UGameplayStatics::GetPlayerPawn(GetWorld(), 0);
GetBlackboardComponent()->SetValueAsVector(TEXT("PlayerLocation"), PlayerPawn->GetActorLocation());
}
}
GetBlackboardComponent를 이용하여 블랙보드를 가져와 PlayerLocation의 키와 플레이어 폰의 값을 쌍으로 만든다.
이후 블랙 보드를 에디터에서 켜서 PlayerLocation인 벡터 Key를 만들고 테스트한다.
폰에 빙의 후 F8을 눌러 BB_EnemyAI에서 PlayerLocation Key 옆에 정상적으로 위치가 뜨는지 확인한다.
그렇지 않다면 BP_ShooterAIController의 디테일 창에서 비헤이비어 트리가 정상적으로 설정되어 있는지 확인한다.
'UE 5 스터디 > C++' 카테고리의 다른 글
10. 비헤이비어 트리 - 서비스 노드 (0) | 2024.03.08 |
---|---|
9. 비헤이비어 트리 노드 생성하기 (0) | 2024.03.08 |
7. AI에 길 찾기 알고리즘 적용(NavMesh, MoveTo) (0) | 2024.03.07 |
6. 액터에 데미지 입히기(FDamageEvent, TakeDamage) (0) | 2024.03.07 |
5. 라인 트레이스(LineTraceSingleByChannel) (0) | 2024.03.06 |