Alembic 파일 형식(ABC)은 구운 지오메트릭 결과의 복잡한 애니메이션 씬을 비절차적, 애플리케이션 독립적인 설정으로 추출하는 개방형 컴퓨터 그래픽 교환 프레임워크입니다. 언리얼 엔진 4(UE4)는 복잡한 애니메이션을 외부적으로 자유롭게 생성할 수 있게 해주는 Alembic 임포터를 통해 Alembic 파일을 임포트한 후 UE4로 가져와 실시간으로 렌더링할 수 있게 해줍니다.
콘텐츠 가져오기의 여러 다른 형식과 유사한 방식으로 Alembic 파일을 UE4로 가져옵니다.
Alembic 파일 임포터가 포함된 애니메이션 주제에 대한 언리얼 엔진 라이브 스트림을 감시할 수도 있습니다.
Alembic 캐시 익스포트
Autodesk Maya에서 Alembic 캐시를 익스포트하려면 다음 단계를 따릅니다.
-
File Menu 의 Cache > Alembic Cache 아래에서 필요에 따라 Export All to Alembic... 또는 Export Selection to Alembic... 을 선택합니다.
-
Advanced Options 의 Export 창에서 UV Write 및 Write Face Sets 옵션을 활성화하고 Export 를 클릭합니다.
찾은 페이스 세트 이름을 기반으로 머티리얼이 생성되므로 언리얼 엔진 4에 임포트하는 동안 머티리얼을 생성하려는 경우 Write Face Sets 를 활성화해야 합니다.
Alembic 파일 임포트하기
Alembic 파일을 언리얼 엔진 4에 임포트하려면 다음 단계를 따릅니다.
-
콘텐츠 브라우저(Content Browser) 내부에서 임포트(Import) 버튼을 클릭하고 .abc 파일을 선택합니다.
-
Alembic 캐시 임포트 옵션(Alembic Cache Import Options) 창이 표시되고 여기에서 임포트 방법과 옵션을 정의할 수 있습니다. 이 창은 파일의 이름과 임포트한 위치를 보여줍니다. 파일 내에서 에셋을 포함하거나 제외하도록 선택할 수 있는 체크 박스 옵션 또한 확인할 수 있습니다. 이 외에도 상단의 레벨 체크박스를 사용하여 모든 트랙을 포함하거나 제외할 수 있습니다.
현재 언리얼 엔진은 세 개 및 네 개의 면을 가진 폴리곤을 포함하고 있는 메시만 지원합니다. Alembic 데이터는 지오메트리가 네 개 이상의 면을 가진 폴리곤을 포함하고 있거나 지오메트리가 NURBS 또는 SubDiv 표면에서 만들어진 경우 로드할 수 없습니다.
스태틱 메시로 임포트
임포트 프로세스 중 콘텐츠를 임포트하는 방법을 정의할 수 있습니다. 기본적으로 Alembic 임포트 타입(Alembic Import Type) 은 스태틱 메시(Static Mesh) 로 설정됩니다.

Alembic 캐시를 스태틱 메시로 임포트하면 샘플링(Sampling) 섹션에서 프레임 시작(Frame Start) 값으로 지정된 단일 프레임을 하나 또는 여러 개의 스태틱 메시로 임포트하게 됩니다. 해당 프레임의 Alembic 애니메이션은 스태틱 메시 에셋으로서 애니메이션 없이 임포트됩니다. 또한, 다음 세팅도 사용할 수 있습니다.
스태틱 메시 옵션
세팅 | 설명 |
---|---|
메시 병합(Merge Meshes) | 임포트 시 스태틱 메시를 병합할 수 있습니다. 이 경우 UV 설정이 중복되는 문제가 발생할 수 있습니다. |
매트릭스 트랜스포메이션 전파(Propagate Matrix Transformations) | 병합 전 매트릭스 트랜스포메이션을 메시에 적용할 수 있습니다. 자세한 내용은 매트릭스 트랜스포메이션 전파를 참고하세요. |
라이트 맵 UV 생성(Generate Lightmap UVs) | 임포트 시 라이트 맵 UV를 생성할 수 있습니다. |
Alembic 파일을 스태틱 메시로 임포트할 때 데이터가 내부에 여러 메시를 포함하고 있는 경우 메시 병합 을 선택하여 언리얼 엔진 내부에 단일 스태틱 메시를 생성할 수 있습니다. 이 옵션을 비활성화하는 경우 Alembic 파일 안에 있는 각 메시는 개별 스태틱 메시로 UE4에 임포트 됩니다.
매트릭스 트랜스포메이션 전파
메시 병합 을 활성화하는 경우 메시 병합 전에 매트릭스 트랜스포메이션 전파 여부를 고려하세요. 이렇게 하면 Alembic 파일에 포함된 트랜스포메이션 데이터를 가져와 병합 시 메시에 전파함으로써 트랜스폼 데이터를 유지하게 됩니다.
Alembic 캐시로 익스포트하는 아래 생성된 샘플 씬을 고려하십시오.

