언리얼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 비헤이비어트리를 실행하도록 구성하였다.

실행 결과

GIF

애니메이션 재생후 다시 AI가 동작

참고 자료

댓글남기기