[UE4] 시간 흐름 감/가속

박지인·2021년 4월 26일
0

Unreal Engine 4

목록 보기
1/3

공부하면서 적은 내용들이라 틀렸을 가능성이 농후하니 참고만 해주시고, 틀린 부분을 지적해주시면 정말로 감사하겠습니다.

Time Dilation을 설정하면 게임의 시간이 흐르는 속도를 제어할 수 있다.
기본값은 1.f이며, 2배 느리게는 0.5f, 2배 빠르게는 2.f, 완전한 정지는 0.f로 설정하면 된다.

음수로 설정 시 Global의 경우 Player Character 이동을 시도할 경우 화면이 흔들리고, Custom의 경우 해당 Actor의 Global Location은 정지하지만 Animation은 정지하지 않는 등, 비정상적인 작동을 보인다. 해당 변수가 DeltaTime에 영향을 주는 만큼 왠만하면 음수로 설정하지 않는 것이 좋아보인다.

Global Time Dilation

게임 전체의 진행 시간을 느리게 하거나 빠르게 하고 싶은 경우에는 Global Time Dilation을 설정하여 시간이 흐르는 속도를 조절할 수 있다.

Blueprint

C++

GetWorldSettings()->SetTimeDilation(0.f);

Custom Time Dilation

게임 전체가 아닌 개별적인 Actor의 시간 흐음만을 제어하고 싶을 경우는 Custom Time Dilation을 설정해야 한다.
Custom Time Dilation에 대한 언리얼 엔진의 설명은 다음과 같다.

	/** Allow each actor to run at a different time speed. The DeltaTime for a frame is multiplied by the global TimeDilation (in WorldSettings) and this CustomTimeDilation for this actor's tick.  */
	UPROPERTY(BlueprintReadWrite, AdvancedDisplay, Category=Actor)
	float CustomTimeDilation;

최종적으로 global TimeDilation과 Custom Time Dilation의 곱이 해당 Actor의 시간이 흐르는 속도가 된다.

Blueprint


Context Sensitive의 체크를 해제해야 해당 변수가 검색될 것이다.

C++

CustomTimeDilation = 0.f;

주의사항

위에서도 언급했듯 해당 변수는 DeltaTime에 곱해져 적용된다. DeltaTime의 영향을 받는 다른 기능들에 영향을 줌을 주의해야 한다.

0개의 댓글