메시 병합 및 매트릭스 트랜스포메이션 전파 를 통해 파일을 UE4에 스태틱 메시로 임포트하면 다음을 얻게 됩니다.

메시 병합 을 하지만 매트릭스 트랜스포메이션 전파 를 체크하지 않을 경우에는 다음을 얻게 됩니다.

각 메시는 0,0,0 원점에서 병합됩니다.
샘플링 옵션

세팅 | 설명 |
---|---|
샘플링 타입(Sampling Type) | 애니메이션 임포트 도중 수행한 샘플링 타입입니다.
|
프레임 시작 | 애니메이션 샘플링을 시작하기 위한 시작 인덱스입니다. |
프레임 끝(Frame End) | 애니메이션 샘플링을 중지할 마지막 인덱스입니다. |
Alembic 시퀀스 시작 부분에서 비어 있는 프레임 스킵 | 지오메트리가 없이 비어 있는 프리롤 프레임을 스킵하고 실제 데이터를 포함하고 있는 프레임에 임포트를 시작합니다. |
노멀 계산 옵션

세팅 | 설명 |
---|---|
오브젝트당 하나의 스무딩 그룹 적용(Force One Smoothing Group Per Object) | 스무딩 그룹을 계산하는 것보다 각각의 개별 오브젝트에 대한 노멀을 강제로 스무딩합니다. |
하드 에지 각도 한계치(Hard Edge Angle Threshold) | 두 개의 노멀 사이의 각도를 하드로 간주해야 할지를 결정하는 한계치 값입니다. 0에 가까울수록 스무드합니다. |
노멀 재계산(Recompute Normals) | 노멀을 강제로 재계산합니다. |
디제너레이트 트라이앵글 무시(Ignore Degenerate Triangles) | 탄젠트 및 노멀 계산 시 디제너레이트 트라이앵글을 무시합니다. |
노멀 계산 방법
다음은 임포트 타입(Import type) 에 따라 노멀이 어떻게 계산되는지, 파일 내에서 노멀이 어떻게 사용되어 임포트되는지를 간략하게 살펴봅니다.
- 모든 프레임에 대한 노멀을 포함하고 있는 파일을 임포트할 때:
-
스태틱 메시/지오메트리 캐시의 경우 : 언리얼 엔진은 기존 노멀을 사용합니다.
-
스켈레탈 메시의 경우 : 첫 프레임의 노멀이 평균 프레임과 모든 기본 및 모프 타깃에 대한 노멀을 계산하는 데 사용되는 스무딩 그룹을 결정합니다(모든 경우에 수행).
-
- 첫 프레임에 대한 노멀만 포함하고 있는 파일을 임포트할 때:
-
스태틱 메시의 경우: 프레임 0을 사용 중인 경우 언리얼 엔진은 기존 노멀을 사용합니다. 그렇지 않으면 요청된 프레임에 대한 스무딩 그룹과 노멀을 계산합니다.
-
지오메트리 캐시의 경우 : 엔진이 모든 프레임에 대한 스무딩 그룹과 결과 노멀을 계산합니다.
-
- 노멀을 포함하고 있지 않은 파일을 임포트할 때:
- 언리얼 엔진은 스무딩하지 않은 노멀을 계산하고, 계산된 노멀에 따라 스무딩 그룹을 생성하며, 스무딩 그룹 내에서 노멀을 재계산합니다.
'노멀 재계산' 활성화 시 위에서 언급된 노멀이 없는 경우의 경로가 사용됩니다.
스켈레탈 메시 로 임포트할 때 애니메이션에 큰 노멀 델타가 있는 경우 올바르게 보이는 노멀을 구하지 못할 수도 있습니다. 이러한 문제는 모프 타깃이 페이스 및 버텍스 노멀을 바꿀 수 있는 방식으로 인해 발생하는 것으로 알려져 있습니다. 해결책으로는 실험단계의 스킨 캐시 기능을 사용하여 이 문제를 건너뛸 수 있습니다.
스킨 캐시 계산 지원(Support Compute Skincache) 및 모든 스킨 입힌 메시를 강제 탄젠트 재계산(Force all skinned meshes to recompute tangents) 옵션을 사용하여 이 기능을 프로젝트 세팅(Project Settings) 에서 활성화할 수 있습니다.
다음에 에디터를 시작할 때 셰이더를 리컴파일해야 합니다. 스켈레탈 메시 에셋을 열 때는 각 머티리얼 또는 섹션에 대한 탄젠트 재계산(Recompute Tangent) 옵션을 활성화할 수 있어야 합니다.
스무딩 그룹 계산 방법
임포트하는 메시에 하드 에지가 있는 경우 하드 에지 각도 한계치 와 스무딩 그룹 계산이 어떻게 수행되는지 확인하는 것이 좋습니다.


