애니메이션 탭
애니메이션 클립 추출

오일러 커브 리샘플링

3D 애플리케이션에서 회전은 보통 쿼터니언 또는 오일러 각으로 표현됩니다. 대부분의 경우 Unity는 내부적으로 회전을 쿼터니언으로 표현하지만, 기본적으로 Unity에서 회전 및 방향을 이해하는 것이 중요합니다.

외부 소스의 애니메이션이 포함된 파일을 임포트하면 일반적으로 임포트된 파일에 오일러 포맷의 키프레임 애니메이션이 포함되어 있습니다. Unity는 이 애니메이션을 쿼터니언 값으로 리샘플링한 후 애니메이션의 모든 프레임마다 새 쿼터니언 키프레임을 생성하는 기본 동작을 수행합니다. 그러면 원본 애니메이션과 Unity에 표시되는 애니메이션의 차이가 최소화됩니다.

때로는 리샘플링을 진행해도 쿼터니언으로 나타낸 임포트된 애니메이션이 원본과 충분히 일치하지 않을 수 있습니다. 그렇기 때문에 Unity에는 애니메이션 리샘플링을 끄는 옵션이 있습니다. 따라서 런타임에 원본 오일러 애니메이션 키프레임을 대신 사용할 수 있습니다.

참고: 오일러 커브는 프레임 간 기본 쿼터니언 보간을 사용하면 원하는 결과를 얻을 수 없고 문제가 발생하는 경우에만 최후의 수단으로 사용해야 합니다.

임포트된 애니메이션의 원래 오일러 커브 유지

애니메이션 파일의 원래 오일러 커브 값을 사용하려면 애니메이션(Animation) 탭에서 커브 리샘플링(Resample Curves) 옵션을 선택 해제합니다.

애니메이션(Animation) 탭의 커브 리샘플링(Resample Curves) 옵션
애니메이션(Animation) 탭의 커브 리샘플링(Resample Curves) 옵션

이 옵션을 비활성화하면 Unity는 회전 커브를 커브 타입에 따라 오일러 또는 쿼터니언 모드로 원래 키프레임과 함께 유지합니다.

참고: FBX SDK는 사전 또는 사후 회전이 적용된 조인트의 회전 커브를 자동으로 리샘플링합니다. 따라서 이런 커브는 Unity가 자동으로 쿼터니언 커브로 임포트합니다.

Unity는 매우 다양한 임포트된 파일을 지원하며, 임포트된 커브를 원본과 최대한 비슷하게 유지합니다. 이를 위해 모든 일반적인(반복되지 않는) 오일러 회전 순서를 지원하며 커브를 원래 회전 순서대로 임포트합니다.

오일러 값과 Unity 엔진

원래의(샘플링되지 않은) 오일러 회전을 사용하는 경우 애니메이션을 재생하면 시각적인 측면에서 차이가 거의 없습니다. Unity에서는 내부적으로 이러한 커브를 런타임에도 오일러 표현법으로 저장합니다. 하지만 Unity 엔진이 쿼터니언만 지원하므로 회전 값을 언젠가는 쿼터니언으로 전환해야 합니다.

커브 리샘플링(Resample Curves) 옵션을 비활성화하면 회전 값이 게임 오브젝트에 적용될 때까지 오일러 값으로 유지됩니다. 따라서 최종 결과가 원본과 거의 차이가 없지만 작성 소프트웨어에서 베이크되지 않은 회전 커브에는 메모리가 더 적게 사용되므로 메모리 사용량이 줄어듭니다.

트랜스폼 인스펙터의 오일러 순서(기본 순서가 아닌 경우)

기본적으로 Unity는 트랜스폼 인스펙터에 표시되는 오일러 각을 Z, X, Y 순으로 적용합니다.

회전 순서가 Unity의 기본 순서와 다른 오일러 커브가 포함된 애니메이션을 임포트하여 재생 또는 편집하는 경우 회전 필드 옆에 순서 차이가 표시됩니다.

오브젝트의 로테이션 애니메이션에 기본 순서와는 다른 로테이션 순서가 사용되었음을 인스펙터에서 표시
오브젝트의 로테이션 애니메이션에 기본 순서와는 다른 로테이션 순서가 사용되었음을 인스펙터에서 표시

회전 순서가 다른 트랜스폼을 여러 개 편집하는 경우 동일한 오일러 회전을 적용해도 회전 순서가 다른 커브마다 결과가 각기 달라진다는 내용의 경고 메시지가 Unity에 표시됩니다.

선택한 오브젝트 그룹의 로테이션 애니메이션에 여러 타입의 로테이션 순서가 혼용되고 있음을 인스펙터에서 표시
선택한 오브젝트 그룹의 로테이션 애니메이션에 여러 타입의 로테이션 순서가 혼용되고 있음을 인스펙터에서 표시

  • 2018–04–25 일부 편집 리뷰를 거쳐 페이지 수정됨
애니메이션 탭
애니메이션 클립 추출