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

의자의 회전이 갑자기 시작하고 뚝 멈춘다면, 키프레임을 늘리기 전에 키 사이의 움직임을 바꿔보세요. Linear는 일정한 속도로 돌고, 이번 실습의 Bezier·Auto Clamped 설정은 천천히 출발해 속도를 높였다가 멈추게 합니다. 도착 각도와 시간은 그대로 두고 보간법만 비교합니다.

Blender 5.2 LTS의 기본 Blender 키맵 기준입니다. 1·50·80프레임에 0°·110°·110° 회전 키를 넣습니다. Graph Editor에서는 곡선의 높이가 각도, 기울기가 속도입니다. 높은 수평선은 빠르게 도는 모습이 아니라, 그 각도에서 멈춘 상태입니다.

21강 파일에서 시작 조건 맞추기

21강의 서랍 애니메이션 파일을 열고 File → Save As로 blender-lesson-22-chair-bezier.blend에 저장합니다. 이후 작업은 이 사본에서만 합니다. 원래 21강 파일을 덮어쓰지 마세요.

  1. 현재 프레임을 1로 옮기고 Outliner에서 Nightstand_Drawer를 선택합니다. 수정된 21강 기준 닫힌 위치는 Location X 2.45, Y 1.29, Z 0.54 m입니다.
  2. Object → Animation → Clear Animation Data를 실행해 이 서랍의 움직임만 지웁니다. 닫힌 위치가 유지되는지 확인합니다. 다른 부모나 협탁 본체에 실행하지 마세요.
  3. Outliner에서 의자의 부모 Empty인 Chair_Group을 선택합니다. 좌판·등받이·프레임 Mesh가 이 부모 아래에 있어야 합니다.
  4. N 패널의 Item → Transform에서 Rotation Mode를 XYZ Euler로 확인하고, Rotation X·Y를 0°, Z를 0°로 맞춥니다. 수정된 19~21강 파일의 Z는 180°이므로, 이번 비교 실습 사본에서 시작 방향을 0°로 바꾸는 과정입니다. 의자가 반대쪽을 향해도 제자리에서 돌았다면 정상입니다.

19강의 부모 위치 (1.1, 0.5, 0) m와 Scale (0.45, 0.45, 0.45)는 그대로 둡니다. 자녀 Mesh의 원점이나 부모를 다시 만들지 않습니다. Output Properties에서 Start 1, End 80, Step 1, Frame Rate 24 fps를 확인하고 Auto Keying은 끕니다.

자신이 만든 방의 배치가 다르면 좌표를 무조건 복사하지 마세요. 부모의 원점이 의자 중앙 아래에 있고, 전체 의자가 함께 돌아가는지 먼저 확인합니다. 이 글의 각도 비교는 Z 회전 0°에서 +110°로 움직이는 조건입니다.

회전 키는 세 시점에 넣기

프레임 Rotation Z 의자 상태
1 0° 시작 방향
50 110° 회전 도착
80 110° 같은 방향으로 정지
  1. Chair_Group이 선택된 상태에서 현재 프레임을 1로 옮깁니다. N 패널의 Rotation Z에 0°를 입력합니다.
  2. 마우스를 3D Viewport에 두고 K → Rotation을 선택합니다. Blender 5.2 기본 설정에서 I는 환경설정의 키 채널이나 활성 Keying Set에 따라 바로 키를 넣습니다. 이전 방식의 I → Rotation 팝업을 기다리지 마세요.
  3. 50프레임으로 옮기고 Z에 110°를 입력한 뒤 K → Rotation으로 저장합니다.
  4. 80프레임에서도 Z 110°를 입력하고 같은 방법으로 키를 넣습니다. 50과 80의 값을 정확히 맞춥니다.

단축키 대신 Object → Animation → Insert Keyframe with Keying Set에서 Rotation을 선택해도 됩니다. Rotation은 X·Y·Z 회전 채널을 대상으로 하며, 삽입 옵션에 따라 바뀌지 않는 X·Y의 키가 생략될 수 있습니다. 이번에 읽고 비교할 것은 Z Euler Rotation의 1·50·80 키 세 개입니다.

