
좌표
이것들은 부모 계층구조로부터 받은 상태 고정입니다.
이 기능은 주로 애니메이션에서만 사용됩니다.
3D에서, 오브젝트의 고정은 "zeroing out”(또는 ”dual transformation”)으로 간주됩니다. 왜냐하면 위치와 회전의 로컬 좌표값은 오브젝트의 위치 또는 방향의 변화 없이 각각 0으로 설정되고 크기는 1로 설정되기 때문입니다.(아래에서는 위치와 회전만을 참조할 것입니다.) 널 오브젝트를 만들 때 위치와 방향은 오브젝트와 동일하고 오브젝트는 널 오브젝트의 자식 오브젝트가 되고 이것은 앞과 같게 이뤄집니다. 이것은 R12이전에 사용되었던 문제 해결 방법입니다.
여러분은 다음과 같이 오브젝트르 고정할 수 있습니다: 내부적으로, 선택된 오브젝트의 좌표값을 가진 널 오브젝트가 생성됩니다. 이 좌표값들은 상태 고정탭에 복사되고 널 좌표로 옵셋됩니다. 즉, 어떤 수정은 원래 좌표값을 고정 좌표로 만듭니다.
그래서 이것을 어디에 사용할 수 있을까요? 설명하기 위해서 우리는 기본으로 시작하겠습니다:

이 씬은 2개의 오브젝트를 포함합니다: Arm 2는 위 그림에서 보여지듯이 로컬 좌표값을 가지고 있고 Arm 1의 자식 오브젝트입니다. 속성 관리자에서 보여지는 좌표값은 항상 로컬 좌표값입니다.(계층구조에서 부모 오브젝트의 좌표시스템의 영향을 받습니다.) 지금까지는 좋습니다.
이제 Arm2가 X축 방향으로 45°회전하기를 원합니다. 일반적으로 2개의 키프레임을 적용해서 회전하는 밴드를 사용해서 오브젝트를 회전시킵니다:

그 결과는 위 그림의 가운데와 같이 보입니다. 하나의 축 중심으로 회전해도 모든 세 축이 수정됩니다. 이것은 부모 오브젝트의 좌표 시스템이 (Arm 1) 로컬 좌표축으로부터 다른 방향을 하고 있기 때문에 발생합니다. 종종, 이것을 피할 수 없습니다. 타임라인에서, 수정되어야 하는 세 개의 F-Curves가 쉽지가 않습니다. 게다가 우리 예제는 또한 애니메이션 Gimbal lock을 제공합니다. (쿼터니언 회전)참조), 이것은 팔의 이후 회전 결과입니다.
이 모든 불리한 결과들은 애니메이션하기 이전에 상태 고정을통해 피할 수 있습니다. 이것은 위치, 크기, 회전 값들을 같은 이름으로 복사하고, 각각 초기값인 0와 1로 설정합니다.
이것은 아래와 같은 이점들이 있습니다:
틀어진 좌표값들을 영점으로 만듭니다. 이것은 쉽게 초기값으로 돌리게 합니다.XPresso 또는 슬라이더를 통해서 회전하는 것과 같이 파라미터들을 쉽게 제어합니다.
모든 애니메이션 F-Curves의 시작을 0으로 합니다.
Gimbal lock은 하나의 회전 축을 사용해서 막을 수 있습니다.
모두 상태 고정 명령은 모든 좌표값들을 고정시킵니다. (위치, 크기, 회전) 즉, 모든 좌표값은 0으로 설정됩니다.
기본 좌표는 고정 좌표로 변환됩니다. 고정좌표는 모두 0으로 설정됩니다.
이것들은 부모 계층구조로부터 받은 상태 고정입니다.
일반
확실히 예를 들어 캐릭터 애니메이션과 함께 무서운 짐벌락에 대해 들어보셨거나, 개인적으로 경험해보셨을 것으로 생각됩니다!
짐벌락은 헤딩 H과 뱅킹 B이 같은 효과를 가지는, 회전 값이 P +/- 90°를 가질 때 발생합니다. 그 결과 이 축들중 하나를 모두 잃게 되고 아주 작은 회전에서도 큰 회전 이동이 발생합니다.
회전 애니메이션에서만 동작하는 쿼터니언 기능이 도움이 될 수 있습니다.
기본값으로, Cinema 4D는 오브젝트의 회전을 보간하기 위해 오일러 회전을 사용합니다. (오일러: 분리 회전(HPB), 유클리드(오른쪽-각도) 3D 공간을 위한 자이로 시스템).
오일러 회전의 개별 컴퍼넌트들은 개별적으로 보간되는데, 이것은 예를 들어, HPB (0, 0, 0)과 HPB (60, 60, 60)에서 평균값인 HPB (30, 30, 30)이 되는 것을 의미합니다. 0, 0, 0에서 30, 30, 30을 거쳐 60, 60, 60으로 스윙하는 것은 뷰포트에서 테스트할 수 있는 가장 짧은 경로를 필요로 하지 않는 다는 사실.
필요로 하는 것은 경로를 수동으로 애니메이션을 해야 할 경우, 사용자가 어떻게 하더라도 A에서 B로 가장 짧은 경로를 가지는 보간입니다.
이것이 정확하게 쿼터니언이 하는 일입니다. 쿼터니언은 0, 0, 0에서 60, 60, 60으로 경로를 35.104 °, 22.83 °, 35.104 °를 경유해서 가집니다.
쿼터니언은 불필요한 동작을 없애서 짐벌락을 피합니다.
쿼터니언 애니메이션을 기본적으로 모든 오브젝트들에 왜 적용하지 않는지 궁금하실 수 있습니다. 그 이유는 쿼터니언 보간 역시 단점을 가지고 있기 때문입니다. 회전할 때 변화가 180°보다 적을 경우 쿼터니언은 잘 동작합니다. 이 값을 넘게 되면, 문제들이 발생할 수 있는데 쿼터니언은 항상 가능하면 가장 짧은 경로를 찾으려고 하기 때문입니다.
예제
다음 예제를 보세요:

