R21의 새로운 기능
Cinema 4D Cinema 4D 기본 기능들 시뮬레이트 메뉴 모디파이어 필드 힘 오브젝트좌표
이 값은 월드 좌표계 또는 오브젝트가 계층 내에 위치할 경우 부모 좌표계와 연관된 오브젝트의 위치를 나타냅니다 (좌표 매니저참조).
이 값은 월드 좌표계 기준으로 오브젝트의 크기를 나타내거나, 오브젝트가 계층 구조 속에 있을 경우엔 부모 좌표계 시스템 기준으로 오브젝트의 크기를 나타냅니다. (좌표계 매니저 참조)
이 값을 사용하는 오브젝트의 크기를 수정하려 할때, 오브젝트 축 모드 사용하기 모드에서 크기를 조절하는 값과 동일시 합니다. 즉, 오브젝트의 축 시스템이 변경됩니다. (아래 참조 오브젝트 모드 사용하기와 모델 모드 사용하기 차이점)
이 값은 월드 좌표계 시스템 기준으로 오브젝트의 각도를 나타냅니다. 또는 오브젝트가 계층 구조 속에 있을 경우에는 부모 좌표계 시스템 기준으로 오브젝트의 각도를 나타냅니다. 좌표계 매니저 참조.
본 선택 메뉴는 애니메이터에서만 해당됩니다. 본 메뉴의 옵션은 공포의 "짐벌락” 현상을 최소화할 수 있습니다.
다음 예제를 보십시오:
복잡한 하이라키를 가진 애니메이션에 대한 캐릭터 설정이 보입니다. 정면 뷰에서 추측하건대 단순히 아래방향으로 회전하는 오른쪽 팔의 어깨 조인트를 애니메이션한다고 가정해 봅시다. 즉, 우리는 위 방향 및 아래 방향으로 손가락 끝에 대해 키프레임을 생성합니다. 이제 애니메이션을 재생하고 상단으로부터 보면, 기대했던 아래 방향으로의 움직임 대신, 팔 또한 약간 벗어나는 것을 관찰할 수 있습니다. (위의 이미지 우측 상단 참조) 이러한 예를 "짐벌락” 효과라고 합니다.
이 예제는 상대적으로 약한 것입니다; 그러나 극단적인 경우 매우 비정상적인, 코르크-스크루 타입의 움직임을 유발할 수도 있습니다.
적절한 회전 순서가 어떻게 이런 효과를 줄이는데 도움을 줄 수 있을까요? 계획한 애니메이션 작업 수행을 위해 어느 축이 최소로 회전하는가를 결정하기 위해 애니메이션 작업에 앞서 조인트 축을 먼저 살펴보아야 합니다. 본 예제에서 이 축은 좌측에 표시된 X축입니다. 이제 X축이 2번째에 위치한 순서 옵션 중 하나를 선택합니다. 거의 식별이 불가능한 "벗어남”이 여전히 존재하지만 결과는 이전보다 훨씬 훌륭합니다.
어느 회전 순서가 올바른지 결정하는데 도움을 주는 또 다른 옵션은 짐벌링 회전 옵션입니다. 이 옵션을 활성화하고 회전 툴을 활성화합니다:
회전 밴드를 이용하여 (애니메이션 작업에 앞서) 직접 계획한 애니메이션이 주어진 방향으로 잘 작동하는지 확인할 수 있습니다. 위의 이미지 상단 좌측에서 회전 (빨간 화살표)을 불가능하게 하는 것처럼 보이는 방식으로 나열된 적, 녹, 청 회전 밴드를 보실 수 있습니다 (어떠한 밴드도 회전 평면에 놓여있지 않습니다). 이 애니메이션은 짐벌락 문제를 가지고 있습니다.
밴드 중 하나가 회전 평면 (위의 이미지: 청색) 상에 또는 회전 평면 근방에 놓여질 때까지 다양한 순서 옵션을 껐다 켰다를 반복합니다. 애니메이션 작업 시 이제 짐벌락 문제가 대부분 해결된 것을 보실 수 있을 것입니다.
짐벌락에 관한 몇가지 추가 코멘트가 있습니다:
만약 두번째 값 (아래 표시된 범위의 중심값)을 근사로 설정할 경우 항상 문제되는 것이 있습니다. 회전 순서에 관계되는 90° (또는 270°):
해당 값을 항상 또는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°보다 적을 경우 쿼터니언은 잘 동작합니다. 이 값을 넘게 되면, 문제들이 발생할 수 있는데 쿼터니언은 항상 가능하면 가장 짧은 경로를 찾으려고 하기 때문입니다.
다음 예제를 보세요:
쿼터니언 회전 옵션을 활성화하여, 그 오브젝트에 쿼터니언 애니메이션을 활성화합니다 (키프레임 값들은 동일하며 값들 사이의 보간이 그에 따라 변경됩니다). 이 옵션이 해제되면, 오일러 애니메이션 방식이 사용됩니다.
쿼터니언 보간은 로컬 회전 트랙에서만 동작하며 고정 좌표에서는 동작하지 않음에 주의하세요(모두 상태 고정 참조).
각각의 쿼터니언 보간 옵션은 임시적으로 보간에 영향을 주는데 사용될 수 있는 키프레임 속성에서 사용할 수 있습니다.
오일러 애니메이션들과 다음과 같은 차이가 발생합니다:
타임라인에서, 회전 트랙들의 이름에 (Q)가 붙게 됩니다. 예.회전.P (Q)
타임라인에서, 3개의 회전 트랙들(회전.H/P/B)이 하나의 단위로 보여집니다. 즉, 애니메이션에서 하나의 키프레임이 다른 위치로 움직여지면(또는 생성/삭제되면) 다른 키프레임들이 따르게 됩니다.
키프레임 탄젠트들은 쿼터니언을 지원하지 않습니다.
F곡선으로의 쿼터니언 표시는 종종 기술적인 관점에서 가능하지 않고(특히 키프레임들 사이가 180°보다 큰 애니메이션의 경우) 그 결과 중요성이 거의 없습니다.
쿼터니언 애니메이션은 언제 사용하고 사용하지 말아야 할까요?
쿼터니언 애니메이션은 다음의 경우에 사용되어야 합니다:
짐벌 락 현상과 축이 튀는 문제를 가질 경우.
쿼터니언 애니메이션은 다음의 경우에는 사용되어선 안됩니다:
2개의 키프레임 사이의 회전값의 차이가 180°를 넘을 경우 (회전이 가장 짧은 경로를 따르게 됩니다.)
F곡선을 미세조정하고 싶을 경우(즉, 타이밍을 수정하기 위해)
상태 고정
이 기능은 주로 애니메이션에서만 사용됩니다.
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으로 설정됩니다.
이것들은 부모 계층구조로부터 받은 상태 고정입니다.
이 버튼은 각각의 세가지 기본 좌표를 개별적으로 고정하는데 사용될 수 있습니다:
위치
크기
회전