애니메이션 압축은 언리얼 엔진 에서 애니메이션 시스템을 생성할 때 애니메이션 시스템의 전체 파일 크기와 메모리 비용을 낮추기 위해 애니메이션 시퀀스 에셋에서 애니메이션 데이터를 변환하는 프로세스입니다. 애니메이션 압축을 사용하면 전반적인 프로젝트 퍼포먼스가 크게 향상되며, 성능이 다른 여러 하드웨어 타깃 전반에 걸쳐 프로젝트를 확장하는 경우 특히 효과가 좋습니다.
이 문서에서는 언리얼 엔진의 애니메이션 압축 에 대해 자세히 알아볼 수 있습니다.
개요
일반적으로, 움직임이 적은 애니메이션은 애니메이션의 전반적인 퀄리티에 거의 영향을 받지 않으면서 애니메이션 압축으로 큰 효과를 볼 수 있지만, 움직임이 많은 애니메이션의 경우 퀄리티가 크게 저하됩니다. 애니메이션 압축에 대한 접근 방식에 있어서는 구현하는 압축 종류를 프로젝트에서 허용할 수 있는 퀄리티 저하 유형에 맞춰 조정하는 것이 중요합니다.
언리얼 엔진에서는 두 가지 데이터 에셋을 사용하여 애니메이션 시퀀스에 압축을 적용할 수 있는데, 바로 본 압축 세팅(Bone Compression Settings) 및 커브 압축 세팅(Curve Compression Settings) 에셋입니다. 이러한 에셋을 사용하면 압축 코덱 을 적용하여 다양한 압축 메서드를 테스트하고 퀄리티 저하와 파일 크기 감소 사이에서 최적의 균형을 찾아 최상의 결과만 적용할 수 있습니다.
언리얼 엔진에는 프로젝트의 애니메이션 시퀀스에 사용할 수 있는 범용 압축 세팅 에셋 세트가 미리 패키지로 만들어져 있습니다. 이러한 기본 에셋은 엔진(Engine) > 콘텐츠(Content) > 애니메이션(Animation) 폴더에 있습니다.
필요한 경우 애니메이션 압축 방식을 더 잘 제어하기 위해 자신만의 압축 에셋을 생성해도 됩니다. 애니메이션 압축 에셋을 생성하려면 콘텐츠 브라우저(Content Browser) 에서 (+) 추가(Add) 를 클릭하고 애니메이션(Animation) >고급(Advanced) 으로 이동한 다음, 본 압축 세팅(Bone Compression Settings) 또는 커브 압축 세팅(Curve Compression Settings) 에셋을 선택합니다.

