게임 엔딩을 두 가지 트리거로 만들었습니다.
1. 시네마틱
CineCameraActor를 생성해서 원하는 위치마다 키를 추가해주면서 카메라를 이동 및 회전시켜줍니다.
오디오, 페이드, 이벤트 등 다양하게 효과를 줄 수 있고, 시간 조절도 가능합니다.
블루프린트 트리거를 생성해서 OnComponentBeginOverlap 이벤트때 시네마틱을 플레이해주고 초기값 세팅도 가능합니다.
2. cpp
블루프린트에서 추가 작업을 해주고싶었는데 복잡하고 가독성이 떨어져서 추가 처리는 cpp로 해줬습니다.
void ATriggerEnding::TriggerBeginOverlap(
UPrimitiveComponent* OverlappedComponent,
AActor* OtherActor,
UPrimitiveComponent* OtherComp,
int32 OtherBodyIndex,
bool bFromSweep,
const FHitResult& SweepResult)
{
AMainGameMode* GameMode = Cast<AMainGameMode>(GetWorld()->GetAuthGameMode());
if (IsValid(GameMode))
{
GameMode->GetAudioComponent()->Stop();
UWidgetMainHUD* MainHUD = GameMode->GetWidgetMainHUD();
if (IsValid(MainHUD))
{
UEscapeGameInstance* GameInst = Cast<UEscapeGameInstance>(GetGameInstance());
if (IsValid(GameInst))
{
GameInst->SetIsEnd(true);
}
MainHUD->Ending();
}
}
}
MainGameMode의 BGM을 Stop해주고, 메인 UI의 HUD(Head Up Display) 중 필요한 것만 남기고 전부 안보이게 처리해주었습니다.
CLEAR!
'게임 개발 (언리얼 엔진)' 카테고리의 다른 글
UE4 게임 개발 EscapeGame - 22 : 피드백 (0) | 2020.12.29 |
---|---|
UE4 게임 개발 EscapeGame - 21 : 패키징 (0) | 2020.12.29 |
UE4 게임 개발 EscapeGame - 19 : SaveGame (0) | 2020.12.27 |
UE4 게임 개발 EscapeGame - 18 : 각종 수정 사항 (0) | 2020.12.27 |
UE4 게임 개발 EscapeGame - 17 : 인벤토리 (0) | 2020.12.27 |