Quaternion

1765 단어 유니티유니티

position은 익숙한데 Quaternion은 영 어색하다.
아직 삐약🐣

유니티 공식 문서로 검색해 보면

쿼터니언(Quaternions)은 회전을 표현하기 위해 사용됩니다.
이라고 나와 있다.

사실 저번에도 찾아봤다. 기억이 안났을 뿐... 이번에 확실히 이해해내고 말꺼다!

positon이랑 친구인데 위치가 아니라 회전을 관리해주는 친구다


사용 예제

  • identity : Quaternion을 쓰긴 써야 하지만 굳이 필요 없을 때, 형식적으로 필요할 때 사용한다
GameObject go = Instantiate<GameObject>(effectPrefabs[index], position, Quaternion.identity);
  • Euler(x,y,z) : 각 축으로 회전

왜 사용해야 하는가?

사실 이 글에 핵심. 내가 다시는 구글에 Quaternion을 검색하지 않기 위해 쓰는 글.

아까 위에서 나왔던 오일러 연산(Euler)이 Quaternion을 쓰는 이유다. 오일러 계산이 짐벌락 현상을 막아주기 때문

  • 짐벌 락(Gimbal Lock) :
    3개의 짐벌을 이용해 회전하는 3차원에서 두 개의 짐벌이 겹쳐질 경우 회전축 하나가 사라지는 현상
    (그래서 2D 게임보다 3D 게임에서 quaternion을 훨씬 많이 봤나보다)

오일러 연산은 스크립팅을 통해서 회전하는 축의 순서를 정해줄 수 있기 때문에 겹치게 되지 않는 모양이다. 나도 실제로 여기까지 써본적이 없어서 아직 모르겠다;;;
써보게 되면 추가해야징!

좋은 웹페이지 즐겨찾기