키프레임을 더 찍었는데 움직임이 더 끊긴다 — 키 개수보다 먼저 볼 타이밍과 간격
키를 더 찍을수록 끊긴다면, 키 개수가 아니라 프레임별 간격과 탄젠트를 봐야 합니다.
캐릭터의 손이 목표물까지 매끄럽게 뻗지 않습니다. 중간에서 잠깐 멈칫하거나, 거의 다 간 뒤 갑자기 달라붙어요. 그래서 끊기는 구간마다 키를 하나씩 추가했는데 이번에는 속도가 잘게 출렁입니다. 타임라인에는 키가 촘촘한데 화면에서는 오히려 애니메이션 뚝뚝 끊김이 더 선명해진 거죠.
이런 키프레임 움직임 끊김은 포즈가 부족해서 생긴다고 느끼기 쉽습니다. 하지만 포즈와 포즈 사이를 어떻게 지나가는지가 문제라면, 중간 포즈를 늘리는 행동은 해답이 아니라 새로운 변속 지점을 추가하는 일이 됩니다.
중간 키는 빈칸을 메우지만 속도까지 고르게 만들지는 않습니다
키프레임은 “이 프레임에서 이 값이어야 한다”는 표식입니다. 키와 키 사이의 모든 값은 프로그램이 보간합니다. 따라서 키를 하나 더 찍으면 기존 움직임을 정교하게 나누는 것이 아니라, 하나였던 보간 구간을 둘로 쪼개고 각 구간의 속도 변화를 다시 계산하게 합니다.
새 키가 정확히 기존 곡선 위에 놓인다면 겉모습이 유지될 수 있습니다. 문제는 포즈를 눈으로 조금 고치거나 키의 프레임 위치를 옮기는 순간입니다. 앞 구간은 3프레임 동안 조금 움직이고, 뒤 구간은 2프레임 동안 많이 움직일 수 있어요. 자동 탄젠트도 양옆 키를 보고 다시 기울기를 정합니다. 키프레임 많으면 끊김이 생기는 이유는 키 자체가 많아서가 아니라, 키가 늘 때마다 시간 간격과 곡선 기울기가 함께 잘게 흔들리기 때문입니다.
키를 추가하면 하나의 움직임이 여러 보간 구간으로 갈라지고, 각 구간의 속도가 따로 변할 수 있습니다.
타이밍과 간격과 탄젠트는 같은 문제가 아닙니다
먼저 세 가지를 분리해야 합니다. 타이밍은 주요 포즈가 몇 프레임에 놓였는가입니다. 간격은 같은 한 프레임마다 물체가 화면에서 얼마나 이동했는가입니다. 보간과 탄젠트는 두 키 사이의 값이 어떤 곡선을 따라 변하는가입니다.
예를 들어 손이 10프레임에 출발해 20프레임에 도착한다면 10프레임이라는 타이밍은 같아도, 처음 8프레임을 거의 움직이지 않고 마지막 2프레임에 몰아서 이동할 수 있습니다. 이때 도착 프레임만 옮겨서는 멈칫이 사라지지 않습니다. 반대로 프레임별 간격이 고른데도 방향이 한 키에서 꺾인다면, 시간보다 탄젠트나 서로 다른 축의 곡선을 봐야 합니다.
Stepped 또는 Constant 보간은 이전 키의 값을 유지하다 다음 키에서 한 번에 바꿉니다. 블로킹에는 유용하지만 최종 움직임에서는 의도적인 점프가 됩니다. Linear는 값이 직선으로 변하므로 속도 문제를 드러내는 좋은 기준선입니다. Spline이나 Bezier는 키를 부드럽게 통과시키지만, 부드러운 곡선이 곧 좋은 간격을 뜻하지는 않습니다. 자동 핸들이 키 사이에서 오버슈트를 만들면 키에 찍지 않은 값까지 지나갈 수도 있어요.
키의 프레임, 화면 속 이동 거리, 곡선의 기울기는 서로 연결되지만 같은 항목은 아닙니다.
30초 동안 한 구간만 보면 범인을 가를 수 있습니다
끊겨 보이는 구간의 앞뒤 키 두세 개만 남겨 화면에 표시합니다. Maya는 Windows > Animation Editors > Graph Editor, Blender는 편집기 종류에서 Graph Editor, 3ds Max는 Graph Editors > Track View – Curve Editor를 엽니다. 위치나 회전 채널 하나를 골라 문제 구간이 보이도록 프레임을 맞춥니다.
첫째, 타임라인을 한 프레임씩 넘겨 물체의 위치를 봅니다. 거의 같은 자리에 두세 프레임 머문 뒤 갑자기 큰 거리를 이동한다면 간격 문제입니다. 둘째, 그래프 에디터 곡선에서 키가 한쪽에 몰렸거나 곡선 기울기가 키 앞뒤에서 급격히 달라지는지 봅니다. 셋째, 의심 구간을 잠시 Linear로 바꿉니다. 끊김이 사라지면 탄젠트와 보간이 원인이고, 그대로면 키의 시간·값 또는 다른 채널의 움직임을 봐야 합니다.
곡선이 수평으로 유지되다가 키에서 수직에 가깝게 뛰면 Stepped 또는 Constant인지 확인합니다. 반대로 곡선은 매끈한데 화면의 경로가 꺾인다면 X·Y·Z 가운데 하나만 보지 마세요. 세 축의 값이 합쳐진 실제 위치를 프레임별로 확인해야 합니다. 각 축이 부드러워도 서로 다른 시점에 가속하면 공간 경로는 흔들릴 수 있습니다.
키를 지우고 기준선을 만든 뒤 필요한 완급만 되돌립니다
1. 먼저 원본을 복사합니다. 애니메이션 레이어나 파일 버전을 하나 남겨 두세요. 지금부터는 중간 키를 줄이므로, 원래 포즈와 비교할 기준이 필요합니다.
2. 의미가 있는 키만 남깁니다. 출발, 방향 전환, 접촉, 최대점, 도착처럼 행동을 정의하는 키는 유지합니다. 단지 울컥거림을 눌러 보려고 찍은 중간 키는 한 개씩 지워 재생합니다. 삭제했는데 실루엣과 접촉이 유지되면서 더 매끄러워졌다면 그 키는 정보를 더한 것이 아니라 곡선을 방해한 겁니다.
3. 타이밍을 먼저 고정합니다. 시작과 도착이 너무 가깝다면 키를 늘릴 게 아니라 도착 키를 뒤로 보냅니다. 의도한 정지가 필요하면 같은 값의 키를 무작정 겹쳐 세우지 말고, 정지가 시작되는 프레임과 끝나는 프레임을 명확히 둡니다. 이 단계에서는 빠르기와 멈추는 순간만 판단합니다.
4. Linear를 기준으로 재생합니다. Maya에서는 키를 선택하고 Graph Editor의 Tangents > Linear를 사용합니다. Blender에서는 Key > Interpolation Mode 또는 T 키에서 Linear를 고릅니다. 3ds Max에서는 Curve Editor 툴바의 선형 탄젠트 버튼으로 선택한 키를 바꿉니다. Linear가 최종 답이라는 뜻은 아닙니다. 키의 시간과 값만으로도 기본 속도가 성립하는지 확인하는 임시 기준선이에요.
5. 필요한 곳에만 완급을 넣습니다. Maya에서는 Spline이나 Auto 계열을 적용한 뒤 핸들이 오버슈트하지 않는지 확인합니다. Blender에서는 Bezier로 바꾸고, 자동 핸들이 키 사이의 최댓값을 넘는다면 Key > Handle Type 또는 V 키에서 Auto Clamped를 시험합니다. 3ds Max에서는 Curve Editor의 Smooth 계열 탄젠트로 바꾼 뒤 키 앞뒤 기울기를 봅니다. 움직임 부드럽게 만들기의 핵심은 모든 키를 둥글게 만드는 것이 아니라, 멈출 곳과 통과할 곳의 기울기를 다르게 주는 데 있습니다.
6. 마지막에는 곡선이 아니라 화면을 봅니다. 한 프레임씩 넘기며 손끝이나 물체 모서리처럼 기준점 하나를 추적하세요. 프레임별 간격이 작은 거리에서 큰 거리로 점진적으로 변하면 가속이 이어집니다. 작은 거리와 큰 거리가 번갈아 나오면 아직 키의 시간이나 값이 흔들리는 겁니다.
삭제 → 타이밍 → 선형 검증 → 완급 순서로 고치면 어느 단계에서 끊김이 생겼는지 놓치지 않습니다.
곡선을 고쳐도 끊긴다면 다른 시간을 보고 있을 수 있습니다
뷰포트 재생 성능이 낮으면 실제 애니메이션이 아니라 표시 프레임이 빠져 끊겨 보일 수 있습니다. 간단한 프리뷰나 렌더 결과에서도 같은 프레임이 튀는지 확인하세요. 프리뷰는 매끄럽다면 키프레임 문제가 아니라 실시간 재생 문제입니다.
회전값이 갑자기 크게 뛰는 경우도 별개입니다. 같은 방향을 나타내는 각도 표현이 프레임 사이에서 바뀌면 물체가 한 바퀴 돌아간 듯 튈 수 있습니다. Maya에서는 Graph Editor의 Curves > Euler Filter가 이런 회전 불연속을 점검할 때 쓰입니다. 다만 접촉이 어긋나거나 컨트롤러가 순간 이동한다면 제약 전환, 부모 공간 변경, 리그 계산 순서도 함께 봐야 합니다.
이 글의 문제는 키 사이에서 계산된 움직임이 기대와 달라지는 현상입니다. 카메라 솔브는 맞아 보여도 프레임 사이에서 CG가 미끄러지는 경우는 숫자만으로 판단하기 어려운 카메라 솔브, 빠른 물체가 충돌 계산 사이를 건너뛰는 경우는 서브스텝이 필요한 이유에서 이어집니다. 분야는 달라도 “키가 있는 순간”보다 “그 사이에 무슨 일이 생겼는가”를 봐야 한다는 점은 같습니다.
한 줄 정리
끊기는 구간에 키를 더 찍기 전에 프레임별 간격을 보고, 불필요한 키를 줄인 뒤 Linear로 타이밍을 검증하고 필요한 탄젠트만 되돌리세요.
vfx 잡학지식



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