언리얼4 보스 AI 정지/시작
Intro
- AI 정지와 시작
보스 AI 컨트롤
보스 스폰 모션
보스가 스폰됐을때 비헤이비어트리를 정지하고 전투를 준비하는 애니메이션을 재생시킨다음 전투가 시작되면 다시 동작하도록 하려고함
AIController 함수 추가
void AGruxAIController::StopAI()
{
auto BehaviorTreeComponent = Cast<UBehaviorTreeComponent>(BrainComponent);
if (nullptr != BehaviorTreeComponent)
{
BehaviorTreeComponent->StopTree(EBTStopMode::Safe);
}
}
void AGruxAIController::StartAI()
{
auto BehaviorTreeComponent = Cast<UBehaviorTreeComponent>(BrainComponent);
if (nullptr != BehaviorTreeComponent)
{
BehaviorTreeComponent->StartTree(*this->BTGrux, EBTExecutionMode::Looped);
}
}
AI를 정지시키는 함수 시작하는 함수를 정의한다. 비헤이비어트리를 시작하려면 시작하려는 BT(BTGrux)를 지정해줘야한다.
보스 스폰 모션재생
void AGrux::BeginPlay()
{
Super::BeginPlay();
if (GruxAI!=nullptr)
{
GruxAI->StopAI();
GruxAnim->PlayStartMontage();
GetWorld()->GetTimerManager().SetTimer(timer, this, &AGrux::AIStart, 5.2f, false); // 시작 몽타주 재생후 패턴시작
}
}
보스가 생성될때 AI를 멈춘다음 전투준비 애니메이션을 재생시킨다음 애니메이션이 끝나는 시간 5.2초뒤에 다시 BTGrux 비헤이비어트리를 실행하도록 구성하였다.
실행 결과
애니메이션 재생후 다시 AI가 동작
댓글남기기