Blender 의자 회전 자연스럽게 만들기: Graph Editor·보간법 — 입문 22강

22강에서는 의자가 0°에서 110°까지 회전한 뒤 멈추는 애니메이션을 만듭니다. 같은 세 개의 키프레임을 사용하면서 Linear와 Bezier 보간을 바꿔 보고, Graph Editor의 직선과 S자 곡선이 실제 움직임의 속도를 어떻게 바꾸는지 확인합니다. 마지막에는 Auto Clamped 핸들로 목표 각도를 지나쳤다가 되돌아오는 튐도 막습니다.

직접 제작·검증 안내
이 강좌는 Mac mini M2 Pro와 macOS Sonoma 환경의 Blender 5.2.0에서 운영자가 직접 실습하고 화면을 캡처해 작성했습니다. AI는 학습 순서, 설명 구성과 화면 표시 편집을 보조했으며, 입력값과 결과는 공개 전에 다시 확인했습니다. 전체 과정은 Blender 초급 24강 목차에서 순서대로 볼 수 있습니다.

비교 이미지는 똑같은 13프레임입니다. Linear 의자는 이미 26.94° 돌아갔고, Bezier 의자는 16.56°만 움직였습니다. 시작과 끝 각도는 같아도 중간 위치가 다른 이유는 보간 곡선이 속도를 다르게 계산하기 때문입니다. 이번 강의가 끝나면 “직선은 일정한 속도, 완만한 곡선은 느린 속도, 가파른 곡선은 빠른 속도”라는 기준을 화면에서 읽을 수 있게 됩니다.

시작 전에 21강 파일을 안전하게 복사하기

21강에서 서랍 키프레임을 만든 파일을 열고 File → Save As를 누릅니다. 이름을 blender-lesson-22-chair-bezier.blend로 바꾸어 저장하세요. 21강 원본은 그대로 남겨 두어야 서랍 애니메이션을 잃지 않습니다.

이번 강의에서는 의자의 속도 차이만 보기 위해 서랍을 닫힌 상태로 고정합니다. Outliner에서 Nightstand_Drawer를 선택하고 1프레임으로 이동한 뒤 Object → Animation → Clear Animation Data를 누릅니다. 이것은 현재 22강 사본에서만 실행합니다. 서랍 Location Y가 -0.705m인지 확인하고 Ctrl+S로 저장하세요.

선택 대상 주의
의자 좌판이나 다리 Mesh가 아니라 Chair_Group Empty를 움직여야 합니다. 부모 Empty를 회전시키면 좌판·등받이·다리가 한꺼번에 움직이고 의자의 중심도 유지됩니다.

오늘 만들 키 세 개를 먼저 이해하기

Frame Rate와 범위는 21강과 같은 24 fps, Start 1, End 80을 사용합니다. 의자는 1프레임에서 0°, 50프레임에서 110°가 되고, 80프레임에도 110°를 유지합니다.

프레임Rotation Z화면에서 일어날 일
1정면에서 출발
50110°회전을 마치고 정지 시작
80110°같은 각도를 유지하며 멈춤

50과 80에 같은 값을 넣는 이유는 “여기서부터 움직이지 않는다”는 구간을 눈으로 확인하기 위해서입니다. 키가 50에서 끝나도 기본 Extrapolation에서는 마지막 값을 유지하지만, 80에 같은 키를 하나 더 넣으면 Graph Editor에서 수평선이 나타나 정지 구간이 훨씬 분명해집니다.

1프레임에 의자의 시작 각도 저장하기

Outliner에서 Chair_Group을 선택합니다. Timeline의 현재 프레임 입력칸에 1을 입력하고 Enter를 누릅니다. N을 눌러 Item → Transform을 열고 Rotation Z에 를 입력합니다.

  1. 선택 이름이 Chair_Group인지 확인합니다.
  2. 현재 프레임이 1인지 확인합니다.
  3. Rotation Z만 0°로 입력합니다.
  4. 마우스를 3D Viewport에 두고 I를 누릅니다.
  5. Insert Keyframe Menu에서 Rotation을 선택합니다.

Blender 1프레임 Chair Group Rotation Z 0도 키프레임 강조 화면
Chair_Group을 선택하고 1프레임에 Rotation Z 0° 저장

캡처에서 빨간 ①은 Chair_Group, 노란 ②는 Rotation Z 0°, 파란 ③은 키프레임 다이아몬드, 초록 ④는 현재 프레임 1입니다. 입력칸이 노란색이면 현재 프레임에 회전 키가 정상적으로 들어간 상태입니다.

50프레임에서 110° 회전시키기

Timeline 현재 프레임 칸에 50을 입력합니다. N 패널 Rotation Z를 110°로 바꾸고 Enter를 누릅니다. 의자 전체가 제자리에서 돌아야 합니다. 값만 바꾸고 끝내지 말고 3D Viewport에서 I → Rotation을 눌러 두 번째 키를 저장하세요.

Blender 50프레임 Chair Group Rotation Z 110도 키프레임 강조 화면
50프레임에서 의자를 110° 회전시키고 두 번째 회전 키 저장

