• 카테고리

    질문 & 답변
  • 세부 분야

    게임 프로그래밍

  • 해결 여부

    미해결

이어서 궁금한점 질문입니다.

19.02.21 08:27 작성 조회수 100

0

아래 답변 정말 감사합니다! 그런데 하나 이해가 되지 않는게 있는데요 ㅠ

인스펙터 창에서 rotation을 x축으로 증가 시킬때 부모가 없으면 전역을 기준으로 x값만큼 더 회전하고

씬창에서도(피벗+글로벌 모드에서) x축 실선을 잡아 직접 회전할 경우도 전역을 기준으로 x값만큼 더 회전하고

둘다 전역을 기준으로 회전한거라 같은 결과가 나와야 할것 같다고 생각하는데

두개의 cube를 만들어 겹쳐보아도, 인스펙터 창에 수치를 보더라도 값이 다르게 나오는데요

이건 둘중의 어느것이 전역을 기준으로 회전을 안한건지..

잘 이해가 가질 않습니다.

예는 (30,45,60) 을 (60,45,60) 으로 증가시키는 쪽으로 해봤습니다.

굳이 중요한건 아닐것 같은 느낌인데 이해가 가질 않으면 활용을 못해서요ㅠ 무지의 도움주시면 감사하겠습니다.

답변 1

답변을 작성해보세요.

0

인스펙터 창에서 보이는 값은 쿼터니언을 거쳐간 값입니다.

쿼터니언은 삼차원 회전을 한번에 적용합니다. 그래서 같은 수치가 다른 회전 형태로 보이는 문제, 또는 같은 회전 형태인데 다른 수치로 보이는 문제가 없습니다.

이와 반대로 씬 창에서 직접 회전시키는 것은 오일러각 방식으로 회전시키는 것입니다.

오일러각의 특징은 회전을 세번을 나누어 순차적으로 적용합니다. 오일러 회전의 특징은 회전 순서가 달라지면, 각각 따로 때어봤을때, 같은 정도의 회전이라도 세차례의 회전이 누적된 결과가 달라집니다.

예를 들어서, 인스펙터 창을 쓰지 마시고, (0,0,0) 회전된 물체를 (30, 45, 60) 상태로 씬창에서 스냅핑 도구를 활용시켜서 회전해보세요. 이때 x, y, z 순서대로 30, 45, 60으로 드래그하여 회전한것과 y,x,z 순서로 드래그해서 회전한 결과가 다를 것입니다.

이 부분은 수학적인 내용이고 직관과 상당히 다르게 동작하는 부분이 많아서, 유니티를 통해 이해하기 보다는 순수하게 "오일러각"이라는 주제로 공부하는 것이 프로그램적 문제로 방해받지 않고 이해할 수 있을 것 같습니다.

현재 동영상에는 그 부분을 완벽하게 직관적으로 설명하진 못했는데 새로운 비디오에서는 작게나마 다룰 수 있도록 하겠습니다. 또한 출간된 레트로 책에서 해당 부분을 직접 다루진 않지만, 짐벌락을 설명하는 부분에서 세번 나누어 오일러 각이 적용되는 부분을 간략하게 다루고 있습니다. 도서관 등에서 대출해서 한번 확인해보는 것도 좋을 것같습니다.