50·80에 같은 값을 넣으면 정지 구간을 곡선에서 확인하기 쉽습니다. 기본 Constant Extrapolation에서는 마지막 키 이후 값도 유지하지만, 키를 하나 더 둔다고 중간 구간이 언제나 수평이 되는 것은 아닙니다. 아래에서 보간법과 핸들도 함께 맞춥니다. 키 삽입 방식은 Blender 5.2 공식 설명에서 확인할 수 있습니다.

Graph Editor에서 Z 회전만 보기

Timeline 왼쪽 끝의 Editor Type 아이콘에서 Graph Editor를 선택합니다. Chair_Group을 선택한 채 Channels의 Action과 회전 채널을 펼치고 Z Euler Rotation을 찾습니다. Action 이름은 자동으로 달라질 수 있으므로 Chair_GroupAction이라는 이름만 찾을 필요는 없습니다.

X·Y 곡선이 함께 보이면 해당 채널의 눈 표시로 잠시 숨기고 Z만 남깁니다. Graph Editor에 마우스를 두고 Home, 또는 View → Frame All로 키 전체를 화면에 맞춥니다. Mac 키보드에 Home이 없으면 메뉴를 쓰면 됩니다.

가로축은 시간, 세로축은 회전값입니다. 헤더의 Normalize는 끈 상태에서 읽습니다. Normalize를 켜면 표시 범위가 -1~1로 바뀌므로 그 눈금을 각도로 읽으면 안 됩니다. 현재 프레임의 실제 각도는 3D Viewport의 Rotation Z 입력란과 함께 확인하세요. Graph Editor 공식 설명은 곡선·키·핸들과 화면 맞추기 기능을 안내합니다.

Linear: 같은 시간에 같은 양만큼 회전

Graph Editor에서 Z 곡선이 보이는 상태로 A → T → Linear를 실행합니다. 1~50은 곧은 대각선, 50~80은 수평선이 됩니다. 메뉴로는 Key → Interpolation Mode → Linear입니다.

현재 프레임을 13으로 옮겨 Rotation Z를 확인합니다. 이 조건의 값은 약 26.94°입니다. 시작부터 일정하게 돌고, 50프레임에서 바로 멈춥니다. 일정한 회전을 원할 때는 이 움직임이 맞지만, 서서히 밀었다 놓는 느낌과는 다릅니다.

File → Save As로 blender-lesson-22-chair-linear.blend를 저장합니다. 같은 키를 가진 비교 파일을 남기는 단계입니다.

Bezier: 출발과 정지를 부드럽게

같은 Z 키 세 개를 선택한 뒤 T → Bezier, 이어서 V → Auto Clamped를 실행합니다. 메뉴로는 Key → Interpolation Mode와 Key → Handle Type입니다. 두 메뉴는 서로 다른 설정입니다.

Graph Editor의 N 패널 → F-Curve → Active F-Curve에서 Handle Smoothing을 Continuous Acceleration으로 확인합니다. 이번 비교값은 이 설정과 Auto Clamped 핸들을 사용한 결과입니다. 핸들을 직접 옮겼거나 다른 Smoothing을 쓰면 키가 같아도 중간 각도는 달라질 수 있습니다.

Bezier는 핸들 모양에 따라 키 사이의 속도가 바뀝니다. 이번 설정에서는 출발 부분이 완만하고 중간이 가파르며, 110°에 가까워질수록 다시 완만해집니다. Bezier라는 이름만 선택했다고 언제나 이런 움직임이 되는 것은 아닙니다. Auto Clamped는 이번처럼 목표값을 지나치지 않고 멈추게 할 때 도움이 됩니다. 가구와의 충돌까지 막아주는 기능은 아닙니다.

13프레임의 각도는 약 16.56°로 Linear보다 작습니다. 출발할 때 속도를 줄였기 때문입니다. 두 방식 모두 50프레임에는 110°에 도착하고 이후에는 그 방향을 유지합니다. 재생은 마우스를 Viewport나 Graph Editor에 두고 Spacebar로 시작하고, 같은 키로 멈춥니다.

보간법은 키 사이의 계산 방식이고, 핸들은 Bezier 곡선의 모양을 정합니다. F-Curve Properties 공식 설명에서 보간·Handle Smoothing·Auto Clamped의 차이를 확인할 수 있습니다.

같은 13프레임을 비교해보기