스무딩 그룹을 계산하기 위해서는 먼저 버텍스 및 페이스 노멀을 계산하여 특정 페이스에 연결하는 모든 페이스를 확인하는 데 사용합니다. 노멀 간의 각도를 계산함으로써 에지가 하드한지 소프트한지를 결정할 수 있습니다(Maya의 Soft/Hard Edges 툴과 비슷한 기능). 아래의 좌측 이미지에서는 소프트 에지를, 우측 이미지에서는 하드 에지를 고려합니다. 이렇게 하는 이유는 좌측 이미지상의 두 개의 노멀 간의 각도가 우측 이미지상의 두 개의 노멀 간의 각도보다 작기 때문입니다.

이러한 내용을 알고 있으므로 에지가 소프트에 비해 하드해야 하는 경우를 정의하기 위해 한계치로서 0에서 1 사이의 범위를 생성하도록 내적을 사용합니다. 예를 들어 값이 1에 가까울수록 각도가 더 커져서 하드 에지를 의미하고, 값이 0에 가까울수록 소프트 에지를 의미합니다. 이러한 정보는 소프트 에지를 공유하는 노멀 그룹을 생성하는 데 사용됩니다. 이러한 각 그룹에 대해 스무드 페이스를 생성하는 페이스를 통해 노멀을 스무딩합니다.
오브젝트별로 하나의 스무딩 그룹을 강제하여 각각의 오브젝트가 모든 소프트 에지를 완벽하게 스무딩합니다.
지오메트리 캐시로 임포트
지오메트리 캐시(Geometry Cache) 로 임포트하면 다양한 시퀀스의 버텍스 재생을 가능하게 하는 새로운 애니메이션 에셋 타입을 생성할 수 있습니다.

임포트된 Alembic 애니메이션은 프레임의 플립북으로 플레이되며 퍼포먼스는 메시의 복잡성에 따라 스케일을 조절합니다.
지오메트리 캐시에는 스태틱 메시 임포트 옵션과 동일한 샘플링 및 노멀 계산 세팅이 포함되어 있으며, 머티리얼 및 모션 벡터에 대한 부가적인 지원도 추가됩니다. 이 임포트 방법을 사용하면 찾은 페이스 세트 이름에 따라 머티리얼을 생성할 수 있습니다. 이 방법은 외부 애플리케이션에서 정의되고 Alembic 캐시의 일부로서 익스포트된 페이스 세트가 없는 경우 작동하지 않습니다. 임포트 모션 벡터는 임포터의 '지오메트리 캐시' 카테고리에서 찾은 모션 벡터(Motion Vectors) 옵션을 변경하여 활성화합니다.

