3번째 던전에서 일정이상 AI를 잡게되면 카운팅을 누적해서 마지막 강한 몬스터가 나오기전에
벽이 부숴지는 연출이 나오고 그 안에서 AI가 걸어나오는 연출을 해보도록 하겠습니다
우선 벽이 쉽게 부숴지지않게 Damage Threshold(데미지한계치) 를 올려놓은 상태입니다
기본으로 벽의 콜리전 세팅을 해줍니다
Pawn과 WorldDynamic에 블록 판정을 하여 플레이어가 벽이 부숴지기전에 지나갈수 없도록 합니다
사용할 벽 블루프린트를 만듭니다
사용할 마스터필드 블루프린트를 만듭니다
Chaos Distruction으로 만든 벽 블루프린트를 설치하고 앵커필드를 설치해줍니다
설치한 벽면에 앵커필드를 할당해줍니다
마스터필드액터를 스폰하는 함수입니다
AdjustIfPossibleButAlwaysSpawn으로 스폰할려고하는 위치에 콜리전이 있어도 강제로 스폰합니다
void ASwordPlayerGameBase::SpawnMasterField()
{
FVector masterFieldSpawnLoc(1540.0f, 630.0f, 160.0f);
FRotator masterFieldSpawnRot = FRotator::ZeroRotator;
FActorSpawnParameters mfSpawnParams;
mfSpawnParams.SpawnCollisionHandlingOverride = ESpawnActorCollisionHandlingMethod::AdjustIfPossibleButAlwaysSpawn;
UWorld* dungeonWorld = GetWorld();
AActor* SpawnedMasterField = dungeonWorld->SpawnActor<AActor>(masterFieldActor, masterFieldSpawnLoc, masterFieldSpawnRot, mfSpawnParams);
}
시퀀스를 실행시키며 시퀀스동안 UI를 숨기며 인풋을 제한하는 함수입니다
void ASwordPlayerGameBase::PlayWallSequence()
{
if (player->characterWidget)
{
player->characterWidget->SetVisibility(ESlateVisibility::Collapsed);
}
FMovieSceneSequencePlaybackSettings playSetting;
ALevelSequenceActor* sequenceActor = nullptr;
playSetting.bAutoPlay = false;
ULevelSequencePlayer* swordSequenseWall = ULevelSequencePlayer::CreateLevelSequencePlayer(GetWorld(), wallBrokeSequence, playSetting, sequenceActor);
swordSequenseWall->Play();
//can move player call delegate
swordSequenseWall->OnFinished.AddDynamic(this, &ASwordPlayerGameBase::wallSequenceFinish);
//stopPlayer
if (InputComponent && InputComponent->IsActive())
{
InputComponent->Deactivate();
}
}
웨이브스폰에 해당 함수를 추가하였습니다
else if (newCount == 36)
{
SpawnMasterField();
PlayWallSequence();
currentTemplates = { strongSkeleton1, strongSkeleton2, strongSkeleton3 };
SpawnLastWave(currentTemplates, 10);
}
본격적으로 시퀀서를 만들어보겠습니다
시네카메라를 설치후 문을 트래킹하게 세팅하였습니다
문에서 서서히 바깥으로 멀어지다가 옆을 보게 시퀀스를 제작해줬습니다
AI의 BehaviorTree를 설정하여 스폰한뒤 정해둔 위치로 이동하게 만들었습니다
2025.05.22 - [Unreal 팁] - BehaviorTree 단순 좌표 이동
최종결과물
일정 이상 마리수를 잡게되면 AI가 벽을 뚫고 나오는 컷씬이 실행됩니다
'Unreal5 프로젝트 다이어리' 카테고리의 다른 글
Unreal - 던전진행도 위젯 만들기 (스칼라 파라미터 조절하기) (0) | 2025.05.23 |
---|---|
Unreal - 자동 흡수되는 확률형 드롭 아이템 만들기 (0) | 2025.05.22 |
Unreal - 부숴지는 벽 만들기 (Chaos Distruction) (0) | 2025.05.22 |
Unrela - 시퀀스 만들기 (캐릭터편) (0) | 2025.05.21 |
Unreal - 레벨이동시 게임저장, 로드하기 (Save Game) (1) | 2025.05.20 |