오브젝트는 주어진 축 주위를 180°보다 더 회전할 필요가 있습니다.
키프레임은 초기상태로 설정되어, 타임슬라이더는 회전이 끝나는 시점의 프레임으로 이동하고, 오브젝트가 회전하고, 움직임이 키프레임에 설정됩니다. 여기까지는 순조롭습니다.
쿼터니언 기능을 사용하는지 여부와 상관없이, 초기상태와 최종상태에 변화가 없습니다. 쿼터니언 보간은 같은 목표를 달성하기 위한 다른 방식을 사용합니다.
먼저, Cinema 4D에서 전통적인 오일러 회전 방식을 보겠습니다:
오브젝트는 키프레임들(예. B (뱅크)가 220° 회전되어, 오브젝트의 시계방향으로 220°로 회전합니다)을 사용해서 회전됩니다:
이제 쿼터니언 방식을 이용하겠습니다. 이미 설명한대로, 보간 방식은 마지막 상태로 항상 가능한 가장 짧은 경로를 찾습니다. 이 예제에서 가장 짧은 경로는 (뷰어의 화각에서) 시계방향 220°가 아니라 정확히 반대 방향인 반시계방향 140°입니다.
쿼터니언 회전 옵션을 활성화하여, 그 오브젝트에 쿼터니언 애니메이션을 활성화합니다 (키프레임 값들은 동일하며 값들 사이의 보간이 그에 따라 변경됩니다). 이 옵션이 해제되면, 오일러 애니메이션 방식이 사용됩니다.
쿼터니언 보간은 로컬 회전 트랙에서만 동작하며 고정 좌표에서는 동작하지 않음에 주의하세요(모두 상태 고정 참조).
각각의 쿼터니언 보간 옵션은 임시적으로 보간에 영향을 주는데 사용될 수 있는 키프레임 속성에서 사용할 수 있습니다.
오일러 애니메이션들과 다음과 같은 차이가 발생합니다:
타임라인에서, 회전 트랙들의 이름에 (Q)가 붙게 됩니다. 예.회전.P (Q)
타임라인에서, 3개의 회전 트랙들(회전.H/P/B)이 하나의 단위로 보여집니다. 즉, 애니메이션에서 하나의 키프레임이 다른 위치로 움직여지면(또는 생성/삭제되면) 다른 키프레임들이 따르게 됩니다.
키프레임 탄젠트들은 쿼터니언을 지원하지 않습니다.
F곡선으로의 쿼터니언 표시는 종종 기술적인 관점에서 가능하지 않고(특히 키프레임들 사이가 180°보다 큰 애니메이션의 경우) 그 결과 중요성이 거의 없습니다.
쿼터니언 애니메이션은 언제 사용하고 사용하지 말아야 할까요?
쿼터니언 애니메이션은 다음의 경우에 사용되어야 합니다:
짐벌 락 현상과 축이 튀는 문제를 가질 경우.
쿼터니언 애니메이션은 다음의 경우에는 사용되어선 안됩니다:
2개의 키프레임 사이의 회전값의 차이가 180°를 넘을 경우 (회전이 가장 짧은 경로를 따르게 됩니다.)
F곡선을 미세조정하고 싶을 경우(즉, 타이밍을 수정하기 위해)
이 버튼은 각각의 세가지 기본 좌표를 개별적으로 고정하는데 사용될 수 있습니다:
위치
크기
회전