오일러(Euler)와 짐벌락(Gimbal-Lock)
- Euler에서 회전이 발생할 때 회전하는 순서가 있음.
- 위와 같을 경우 빨간색->녹색->파란색 순으로 회전이 진행됨.
- 이것이 바로 Rotation Tab에 있는 Axis Order임.
- Gimbal-Lock이 발생하는 것 자체를 막을 방법이 없기 때문에 피해가는 방법을 사용한다.
- Gimbal-Lock은 일반적으로 Axis Order에서 두번 째 축에서 발생함.
- 그렇기 때문에 Rigging을 할 때 두번째 축에는 많이 사용되지 않는 축으로 설정하여 최대한 Gimbal-Lock이 발생하지 않도록 한다.
쿼터니언(Quaternion)
- 쿼터니언은 [X,Y,Z]의 Position 값이 있고, 그 위치를 바라보는 Vector의 트위스트 방향을 결정짓는 w 값에 의해서 최종 회전 방향이 결정 됨.
Script Controller로 살펴본 쿼터니언(Quaternion)
- Expression Controller나 Script Controller와 같은 절차적인 컨트롤러(Procedual Controller)들은 애니메이션 구간이 미리 정해져 있음.
- 기본적으로 애니메이션 재생 구간이 무제한으로 설정(Ignore Animation Range, 배경이 연보라색으로 되어있는 경우) 되어있어서 신경 안써도 되지만 제한 된 구간에서만 작동하게 하려면 Respect Animation Range를 설정하면 됨.
오일러와 쿼터니언의 비교
- Position을 기반으로 한 Quaternion을 사용하는 TCB Rotation은 누적된 회전 값을 인식하지 못하고 Key와 Key 사이를 최단 방향으로 애니메이션이 보간 됨.
- Euler에서는 누적된 회전 값을 표현 할 수 있기 때문에 중간 Key가 없어도 180도 이상의 회전을 표현할 수 있다.
- Euler에서는 Gimbal-Lock이 발생하지만, TCB에서는 발생하지 않는다.
- Euler Rotation Controller는 Tangent라고 하는 조절 포인트를 사용해서 직접적으로 Curve를 조절할 수 있다.
- TCB Rotation은 TCB 값을 사용해서 Curve를 제어한다.
- Script 작업에서는 Euler보단 Quatenion이 좀 더 유리하다.
- Euler의 경우 3개의 축의 회전이 모여서 최종적인 방향을 결정하기 때문에 직관적이지 못함.
- 1개의 축만 회전하는 경우에는 Euler든 TCB는 큰 상관이 없지만 복잡한 회전을 표현하려할 땐 Quatenion 방식이 유리함.
Euler | Quaternion | |
회전의 누적 인식 | O | X |
Gimbal-Lock 발생 | O | X |
Graph를 이용한 Curve 조절 | O | X |
Script에서 사용하기 편리함 | X | O |
직관성 | X | O |
'Technical > Riging' 카테고리의 다른 글
[MAX]Bezier Controller (0) | 2021.03.01 |
---|---|
[MAX]Controller (0) | 2021.03.01 |
[MAX]Hierarchy (0) | 2021.03.01 |
[MAX]Bone (1) | 2021.03.01 |
[MAX]Axis (0) | 2021.03.01 |