지오메트리 캐시 섹션 하단에 있는 작은 아래쪽 화살표를 클릭하여 옵션을 확인합니다.
세팅 | 설명 |
---|---|
모션 벡터 없음(No Motion Vectors) | 지오메트리 캐시에 나타낼 모션 벡터가 없습니다. 기본적으로 활성화됩니다. 이 옵션을 선택하면 모션 블러가 발생하지 않습니다. |
Abc 속도를 모션 벡터로 임포트(Import Abc Velocities as Motion Vectors) | Alembic 파일에서 속도를 임포트하고 이를 모션 벡터로 변환합니다. 디스크에 모션 벡터를 저장하면 파일 사이즈가 커집니다. 지오메트리 캐시가 변경되는 토폴로지(애니메이션 중 변경되는 버텍스 수)를 포함하고 있는 경우 3D 애플리케이션에서 버텍스 속도를 임포트하고 이 옵션을 사용해야 합니다. |
임포트 중에 모션 벡터 계산(Calculate Motion Vectors During Import) | 임포트 중 모션 벡터 계산을 강제합니다. 디스크에 모션 벡터를 저장하면 파일 사이즈가 커집니다. 지오메트리 캐시가 변경되는 토폴로지(애니메이션 중 변경되는 버텍스 수)를 포함하고 있지 않은 경우 이 옵션을 사용합니다. |
모션 벡터를 포함하여 해당 모델의 버텍스 속도를 계산하고 이를 이용하여 모션 블러를 계산합니다.
현재 지오메트리 캐시 에셋은 테셀레이션 설정에 필요한 인접 버퍼를 지원하지 않습니다. 이 문제를 해결하기 위해 모프 타깃을 이용하여 스켈레탈 메시 로 애니메이션을 임포트할 수 있습니다. 이 방법을 사용하면 보다 간단하게 임포트할 수 있으며 테셀레이션을 지원합니다.
스켈레탈로 임포트
이 메서드는 모프 타깃으로서 베이스 포즈를 포함하고 그 사이에서 블렌딩하는 스켈레탈 메시로 Alembic 파일을 임포트하여 올바른 애니메이션 프레임을 완성합니다. 스켈레탈 메시로 임포트하는 것은 버텍스 수가 변경되지 않는 한 Alembic 애니메이션을 재생하는 가장 효율적인 방법입니다.

임포트 중 애니메이션 시퀀스는 주성분 분석(PLA) 체계를 이용하여 간결해지고, 재생 시간 동안 원본 애니메이션을 구성하기 위해 일반 포즈(베이스)를 추출하고 가중치를 적용합니다. 스켈레탈 메시로 임포트할 때 샘플(Sample), 노멀 계산(Normal Calculation) 및 머티리얼 생성(Create Materials) 옵션 외에도 압축 수준을 미세조정하기 위한 퍼센티지 또는 고정된 사용 베이스 수를 정의할 수도 있습니다.
압축 옵션
세팅 | 설명 |
---|---|
메시 병합 | 압축용으로 각각의 메시를 병합합니다. |
매트릭스 애니메이션 굽기(Bake Matrix Animation) | 버텍스 애니메이션으로 매트릭스 전용 애니메이션을 굽습니다. |
베이스 계산 타입(Base Calculation Type) | 모프 타깃으로 저장된 베이스의 최종 숫자가 어떻게 계산이 되는지를 정의합니다.
|
총 베이스에 대한 퍼센티지/최대 수(Percentage (Max Number) of Total Bases) | 모프 타깃으로 지정된 퍼센티지 또는 고정된 베이스 숫자를 생성합니다. 이 세팅은 압축 수준에 대해 더욱 중요한 측면 중 하나입니다. 적은 양의 베이스를 입력하면 애니메이션을 더 압축하지만, 미세한 애니메이션 디테일이 손실될 수 있습니다. 반대로, 높은 숫자의 베이스를 입력하면 압축은 덜 되지만, 더 많은 애니메이션 디테일을 보유할 수 있습니다. |
버텍스 인플루언스 퍼센티지의 최소 수(Minimum Number Of Vertex Influence Percentage) | 모프 타깃을 유효하게 하는 데 필요한 영향력을 받는 버텍스의 최소 퍼센티지를 설정합니다. 이 세팅을 통해 정의된 영향력 퍼센티지를 기반으로 베이스 또는 모프 타깃을 임포트할 시기를 결정할 수 있습니다. 1,000의 모델을 예로 들 수 있습니다. |
원점에서 상당한 버텍스 디스플레이스먼트를 포함하는 애니메이션은 스켈레탈 메시에 디스토션을 유발할 수 있습니다. 기본 계산 타입에 대해 압축 없음 옵션을 선택하여 이러한 이슈를 완화하고 메시 병합을 활성화할 수 있습니다.