본문 바로가기
Unreal 게임 개발/Unreal C++ 공부

Unreal DeltaTime

by daisy0461 2023. 1. 15.

DeltaTime이란 글자를 Tick에서 발견할 수 있다.

이 DeltaTime이란 것은 프레임 사이 사이 시간을 나타내는 것이다.

즉, 한 프레임에서 다음 프레임까지 얼마나 걸렸는지를 담고 있다는 것이다.

 

이 DeltaTime이 왜 필요한지 가장 잘 보이는 예시로 설명을 해보면

Actor의 움직임이 있다.

코드를 다음과 같이 작성을 하면 Actor의 위치가 1프레임마다 World X방향으로 1씩 이동하며 Sphere를 그리게 된다.

1프레임마다라는 말이 중요하다.

120FPS일 때의 Sphere 속도

GameView 우측을 보면 FPS(Frames Per Second)가 나와있는 것을 알 수 있다.

FPS란 1초에 몇 프레임이 재생되는가를 나타내는 지표이다.

그리고 아래에는 30FPS일 때의 속도이다.

30FPS일 때의 Sphere 속도

두 동영상을 비교하면 30FPS가 훨씬 느린것을 확인할 수 있다.

 

이 말은 즉, FPS에 따라 Actor의 속도가 다르다는 것을 나타내고 이것은 게임을 제작하고 배포하였을 때

컴퓨터의 성능에 따라 Actor의 속도가 달라진다는 것을 의미한다.

이러한 증상을 막기위해 다음과 같이 코딩을 하면 FPS와 관계없이 속도가 동일해진다.

위 코드를 보면 ActorMove라는 변수에 DeltaTime을 곱해줬을 뿐이다.

FPS가 클수록 DeltaTime의 값은 작고 FPS가 작을 수록 DeltaTime은 커진다.

그러므로 FPS의 값에 상관없이 동일하게 1초에 50.f만큼 이동한다.