언리얼 엔진에서 애니메이션에 압축을 적용하려면 애니메이션 시퀀스 에디터의 에셋 디테일(Asset Details) 패널에서 압축 세팅(Compression Settings) 프로퍼티를 사용하여 애니메이션 시퀀스에 압축 세팅 에셋을 할당하면 됩니다.
애니메이션 시퀀스에 등록된 압축 세팅 에셋을 변경하면 자동으로 새 압축 세팅이 적용됩니다. 또한, 에셋이 마지막으로 압축된 이후 압축 세팅이 변경된 경우, 그리고 파생 데이터 캐시(Derived Data Cache, DDC)가 애니메이션 시퀀스에 등록된 새 압축 세팅 에셋을 감지한 경우 로드 중에, 또는 쿠킹 중에도 자동으로 압축이 적용됩니다.
압축 코덱의 프로퍼티가 변경된 경우에는 압축이 자동으로 적용되지 않는데, 이는 해당 에셋이 많은 에셋에 할당될 수 있기 때문입니다. 특정 애니메이션 세팅 에셋과 함께 등록된 모든 에셋을 수동으로 압축하려면, 해당 압축 세팅 에셋의 툴바 에서 압축(Compress) 버튼을 사용하면 됩니다.
압축 버튼을 클릭하면 압축할 총 에셋 수를 확인하라는 대화창이 표시됩니다.
본 압축
본 압축은 애니메이션 시퀀스 에셋에 포함된 스켈레톤 무브먼트에 대한 데이터 양을 줄이는 데 사용됩니다. 본 압축 코덱은 보간 같은 기법으로 충분할, 키 간 무브먼트가 없거나 적은 특정 본의 애니메이션 데이터를 최적화하려 합니다.
본 압축 세팅 에셋을 생성하고 애니메이션 시퀀스에 할당한 다음에는 해당 본 압축 세팅 에셋을 더블클릭하여 프로퍼티에 액세스해 애니메이션의 스켈레탈 모션 데이터에 적용할 압축 메서드를 선택하거나 조정할 수 있습니다.
| 프로퍼티 | 설명 |
|---|---|
| 코덱(Codecs) | 사용해 볼 애니메이션 본 압축 코드 목록을 여기서 정의할 수 있습니다. 새로운 코덱 배열을 추가하려면 코덱 프로퍼티에 있는 추가(+) 버튼을 클릭합니다. 코덱을 추가하면 선택한 코덱과 연관성이 있는 추가 프로퍼티가 필드에 표시됩니다. 목록의 빈 항목은 애니메이션 시퀀스에서 본 압축을 실행할 때 무시됩니다. 그렇지만, 목록에는 본 데이터를 압축하기 위한 코덱이 하나 이상 포함되어야 합니다. 사용할 수 있는 각 코덱에 대한 자세한 설명과 해당 코덱의 추가 프로퍼티에 대한 설명은 본 압축 코덱 레퍼런스 문서를 참조하세요. |
| 오류 한계치(Error Threshold) | 압축 시 이 오류 한계치 아래에 있는 최상의 코덱을 사용합니다. 기본값은 .1 입니다. |
| 한계치 강제 저하(Force Below Threshold) | 활성화하면 한계치 아래로 떨어질 때까지, 애니메이션 시퀀스의 파일 크기를 커지게 하는 코덱일지라도 오류가 더 적은 코덱을 사용합니다. |
커브 압축
커브 압축은 애니메이션 시퀀스의 커브 데이터 압축에 사용됩니다. 커브 압축 코덱은 보간 같은 기법으로 충분할, 키 간의 변경이 거의 없거나 전혀 없는 값을 대상으로 하는 다양한 메서드를 사용하여 데이터를 최적화함으로써 커브 데이터를 줄이려고 합니다.
커브 압축 세팅 에셋을 생성하고 애니메이션 시퀀스에 할당한 다음에는 해당 커브 압축 세팅 에셋을 더블클릭하여 프로퍼티에 액세스해 애니메이션의 커브 데이터에 적용할 압축 메서드를 선택하거나 조정할 수 있습니다.
| 프로퍼티 | 설명 |
|---|---|
| 코덱 | 여기서 커브 압축 코덱을 정의할 수 있습니다. 코덱 배열을 설정하려면 드롭다운 메뉴를 사용하여 코덱을 선택합니다. 코덱을 추가하면 선택한 코덱과 연관성이 있는 추가 프로퍼티가 필드에 표시됩니다. 목록의 빈 항목은 애니메이션 시퀀스에서 본 압축을 실행할 때 무시됩니다. 그렇지만, 에셋에는 커브 데이터를 압축하기 위한 코덱이 포함되어야 합니다. 사용할 수 있는 각 코덱에 대한 자세한 설명과 해당 코덱의 추가 프로퍼티에 대한 설명은 커브 압축 코덱 레퍼런스 문서를 참조하세요. |
| 최대 커브 오류(Max Curve Error) | 리치 커브(Rich Curves) 압축 시 허용되는 최대 오류 한계치를 설정합니다. 기본값은 0 입니다. |
| 애님 시퀀스 샘플 레이트 사용(Use Anim Sequence Sample Rate) | 활성화하면 오류 샘플 레이트(Error Sample Rate) 프로퍼티 값을 사용하여 압축 중 애니메이션 시퀀스 샘플 레이트를 결정합니다. |
| 오류 샘플 레이트(Error Sample Rate) | 애님 시퀀스 샘플 레이트 사용 프로퍼티가 활성화된 경우, 애니메이션 시퀀스는 이 프로퍼티에 정의된 값을 커브 오류 측정 시 샘플 레이트로 사용합니다. 기본값은 60 입니다. |
압축 코덱
언리얼 엔진의 모든 본 및 커브 압축 코덱에 대한 레퍼런스는 애니메이션 압축 코덱 레퍼런스 문서를 참조하세요.