CG 차가 너무 빨라 보일 때: km/h를 프레임당 거리로
CG 차가 너무 빨라 보이거나 느리게 보이면, 애니메이션 속도는 감으로 키프레임을 옮기기보다 km/h를 프레임당 거리로 바꿔 확인하세요. 두 키의 실제 프레임 간격을 곱하면 끝 위치를 정할 수 있습니다. 이어서 이동 축 보간, 씬 단위, 부모 변환, 카메라 움직임을 순서대로 확인합니다. 이 계산은 정해진 프레임레이트에서 직선으로 일정하게 움직이는 물체의 위치를 맞춥니다. 화면상 픽셀 속도나 자동차의 자연스러운 느낌까지 보장하지는 않습니다.
애니메이션 속도는 이동량으로 먼저 판단합니다
자동차 애니메이션에서 생기는 문제는 서로 다른 숫자를 같은 것으로 읽을 때가 많습니다. 60km/h는 현실에서 1시간에 60km를 간다는 뜻입니다. Blender의 Location X에 넣는 60은 속도가 아니라 좌표값입니다. frame 25에 끝 키를 찍었다고 해서 반드시 25프레임 동안 이동한 것도 아닙니다.
작업을 시작할 때 세 가지를 따로 적으세요. 첫째는 차량이 움직여야 할 물리적 속도(km/h), 둘째는 1초를 구성하는 실제 프레임 수, 셋째는 Blender 좌표 1칸이 몇 m를 뜻하는지입니다. 이 중 하나가 모호하면 키가 정확하게 찍혀도 최종 이동량은 달라집니다. 특히 기존 씬을 넘겨받았다면 프레임레이트와 단위를 임의로 추측하지 마세요.
km/h를 프레임당 거리로 바꾸는 방법
km/h는 한 시간 동안의 거리이고 키프레임 간격은 프레임 수로 셉니다. 따라서 먼저 km를 m로, 시간을 초로 바꾼 다음 한 프레임의 거리를 구합니다.
m/s = km/h × 1000 ÷ 3600
m/frame = m/s ÷ 유효 fps
예를 들어 60km/h는 초당 약 16.6667m입니다. 유효 프레임레이트가 24fps라면 16.6667을 24로 나눕니다. 결과는 0.694444m/frame = 69.4444cm/frame입니다. 재생되는 매 프레임의 위치가 같은 방향으로 약 69.44cm씩 달라져야 한다는 뜻입니다. 자로 바닥을 따라 일정한 간격으로 표시하는 것과 비슷합니다. 다만 그 표시는 물체의 공간 위치 차이이지, 카메라 화면에서 몇 픽셀 움직인다는 뜻이 아닙니다.
시작 프레임과 끝 프레임은 ‘개수’가 아니라 ‘간격’입니다
두 키의 거리를 구할 때 가장 중요한 식은 다음과 같습니다.
ΔF = 끝 프레임 − 시작 프레임
총 거리 = m/frame × ΔF
끝 위치 = 시작 위치 ± 총 거리
frame 1에서 출발해 frame 25에 도착한다면 경과 간격은 25 − 1 = 24프레임입니다. 화면에 보이는 프레임 번호 1, 2, …, 25를 양끝 포함해 세면 25개지만, 그 사이에 생긴 시간 간격은 24개입니다. 60km/h·24fps의 경우 총 이동거리는 0.694444… × 24 = 16.6667m입니다. 프레임 번호를 양끝 포함해 세어 25로 나누거나, 프레임당 거리에 25를 곱하지 마세요.
1 scene unit=1m라면 시작 X가 0인 차량의 끝 X는 +16.6667입니다. 반대 방향이면 −16.6667입니다. X=10에서 출발한 차량은 각각 26.6667과 −6.6667에 도착합니다. ± 기호는 이동축의 방향을 나타냅니다. 계산 전 어느 축을 기준으로 삼을지 먼저 정하세요.
24·30·60fps에서 숫자가 다른 이유
같은 60km/h라도 한 초를 몇 프레임으로 나누느냐에 따라 프레임당 거리가 달라집니다. 줄을 잘게 나누면 한 구간이 짧아지는 것과 같습니다. 실제 초당 속도는 같습니다.
| 유효 프레임레이트 | 60km/h 프레임당 이동거리 | cm/frame |
|---|---|---|
| 24fps | 0.694444m/frame | 69.4444cm |
| 30fps | 0.555556m/frame | 55.5556cm |
| 60fps | 0.277778m/frame | 27.7778cm |
24fps의 좌표 증가량을 60fps에 그대로 쓰면 초당 이동거리가 달라집니다. 프로젝트를 옮길 때는 키 사이 프레임 간격도 확인하세요. 표의 값은 fps가 정확히 24, 30, 60인 조건입니다.
Blender 5.0의 Output Properties > Format > Frame Rate에서 FPS와 Base를 확인하세요. 유효 fps = FPS / Base입니다. FPS가 30이라도 Base를 무시하면 실제 설정과 달라질 수 있습니다. 30000/1001처럼 분수로 표현되는 경우에는 이를 계산한 유효 fps를 사용하세요. 뷰포트에서 재생이 끊기는 것과 출력 설정의 프레임레이트는 구별해야 합니다.
Blender 좌표 1칸이 실제 몇 m인지 정하세요
씬 스케일은 큰 오차를 만듭니다. 1 scene unit=1m라면 16.6667m는 좌표 차이 16.6667입니다. 1 scene unit=0.01m(1cm)인 씬에서는 같은 이동이 1666.67 scene unit입니다. 이 숫자를 잘못 옮기면 거리부터 100배 달라집니다.
scene unit은 좌표 1을 현실의 얼마로 볼지 정한 약속입니다. 거리(m) ÷ 단위당 m = scene unit 거리로 계산하세요. 60km/h·24fps일 때 프레임당 이동은 1unit=1m라면 0.694444unit, 1unit=0.01m라면 69.4444unit입니다. 표시 단위를 바꾸는 일과 물체 좌표를 바꾸는 일은 구별해야 합니다.
Blender 5.0의 Scene Properties > Units > Unit Scale은 내부 좌표와 UI 표시 단위를 환산하는 설정입니다. 값을 바꿨다고 기존 좌표나 애니메이션 이동량이 알아서 목표 속도로 보정되지는 않습니다. 화면에 m 또는 cm가 보이더라도 팀에서 약속한 씬 매핑과 모델의 실제 크기를 확인하세요. 이미 키가 있는 씬에서는 좌표값도 따로 검토해야 합니다.
계산기로 끝 위치를 구한 뒤 키프레임에 넣으세요
아래 계산기는 속도를 프레임 간격과 좌표로 옮기는 용도입니다. 속도(km/h), 유효 fps, 시작 프레임과 끝 프레임, 시작 좌표, 1 scene unit이 몇 m인지, 이동 부호(+/−)를 입력하세요. 결과에서는 프레임당 이동거리(m·cm·scene unit), 전체 이동거리, 끝 위치를 확인합니다. 물리적 이동거리가 먼저 나오고, 그 값이 작업 씬 좌표로 어떻게 바뀌는지가 뒤따라야 합니다.
직선 이동 거리 계산기
유효 fps와 두 키의 프레임 번호를 넣으세요. 1 scene unit이 몇 m인지 정하면 씬 좌표의 끝 위치까지 계산합니다.
키 사이 간격: 24 frames
프레임당 이동: 0.694444 m (69.4444 cm)
0.694444 scene unit
전체 이동거리: 16.6667 m (1666.67 cm)
끝 위치: 16.6667 scene unit
16.6667 m from origin (signed)
이 계산은 일정한 직선 이동의 축 좌표를 구합니다. 곡선 경로, 가속·감속, 부모 스케일, 카메라 투영은 별도로 확인하세요.
예를 들어 60km/h, 24fps, frame 1→25, 시작 X=0, 1unit=1m, 양의 방향을 입력하면 프레임당 0.694444m, 전체 16.6667m, 끝 X=16.6667unit이 나와야 합니다. X=10에서 시작하면 끝 X는 26.6667이고, 음의 방향이면 거리를 빼야 합니다. 계산 결과를 옮긴 뒤에는 키 사이 보간과 부모 영향을 따로 확인하세요.
Blender 5.0에서 일정한 직선 이동 키를 만드는 순서
frame 1로 이동하여 X=0을 입력하고 Location X에 키를 넣으세요. frame 25로 이동해 X=16.6667을 넣고 다시 같은 속성에 키를 기록하세요. 값이 m 기준인지 scene unit 기준인지 확인하지 않고 입력하지 마세요. 1unit=0.01m 씬이라면 끝 X는 16.6667이 아니라 약 1666.67이 됩니다. 다른 시작 좌표를 쓰고 있다면 계산한 총 거리를 그 좌표에 더하거나 빼야 합니다.
다음으로 Graph Editor에서 Location X의 F-Curve를 찾으세요. F-Curve는 시간에 따른 위치 변화가 그려진 선입니다. 키 두 개를 선택하고 해당 구간의 Interpolation Mode를 Linear로 바꾸세요. 그러면 키 사이 위치가 프레임에 비례해 변합니다. 선택한 채널과 구간만 바뀌므로 다른 축이나 다른 구간도 필요하면 점검하세요.
기본적인 곡선형 보간인 Bézier에서는 양 끝의 좌표가 정확해도 핸들 모양에 따라 중간에서 천천히 출발하거나 빨라졌다가 느려질 수 있습니다. 두 키 사이의 평균 속도는 60km/h에 해당해도 매 프레임의 이동거리는 일정하지 않게 됩니다. 차량이 출발과 정지 없이 일정하게 통과하는 컷이라면 두 키를 잇는 선이 직선인지 먼저 보세요. 반대로 의도적으로 가속하거나 감속하는 샷에 Linear를 기계적으로 적용하면 움직임 의도를 망칠 수 있습니다.
프레임 세 지점을 찍어 계산을 검증하세요
키를 입력한 뒤 재생 버튼만 눌러 확인하지 마세요. frame 1, 13, 25에서 X 위치를 직접 읽어 보세요. 1unit=1m이고 부모 영향이 없으며 Linear인 예시라면 X는 각각 0, 약 8.333333, 약 16.666667이어야 합니다. frame 13은 시작에서 12프레임 지난 중간 지점입니다. 처음부터 중간까지의 이동거리와 중간부터 끝까지의 이동거리가 같은지도 살펴보세요.
정확히 같은 속도로 움직이는지 더 꼼꼼히 보려면 연속한 두 프레임의 위치 차이도 확인하세요. 예를 들어 frame 13과 14의 X 차이는 약 0.694444unit이어야 합니다. 두 키의 총 거리가 맞아도 frame 13 부근에서 이동량이 작고 다른 곳에서 크다면 보간을 의심해야 합니다. 반면 중간 간격은 정확한데 최종 샷에서 움직임이 다르게 느껴진다면 월드 변환과 카메라를 확인할 차례입니다.
중간 점검에서도 속도는 프레임당 거리로 확인합니다. 좌표가 맞는 문제와 화면에 보이는 속도 인상은 따로 판단해야 합니다.
좌표가 맞는데 실제 이동이 다르면 부모를 보세요
차량 메시는 보통 여러 오브젝트가 묶인 구조 안에 있습니다. 자식 오브젝트의 Location은 부모를 기준으로 한 로컬 좌표일 수 있습니다. 부모의 위치·회전·Scale은 자식의 월드 위치에 영향을 줄 수 있으므로, 로컬 X가 16.6667 늘었다는 사실만으로 월드 공간에서 16.6667m 이동했다고 말할 수 없습니다. 특히 Parent Inverse가 적용된 구조에서는 로컬 값만 보고 변환 결과를 단순히 예상하기 어렵습니다.
Blender 5.0.0을 배경 실행(-b)으로 재현한 한 조건에서는 부모의 균일 Scale을 0.01로 두고 Parent Inverse는 항등 상태로 놓았습니다. 자식의 로컬 X를 frame 1의 0에서 frame 25의 16.6667까지 Linear로 움직였을 때, 월드 X는 0에서 약 0.166667까지만 바뀌었습니다. frame 13에서도 로컬 X는 약 8.333333, 월드 X는 약 0.0833333이었습니다. 이 값은 부모 Scale이 월드 이동을 바꿀 수 있다는 제한된 예시입니다. 다른 부모 회전이나 비균일 스케일, Parent Inverse까지 모두 같은 비율로 작용한다는 뜻은 아닙니다.
실제 리그에서는 같은 프레임의 로컬 Location과 평가된 월드 위치를 대조하세요. 부모 Scale과 Parent Inverse를 확인하고, 어떤 계층의 변환이 영향을 주는지 살펴보세요. 부모 없는 테스트 물체는 맞는데 차량만 틀리면 키를 다시 찍기 전에 계층부터 점검하세요. 완성된 리그의 부모를 섣불리 제거하면 다른 애니메이션도 달라질 수 있습니다.
월드 속도가 맞다면 카메라를 따로 진단하세요
도로 옆에 서서 지나가는 차를 볼 때와 나란히 달리는 차 안에서 옆 차를 볼 때, 같은 차의 속도 인상은 다릅니다. 자동차의 월드 속도와 카메라가 함께 움직이는 속도를 구분해야 하는 이유입니다. 동일 축에서 같은 방향으로 직선 이동할 때의 단순 상대속도는 v_rel = v_object − v_camera로 볼 수 있습니다. 예를 들어 물체가 60km/h, 카메라가 같은 방향으로 50km/h 이동한다면 그 축의 상대 병진 속도는 10km/h입니다. 둘 다 같은 방향으로 60km/h라면 해당 축 상대 병진은 0이 됩니다.
하지만 이 10km/h를 다시 m/frame으로 바꾼다고 화면에서 움직이는 픽셀 수가 바로 나오지는 않습니다. 원근 투영에서는 물체와 카메라 사이 거리, 초점거리, 카메라 회전 등에 따라 같은 공간 이동도 화면에서 다르게 나타납니다. 카메라가 차량을 따라갈 때 배경 움직임까지 포함해 느끼는 속도 역시 하나의 좌표 차이와 같지 않습니다. 위 식은 같은 축의 병진 이동을 분리하는 진단식일 뿐, 샷의 화면상 속도를 정확히 예측하는 식은 아닙니다.
실무에서는 먼저 월드 좌표 이동량을 구하고, 카메라가 어떤 방향으로 얼마나 이동하는지 별도로 살펴보세요. 물체의 월드 이동량이 맞다면 화면에서 느리게 보인다는 이유만으로 끝 키를 멀리 옮기지 마세요. 그 경우 물리적 공간 속도를 오히려 틀리게 할 수 있습니다.
자주 생기는 오진을 빠르게 가르는 법
단위가 100배 다른 경우. 1unit=0.01m인 씬에 1unit=1m용 좌표를 넣으면 차는 목표 거리의 1/100만 이동합니다. 반대로 센티미터 기준 숫자를 미터 기준 씬에 그대로 사용하면 100배 멀리 갑니다. Unit Scale 표시만 바꿔 이 차이가 해결됐다고 보지 말고, 실제 좌표 차이와 물리 거리의 대응을 계산하세요.
프레임을 하나 더 센 경우. frame 1→25를 25간격으로 계산하면 60km/h·24fps에서 약 17.3611m를 입력하게 됩니다. 올바른 거리는 약 16.6667m이고, 차이는 약 0.694444m로 정확히 한 프레임분입니다. 이런 오차가 보이면 먼저 끝−시작을 다시 구하세요.
Bézier를 그대로 둔 경우. 처음과 끝의 위치가 일치해도 시작 직후 변화가 작고 중간에서 커질 수 있습니다. 이런 증상을 속도 환산 오류로 취급하지 말고 Graph Editor에서 해당 Location 축의 보간을 확인하세요.
부모 Scale이 들어간 경우. 로컬 좌표는 정확하지만 월드에서 움직인 거리가 작거나 방향이 예상과 다를 수 있습니다. 부모 변환 및 Parent Inverse를 검토하고 로컬/월드 위치를 같은 프레임에서 대조하세요.
카메라가 차를 따라가는 경우. 월드 공간 이동량이 맞아도 화면에서 차가 거의 움직이지 않는 것처럼 보일 수 있습니다. 이때는 물체의 키를 먼저 고치기보다 카메라 이동을 분리해 확인하세요. 화면 픽셀 이동량은 여기의 직선 거리 식만으로 판단할 수 없습니다.
최종 확인은 1→2→3 순서로 하세요
숫자 확인: km/h, 유효 FPS/Base, 끝−시작 프레임 간격, 1 scene unit의 m 값을 기록하세요. 프레임당 거리와 전체 이동거리를 계산해 끝 좌표와 대조하세요. 다르면 입력부터 수정하세요.
키와 좌표 확인: 이동 축의 F-Curve를 Linear로 맞추고 시작·중간·끝 프레임을 읽으세요. 로컬 값만 맞으면 부모 Scale과 Parent Inverse를 조사하세요. 중간 프레임 차이가 불균일하면 보간을 확인하세요.
샷 판단: 월드 이동량까지 맞으면 카메라 방향과 속도를 비교하세요. 같은 방향 추적으로 화면에서 느리게 보일 수 있습니다. 공간 속도를 고칠지 연출을 조정할지 구분해 기록하세요.
이 검증을 통과했다는 것은 정해진 fps와 씬 단위에서, 한 축의 두 키 사이 직선 이동량과 보간이 목표에 맞는다는 뜻입니다. 카메라가 달라도 똑같이 보이거나 모든 움직임이 물리적으로 완성됐다는 뜻은 아닙니다. 곡선 경로, 가속·감속, 회전, 물리 시뮬레이션은 별도 검증이 필요합니다. 자동차 바퀴 회전과 역회전처럼 보이는 현상은 관련 글에서 확인하세요.
Blender 5.0 공식 매뉴얼에서 FPS/Base, 씬 단위, 키프레임 보간과 부모 변환의 설명을 확인할 수 있습니다.
속도는 프레임당 거리로 확인합니다.
vfx 잡학지식

댓글 0
첫 댓글을 남겨보세요.