의자가 책상이나 협탁과 겹쳐 보여도 먼저 키를 정확히 만든 뒤 각도를 조절합니다. 이번 파일의 배치에서는 110°가 동작을 알아보기 쉬운 기준값입니다. 가구 배치가 다르면 80°나 90°처럼 충돌하지 않는 값으로 바꿔도 되지만, 1·50·80의 관계는 유지하세요.

이어서 현재 프레임을 80으로 바꾸고 Rotation Z에 다시 110°를 입력한 뒤 I → Rotation을 누릅니다. 50과 80의 각도가 완전히 같아야 마지막 구간이 수평이 됩니다. 109.9°처럼 미세하게 다르면 눈으로는 멈춘 것 같아도 Graph Editor에는 약한 기울기가 남습니다.

Graph Editor를 열어 시간과 값을 곡선으로 보기

Timeline 왼쪽 끝의 Editor Type 아이콘을 클릭하고 Graph Editor를 선택합니다. 의자 부모가 선택된 상태에서 Home 키를 누르면 모든 키가 화면에 맞게 표시됩니다. 왼쪽 Channels에서 Chair_GroupAction을 펼치고 Z Euler Rotation을 클릭합니다.

Graph Editor의 가로축은 시간, 세로축은 Rotation Z 값입니다. 파란 Playhead를 오른쪽으로 옮기면 시간이 흐르고, 곡선이 위로 갈수록 회전 각도가 커집니다. Blender 공식 Graph Editor 설명에서도 F-Curve는 시간에 따라 속성값이 어떻게 바뀌는지를 나타내며, 키 사이 값은 보간으로 자동 계산된다고 설명합니다.

Linear로 일정한 속도의 회전 확인하기

Graph Editor에 마우스를 두고 A를 눌러 세 키를 모두 선택합니다. 이어서 T를 누르면 Set Keyframe Interpolation 메뉴가 열립니다. Linear를 선택하세요. 1에서 50까지 곡선이 곧은 대각선으로 바뀌고 50에서 80은 수평선이 됩니다.

Blender Graph Editor Linear 직선과 Interpolation Linear 위치를 강조한 화면
Linear 직선 구간은 의자가 일정한 속도로 회전

빨간 ①의 대각선은 프레임마다 같은 양만큼 회전하는 구간입니다. 노란 ② Interpolation이 Linear인지 확인하세요. 대각선 뒤의 수평선은 Rotation Z가 110°에서 더 바뀌지 않는 정지 구간입니다.

Spacebar로 재생하면 의자는 시작부터 바로 일정한 속도로 돌다가 50프레임에서 갑자기 멈춥니다. 기계 턴테이블처럼 일정하게 돌아야 하는 물체에는 Linear가 맞지만, 사람이 돌린 의자에는 출발과 정지가 다소 딱딱하게 느껴집니다.

비교 파일을 남기려면 File → Save As를 눌러 blender-lesson-22-chair-linear.blend로 저장합니다. 이 파일은 나중에 Bezier 결과와 나란히 비교할 때 사용합니다.

Bezier로 천천히 출발하고 부드럽게 멈추기

Graph Editor에서 A를 눌러 키 세 개를 모두 선택하고 T → Bezier를 선택합니다. 곧았던 대각선이 S자 곡선으로 바뀝니다. 다시 V를 누르고 Handle Type에서 Auto Clamped를 선택합니다.

Blender Graph Editor Bezier S자 곡선과 Auto Clamped 설정을 강조한 화면
Bezier S자 곡선과 Auto Clamped로 천천히 출발하고 자연스럽게 정지

파란 ① 곡선은 출발 부분이 완만하고 가운데가 가파르며 110° 가까이에서 다시 완만합니다. 노란 ②는 Interpolation: Bezier, 초록 ③은 양쪽 Handle Type: Auto Clamped입니다. Blender 공식 F-Curve 설명에 따르면 Linear는 값의 급격한 변화는 막지만 속도는 부드럽게 잇지 못하고, Bezier는 값과 속도를 모두 부드럽게 연결합니다. Auto Clamped는 자동 핸들이 목표값을 지나쳐 곡선 방향이 바뀌는 현상을 막는 데 유용합니다.

Spacebar로 다시 재생하세요. 이번에는 의자가 처음에 천천히 움직이고, 중간에서 빨라진 뒤 50프레임에 가까워질수록 속도를 줄이며 멈춥니다. 눈으로 차이가 약하게 느껴지면 Timeline에서 13프레임을 번갈아 확인하세요. 이 예제의 실제 결과는 Linear 26.94°, Bezier 16.56°입니다.

곡선 기울기를 속도로 읽는 가장 쉬운 방법

곡선 모양움직임이번 의자에서 보이는 결과
수평값이 바뀌지 않음110°에서 정지
완만한 기울기천천히 움직임출발·정지 직전
가파른 기울기빠르게 움직임회전 중간 구간

곡선의 높이가 속도는 아닙니다. 높이는 현재 각도이고, 기울기가 속도입니다. 110°의 높은 수평선은 빠르게 도는 장면이 아니라 110°에서 멈춘 장면입니다. 이 구분을 이해하면 Graph Editor가 복잡한 그래프가 아니라 움직임을 읽는 지도처럼 보이기 시작합니다.