동일한 13프레임의 Linear 26.94도와 Bezier 16.56도 의자 실제 렌더 및 1~80프레임 평가 곡선 비교
Codex가 별도 Blender 사본에서 렌더한 13프레임 비교입니다. 아래 그래프는 실제 평가한 Z 회전값으로 그린 설명용 그림이며 Graph Editor 캡처가 아닙니다. 두 렌더는 같은 근접 카메라를 사용했고, 저장한 강의 파일에는 기존 방 카메라를 유지했습니다. 필자의 직접 실습 캡처는 아닙니다.
프레임 Linear 각도 Bezier 각도
1 0.00° 0.00°
13 26.94° 16.56°
25 53.88° 53.32°
50·80 110.00° 110.00°

표는 위의 세 키·Auto Clamped·Continuous Acceleration 조건을 Blender 5.2 LTS에서 별도로 평가한 값이며, 소수 둘째 자리로 반올림했습니다. 1~80의 모든 정수 프레임에서 각도 범위와 50 이후 정지를 확인했습니다. 의자 전체가 부모를 따라 돌고 책상 상판·협탁 본체와 표면이 교차하지 않는지도 이 방 배치에서 확인했습니다. 모든 가구·다른 배치의 충돌을 검증한 것은 아닙니다.

별도 검증은 bpy로 키와 설정을 넣어 값을 평가하고 실제 EEVEE 렌더를 만든 방식입니다. 파일 저장·재열기와 1·13·25·50프레임 렌더는 확인했지만, 사용자 원본에서 키보드를 눌러보거나 실시간 재생·전체 동영상 출력까지 시험한 기록은 아닙니다.

움직임이 다르면 여기부터 확인

의자 한 부품만 돌거나 큰 원을 그릴 때

한 부품만 돌면 좌판이나 등받이 Mesh에 키를 넣었는지 확인합니다. 전체 의자를 회전시킬 대상은 Chair_Group입니다. 큰 원을 그리면 부모 원점이 의자 중심에서 벗어났을 수 있습니다. 키나 Mesh 원점을 무작정 바꾸기 전에 19강의 부모 구성을 확인하고, 문제가 없는 사본에서 다시 시작하세요.

곡선이 안 보이거나 단축키가 다른 기능을 실행할 때

먼저 의자 부모를 선택하고 Z 회전 키가 있는지 확인합니다. 채널 검색어·눈 표시·필터 때문에 숨겨졌는지도 살핍니다. View → Frame All로 화면에 맞춥니다. T와 V는 Graph Editor 위에서 눌러야 합니다. Viewport에서 T를 누르면 도구막대가 열립니다. 키 조작 메뉴는 Editing F-Curves 공식 설명에도 나와 있습니다.

110°를 지나치거나 50 이후에도 움직일 때

Z의 50·80 키가 모두 110°인지 먼저 확인합니다. 두 값이 다르면 해당 프레임에서 Rotation Z를 고치고 K → Rotation으로 키를 갱신합니다. 두 값이 같은데 튄다면 Z 키 전체의 보간을 Bezier, 양쪽 핸들을 Auto Clamped로 맞추고 50~80 곡선이 수평인지 확인합니다. 키 사이의 움직임과 키 값 문제를 구분해야 합니다.

반대 방향으로 한 바퀴 도는 것처럼 보일 때

Z 키에 -250°나 360°처럼 원하지 않는 회전값이 섞였는지 확인합니다. 이번 실습은 0° → +110° → +110°입니다. 화면에 비슷한 방향으로 보여도 키 값이 110°와 -250°라면 보간 경로가 다릅니다. 복잡한 Euler 보정 도구를 쓰기 전에 세 값을 먼저 맞추세요.

비교 파일 두 개를 남기고 마무리

최종 Bezier 상태를 blender-lesson-22-chair-bezier.blend로 저장합니다. Linear 파일과 이름을 구분하세요. 각각 다시 열어 13프레임 각도, 50·80의 110°, Frame Range 1~80과 24 fps를 확인하면 비교 기준을 잃지 않습니다.

응용은 사본에서 해봅니다. 50프레임 키만 35로 옮기면 같은 110°에 더 일찍 도착하고, 65로 옮기면 더 늦게 도착합니다. 키의 각도와 핸들 설정은 유지한 채 시간만 바꾸어, 곡선의 기울기와 움직임이 함께 달라지는지 살펴보세요. 23강에서는 카메라 이동에 이 원리를 이어갑니다.