게임 개발 (언리얼 엔진)

UE4 게임 개발 EscapeGame - 10 : 카메라 페이드

종황이 2020. 12. 13. 16:20

카메라 페이드라는 기능을 사용해봤습니다.

이런 사소한 부분들이 게임다워지는데 도움을 많이 주는것같습니다.

// PlayerCameraManager.cpp

void APlayerCameraManager::StartCameraFade(float FromAlpha, float ToAlpha, float InFadeTime, FLinearColor InFadeColor, bool bInFadeAudio, bool bInHoldWhenFinished)
{
	bEnableFading = true;

	FadeColor = InFadeColor;
	FadeAlpha = FVector2D(FromAlpha, ToAlpha);
	FadeTime = InFadeTime;
	FadeTimeRemaining = InFadeTime;
	bFadeAudio = bInFadeAudio;

	bAutoAnimateFade = true;
	bHoldFadeWhenFinished = bInHoldWhenFinished;
}

APlayerController 의 PlayerCameraManager.cpp 에 있는 StarStartCameraFade 함수를 보면, 내가 원하는대로 카메라페이드를 구현할 수 있습니다.

저는 레벨에 플레이어가 스폰되었을 때와 죽었을 때, 카메라 페이드를 적용시켜봤습니다.

// MainGameMode.cpp

AMyPlayerController* pController = Cast<AMyPlayerController>(GetWorld()->GetFirstPlayerController());
	FLinearColor Color(0.f,0.f,0.f,0.f);

	if (IsValid(pController))
	{
		pController->PlayerCameraManager->StartCameraFade(1.f, 0.f, 3.f, Color, true, false);
	}
    
// MyPlayerCharacter.cpp

AMyPlayerController* pController = Cast<AMyPlayerController>(GetWorld()->GetFirstPlayerController());
	FLinearColor Color(0.f, 0.f, 0.f, 0.f);

	if (IsValid(pController))
	{
		pController->PlayerCameraManager->StartCameraFade(0.f, 1.f, 1.5f, Color, true, false);
	}

FLineColor는 (0,0,0)으로 검정색을 했고, 스폰되었을 때는 1에서 0, 죽었을 때는 0에서 1로 알파값을 알맞게 조절했습니다.