완성된 세 장면 검산하기

Blender 의자가 1프레임 0도 25프레임 53.32도 50프레임 110도로 회전하는 비교
Bezier 회전의 시작·중간·정지 세 프레임

1프레임에서는 의자가 0°로 책상을 향하고, 25프레임에서는 53.32° 부근을 지나며, 50프레임에서는 110°에 도착합니다. 80프레임에서도 같은 방향을 유지해야 합니다. 이미지와 다른 방향으로 돌아도 키와 곡선이 정상이라면 여러분 방의 축 방향 차이일 수 있습니다. 중요한 것은 시작·회전·정지의 순서와 속도 변화입니다.

움직임이 이상할 때 확인할 순서

의자 한 부품만 회전한다

좌판이나 등받이 Mesh를 선택했습니다. Esc로 취소하고 Outliner에서 Chair_Group Empty를 선택하세요. G나 R을 살짝 눌렀을 때 의자 전체가 함께 움직이는지 확인한 뒤 키를 다시 넣습니다.

의자가 큰 원을 그리며 공전한다

Chair_Group의 원점이 의자 중심에 있지 않거나 잘못된 부모를 회전한 상태입니다. Ctrl+Z로 키 삽입 전으로 돌아가고 부모 Empty의 주황색 원점이 의자 중앙에 있는지 확인합니다. 10강에서 만든 의자 그룹을 그대로 사용했다면 Mesh의 Origin을 다시 바꾸지 마세요.

Graph Editor에 아무 곡선도 보이지 않는다

의자 부모를 다시 선택하고 Home을 누릅니다. 헤더의 깔때기 Filter에서 Only Show Selected가 켜져 있다면 선택하지 않은 오브젝트의 곡선은 숨겨집니다. 왼쪽 Channels의 Chair_GroupAction과 Z Euler Rotation을 펼쳐 보세요.

T를 눌렀는데 메뉴가 나오지 않는다

마우스가 Graph Editor 위에 있어야 합니다. 곡선 영역으로 마우스를 옮기고 A로 키를 선택한 뒤 T를 누르세요. 3D Viewport에서 T를 누르면 도구막대만 열립니다.

110°를 지나쳤다가 되돌아온다

Bezier 핸들이 목표값 위로 솟아 Overshoot가 생겼습니다. Graph Editor에서 A → V → Auto Clamped를 선택합니다. 50~80프레임의 곡선이 110° 위로 올라가지 않고 수평으로 이어지는지 확인하세요.

50 이후에도 천천히 움직인다

80프레임 값이 110°와 정확히 같지 않습니다. 50프레임 Rotation Z를 확인하고 80프레임에도 같은 숫자를 입력한 뒤 I → Rotation으로 키를 갱신합니다. Graph Editor에서 50과 80 사이가 수평인지 확인합니다.

의자가 반대 방향으로 한 바퀴 돈다

한 키에 -250°나 360°가 섞여 있을 가능성이 있습니다. 이번 예제는 0°에서 +110°로만 움직입니다. 세 키의 값을 직접 확인해 불필요한 한 바퀴 값을 지우세요. 여러 Euler 축이 복잡하게 끊긴 고급 장면에는 Graph Editor의 Discontinuity (Euler) Filter가 있지만, 이 실습에서는 정확한 Z 값 세 개로 고치는 편이 더 쉽습니다.

저장과 응용 과제

Bezier와 Auto Clamped가 적용된 상태에서 File → Save As로 최종 파일을 blender-lesson-22-chair-bezier.blend에 저장합니다. Linear 비교 파일과 Bezier 최종 파일이 둘 다 남아 있으면 완성입니다.

  • Chair_Group에 1·50·80프레임 회전 키가 있다.
  • Rotation Z 값이 0°·110°·110°다.
  • Linear 곡선은 직선, Bezier 곡선은 S자다.
  • Bezier 키의 Handle Type은 Auto Clamped다.
  • 50~80프레임은 110° 수평선이다.
  • 재생할 때 천천히 출발하고 자연스럽게 정지한다.

응용할 때는 50프레임 키를 35로 옮겨 더 빠르게 회전시켜 보세요. 각도는 그대로인데 도착 시간이 짧아지므로 곡선이 더 가팔라지고 속도도 빨라집니다. 반대로 키를 65로 옮기면 곡선이 완만해져 느려집니다. 다음 23강에서는 같은 원리를 Camera의 Location과 Rotation에 적용해 방을 소개하는 짧은 카메라 이동을 만듭니다.

Graph Editor와 F-Curve 구조는 Blender 5.2 Graph Editor 공식 설명, Linear·Bezier와 Auto Clamped의 차이는 F-Curve Properties 설명, 키프레임 보간의 전체 개념은 Keyframes 공식 설명을 기준으로 확인했습니다.

같은 13프레임에서 Linear 26.94도와 Bezier 16.56도 의자 회전을 비교한 화면
같은 키프레임이어도 보간법에 따라 달라지는 13프레임 위치