3D 애플리케이션에서 회전은 보통 쿼터니언 또는 오일러 각으로 표시됩니다. 대부분의 경우 Unity는 회전을 내부적으로 쿼터니언으로 나타냅니다. 하지만 Unity의 회전 및 방향에 대한 기본적인 이해가 중요합니다.
외부 소스에서 가져온 애니메이션이 포함된 파일을 임포트할 때, 임포트된 파일에는 일반적으로 오일러 형식의 키프레임 애니메이션이 포함됩니다. Unity의 기본 동작은 이러한 애니메이션을 쿼터니언 값으로 리샘플링하고 애니메이션의 모든 프레임에 대해 새로운 쿼터니언 키프레임을 생성하는 것입니다. 이렇게 하면 소스 애니메이션과 Unity에서 나타나는 방식의 차이를 최소화할 수 있습니다.
다만 리샘플링을 사용하더라도 임포트된 애니메이션의 쿼터니언 표현이 원본과 충분히 일치하지 않을 수도 있습니다. 이러한 이유로 Unity는 애니메이션 리샘플링을 비활성화할 수 있는 옵션을 제공합니다. 즉, 런타임 시 오리지널 오일러 애니메이션 키프레임을 대신 사용할 수 있습니다.
참고: 오일러 커브는 프레임 간 기본 쿼터니언 보간을 사용하여 원하는 결과를 얻을 수 없고 문제가 발생하는 경우에만 최후의 수단으로 사용해야 합니다.
애니메이션 파일의 원래 오일러 커브 값을 사용하려면 Animation 탭에서 Resample Curves 옵션을 선택 해제합니다.
이 옵션을 비활성화하면 Unity는 회전 커브를 커브 유형에 따라 오일러 또는 쿼터니언 모드로 원래 키프레임과 함께 유지합니다.
참고: FBX SDK는 사전 또는 사후 회전이 있는 조인트의 모든 회전 커브를 자동으로 리샘플링합니다. 즉, Unity가 자동으로 커브를 쿼터니언 커브로 임포트합니다.
Unity는 임포트된 다양한 파일을 지원하며 임포트된 커브를 원본에 최대한 가깝게 유지합니다. 이를 위해 Unity는 모든 일반적인(반복되지 않는) 오일러 회전 순서를 지원하고 원래 회전 순서로 커브를 임포트합니다.
원본 오일러(리샘플링되지 않은) 회전을 사용하는 경우 애니메이션 재생에서 시각적 차이가 거의 보이지 않습니다. Unity는 런타임 시에도 이러한 커브를 오일러 표현으로 저장합니다. 하지만 엔진은 쿼터니언에서만 작동하므로 Unity는 회전 값을 쿼터니언으로 전환해야 합니다.
Resample Curves 옵션을 비활성화하면 Unity는 게임 오브젝트에 적용될 때까지 회전 값을 오일러 값으로 유지합니다. 따라서 최종 결과는 원본과 동일하게 보이지만, 저작 소프트웨어에서 베이크되지 않은 회전 커브는 메모리를 더 적게 차지하기 때문에 메모리 면에서 개선됩니다.
기본적으로 Unity는 트랜스폼 인스펙터에 표시되는 오일러 각을 Z, X, Y 순으로 적용합니다.
회전 순서가 Unity의 기본 순서와 다른 오일러 커브가 포함된 애니메이션을 임포트하여 재생 또는 편집하는 경우 회전 필드 옆에 순서 차이가 표시됩니다.
회전 순서가 다른 트랜스폼을 여러 개 편집하는 경우 동일한 오일러 회전을 적용해도 회전 순서가 다른 커브마다 결과가 각기 달라진다는 내용의 경고 메시지가 Unity에 표시됩니다.