오일러 각이란?
- 3차원 상의 강체 (rigidbody, 외부의 힘에 변하지 않는 물체)의 방향과 회전을 정의하기 위해 만들어낸 각도
- x, y, z 좌표를 뜻함
짐벌(Gimbal)이란?
- 물체가 회전하도록 중심축을 가진 구조물
- 이 강체의 방향은 오일러 각도를 사용하여 세 번의 회전을 통해 얻을 수 있다.
짐벌락(Gimbal Lock)이란?
오일러 각을 이용하여 회전시킬 때 x축 -> y축 -> z축 순으로 회전한다.
(이렇게 순서대로 회전하기 때문에 오일러 각에서 세 개의 축 (x, y, z축)은 서로 종속적이다.)
이 때 먼저 회전한 축이 아직 회전하지 않은 축을 함께 회전시킨다.
두 번째로 회전한 축의 회전 결과로 인해 첫 번째 축과 세 번째 축이 겹쳐지는 상황이 발생하는 것이다.
따라서 아직 회전하지 않은 축은 자유도(degree of freedom)를 잃게 되는데, 이것이 짐벌락 현상이다.
해결 방법
Quaternion을 사용하여 회전시키면 발생하지 않는다
유니티에서는 기본적으로 쿼터니언을 이용하여 회전시키므로
사용자가 코드 상에서 오일러 각 계산을 사용하도록 하지 않는 이상 짐벌락 현상은 발생하지 않는다.
'Study > Unity' 카테고리의 다른 글
[Unity] HpBar 방향 수정 (0) | 2024.06.18 |
---|---|
[Unity] Serializefield & Property (0) | 2024.06.16 |
[Unity] Photon 사용해보기 - 멀티플레이 게임 구현 (0) | 2024.06.13 |
[Unity] Photon (0) | 2024.06.13 |
[Unity] Particle System (0) | 2024.06.12 |