Blender 5.3, 축 순서를 바꿔도 애니메이션을 유지
Blender 5.3에서는 애니메이션이 적용된 본이나 오브젝트의 회전 순서를 바꿔도 움직임이 변하지 않는다. 예를 들어 XYZ Euler에서 ZXY Euler나 쿼터니언으로 전환할 수 있다. 프로그램이 회전 키프레임을 새 모드에 맞춰 알아서 다시 계산한다. 이 기능에 주목한 사람은 Jonathan Lampel(@jonlampel)로, 11월 4일 X 게시물에서 언급했다. 그의 생각으로는 이 기능은 아직 거의 주목받지 못하고 있다.
«제가 보기에 아직 거의 아무도 칭찬하지 않는 Blender 5.3의 기능 중 하나: 회전 순서를 바꾸면 프로그램이 여러분의 모든 회전 키프레임을 새 순서에 맞춰 자동으로 변환해 주기 때문에 완성된 애니메이션은 그대로 유지됩니다. 정말 좋습니다!» — Jonathan Lampel, X 게시물
게시물 자체는 짧다. 자세한 내용은 공식 Blender 5.3 릴리스 노트와 사용자 매뉴얼에 실려 있다. 개발자들은 새 명령을 애니메이션 및 리깅 섹션의 주요 변경 사항 목록에 포함시켰다.
명령은 어디에 있고 어떻게 작동하는가
명령 이름은 Convert Rotation Mode다. 호출 방법은 여러 가지다:
- 오브젝트 모드의 Object › Animation 메뉴에서;
- 포즈 모드의 Pose › Animation 메뉴에서;
- 회전 모드 필드 옆에 새로 생긴 드롭다운 목록에서;
- Pose Mode에서 Ctrl+R 조합으로.
목록에는 Blender의 모든 회전 모드가 들어 있다. Quaternion(WXYZ), 여섯 가지 Euler 변형(XYZ, XZY, YXZ, YZX, ZXY, ZYX), 그리고 Axis Angle이다. 이 명령은 선택된 모든 오브젝트나 본을 한꺼번에 처리하므로, 축 순서가 불편한 본 여러 개를 한 번의 동작으로 바꿀 수 있다.
단순히 모드를 전환하는 것과의 차이는 Blender 5.3 매뉴얼에 설명돼 있다. 모드 필드의 값을 그냥 바꾸면 기존 커브는 재계산되지 않는다. 새 명령은 애니메이션 커브 자체를 다시 쓰며, 새로운 회전 표현이 허용하는 한 최대한 정확하게 시간에 따른 최종 방향을 보존한다. 재계산은 선택한 오브젝트나 본에 연결된 모든 액션(actions)에서 이뤄진다. 캐릭터에 걷기, 달리기, 대기 등 개별 클립이 있다면 하나씩 변환할 필요가 없다.
비슷한 명령은 전에 Rigify에 포함돼 있었다. 개발자들은 새 명령을 그 개선판이라고 부르며, 기존 명령은 더 이상 사용되지 않는 것으로 선언했다. 새 명령은 포즈 상태의 오브젝트와 본에 대해 Python으로도 사용할 수 있어, 스튜디오의 파이프라인 스크립트에 넣을 수 있다.
고려해야 할 점
매뉴얼에는 변환의 특성이 명시적으로 나열돼 있다:
- 재계산 이후 애니메이션은 항상 새 모드에 대해 완전히 기록된다. 이전에 회전 채널 일부에만 키가 있었다면, 변환 후에는 모든 채널에 키가 생긴다;
- 키 사이의 보간이 달라질 수 있다. 개발자들은 모드마다 회전을 다르게 기술하기 때문에 이것이 예상된 동작이라고 설명한다;
- 키프레임 유형은 가능한 한 유지된다.
정확도가 중요한 경우를 위해 Bake 옵션이 있다. 변환 전에 모든 프레임에 키를 넣어, 추가 키라는 대가를 치르는 대신 움직임을 더 정확하게 재현한다. 그렇게 촘촘해진 커브는 Graph Editor에서 손으로 수정하기가 아마 더 어려울 것이다.
같은 릴리스 섹션에는 월드 좌표에서 애니메이션을 복사하고 붙여넣는 명령도 추가됐다. 여러 오브젝트와 본을 동시에 다루며, 프리뷰 범위를 사용하고 그것이 지정돼 있지 않으면 씬 범위를 사용한다. 제약(constraints)이 걸린 오브젝트와 본에 붙여넣는 것은 아직 지원되지 않는다.
누구에게 유용할까
오일러 축 순서는 보통 복잡한 회전에서 축 잠김(gimbal lock)을 피하거나, 특정 관절의 커브를 편집하기 더 편하게 하려고 바꾼다. 릴리스 노트에 따르면 이전에는 그런 변환에 Rigify의 명령이 필요했고, 그렇지 않으면 애니메이터는 불편한 순서를 그대로 쓰거나 포즈를 다시 잡아야 했다. 이제는 기본 명령으로 이미 완성된 애니메이션에서도 순서를 바꿀 수 있다. 우선은 이미 클립이 만들어진 뒤에 리그를 다듬는 캐릭터 애니메이터와 리거에게 쓸모가 있을 것이다.
제약도 실용적인 성격이다. 채널이 전부 기록되고 보간이 바뀔 수 있기 때문에, 변환 후에는 키 포즈와 커브를 확인하는 편이 좋다. 특히 타이밍이 정교하게 조정된 스타일라이즈드 애니메이션에서는 더욱 그렇다. 베이킹은 움직임을 더 정확하게 전달하지만, 그 뒤의 커브는 수정하기 어렵다. 따라서 변환은 최종 폴리싱 전에 하는 것이 합리적이다.
커뮤니티 반응
반응은 대체로 호의적이다. 사용자들은 이 기능을 눈에 잘 띄지 않지만 일상 작업에 큰 영향을 주는 중요한 개선이라고 평한다. 핵심 논거는 이렇다. 축 순서를 바꿀 때 키프레임을 다시 계산해 주면, 전에는 그런 수정이 움직임을 망가뜨렸던 이미 완성된 리그와 애니메이션에서 몇 시간을 절약할 수 있다. 한 댓글 작성자는 자신이 아는 바로는 비슷한 기능이 전에도 있었지만 아는 사람이 적었다고 지적했다. 그 자신도 그 사실을 알기 전까지 과거 프로젝트에서 상당한 시간을 잃었다고 한다. 다른 이들은 Blender 5.3에 거의 논의되지 않지만 유용한 다른 세부 사항도 있다고 언급한다.
«별로 흥미롭지 않아 보일 수 있지만, 진짜 돌파구입니다! 안녕, 축 잠김!»
— @vopiscus_bm (X)
«회전 변환에 관한 언급은 기존 리그에서 몇 시간을 절약해 주는, 바로 그런 호환성 변경 관련 세부 사항입니다.»
— @caren633881 (X)
«저는 불과 몇 달 전에야 이걸 알았습니다. 기능이 이미 오래전부터 있었던 것 같네요. 다른 프로젝트에서 얼마나 많은 시간을 잃었는지 깨닫고 컴퓨터를 던질 뻔했습니다.»
— @swamusic_ (X)
회전 모드를 더 자주 바꿔야 하는 쪽은 어디인가?
- 본에서
- 오브젝트에서