얼렘빅 파일 임포터

Alembic, 얼렘빅 파일 임포트 프로세스와 그 임포트 옵션 설명입니다.

Windows
MacOS
Linux

Alembic (얼렘빅) 파일 포맷은 (.abc) 복잡한 컴퓨터 애니메이션 씬을 비절차적인 방식으로 응용 프로그램과 상관 없이 사용할 수 있도록 구운 지오메트리 세트를 추출하는 개방형 컴퓨터 그래픽 교환 프레임워크입니다. 언리얼 엔진 4 (UE4)를 사용하면 Alembic Importer (얼렘빅 임포터)를 통해 얼렘빅 파일을 임포트할 수 있어, 외부에서 자유롭게 복잡한 애니메이션을 생성한 다음 UE4 로 가져와 실시간 렌더링할 수 있습니다.

얼렘빅 파일 임포트는 UE4 로 콘텐츠를 임포트 하는 여러가지 다른 형태와 비슷한 방식으로 이루어집니다.

애니메이션 관련 언리얼 엔진 라이브 스트림 중 얼렘빅 파일 임포터를 다룬 부분이 있습니다.

얼렘빅 캐시 익스포트

선호하는 DCC 프로그램에서 Alembic Cache (얼렘빅 캐시) 파일을 익스포트할 때, 고려해야 할 사항이 몇 가지 있습니다.

3D 아트 툴 선택

Autodesk Maya

Autodesk 3ds Max

  1. File Menu 에서 Cache, Alembic Cache 아래 필요에 따라 Export All to Alembic... (또는 Selection) 을 선택합니다.

    Maya_01.png

  2. Export 창의 Advanced Options 아래 UV WriteWrite Face Sets 옵션을 활성화한 뒤 Export 를 클릭합니다.

    Maya_02.png

    언리얼 엔진으로 임포트하는 도중 머티리얼을 생성하려면 Write Face Sets 를 활성화해야 발견한 Face Set Names 정보에 따라 생성할 수 있습니다.

얼렘빅 파일 임포트

얼렘빅 파일을 언리얼 엔진 4 에 임포트하려면:

  1. 콘텐츠 브라우저 안에서 임포트 버튼을 클릭하고 .abc 파일을 선택합니다.
    AlembicImport_00.png

  2. Alembic Cache Import Options (얼렘빅 캐시 임포트 옵션) 창이 나타나 임포트 방법/옵션을 정의할 수 있습니다. AlembicImport_01.png
    위에서 창 상단에 강조된 부분에 임포트 중인 파일 이름과 위치가 보입니다. 파일 내 애셋에 대한 체크박스 옵션도 보이는데, 임포트 프로세스에 포함 또는 제거시킬 수 있습니다 (맨 위의 체크박스로 모든 트랙을 추가/제거시킬 수도 있습니다).

스태틱 메시로 임포트

임포트 프로세스 도중, 콘텐츠 임포트 방식을 정의할 수 있습니다. 기본적으로 Alembic Import Type (얼렘빅 임포트 유형)은 Static Mesh (스태틱 메시)로 설정됩니다.

ImportType_01.png

얼렘빅 캐시를 스태틱 메시 로 임포트할 때, 이렇게 하면 첫 프레임만 하나 이상의 스태틱 메시로 임포트합니다. 얼렘빅 애니메이션의 단일 프레임이 스태틱 메시 애셋으로 임포트되고 애니메이션은 적용되지 않습니다. 다음과 같은 세팅도 사용할 수 있습니다.

스태틱 메시 옵션

옵션

설명

Merge Meshes

메시 병합 - 임포트 시 스태틱 메시 병합 여부입니다 (UV 세트 겹침 문제가 생길 수 있습니다).

Propagate Matrix Transformations

매트릭스 트랜스폼 전파 - 매트릭스 트랜스폼을 (아래 참고) 병합하기 전 메시에 적용할지 여부입니다.

Generate Lightmap UVs

라이트맵 UV 생성 - 라이트맵 UV 생성 여부입니다.

얼렘빅 파일을 스태틱 메시로 임포트할 때, 데이터 안에 여러 메시가 있는 경우, 언리얼 엔진 안에서 하나의 스태틱 메시로 Merge Meshes (메시 병합)할 수 있습니다. 이 옵션을 해제하면, 얼렘빅 파일의 각 메시는 UE4 에 합쳐지지 않고 개별 스태틱 메시로 임포트됩니다.

매트릭스 트랜스폼 전파

Merge Meshes (메시 병합)을 활성화할 때 고려해야 할 또 다른 사항은 메시를 병합하기 전 Propagate Matrix Transformations (매트릭스 트랜스폼 전파) 여부입니다. 얼렘빅 파일에 들어있는 트랜스폼 데이터를 가져와 메시 병합 이후 전파하여 트랜스폼 데이터를 유지하도록 합니다.

얼렘빅 캐시로 익스포트해서 만든 아래 샘플 씬을 참고하세요.

MayaObjects.png

UE4 에 파일을 스태틱 메시로 임포트할 때 Merge Meshes (메시 병합) 및 Propagate Matrix Transformations (매트릭스 트랜스폼 전파)를 사용한 결과는 다음과 같습니다.

ImportMesh1.png

Merge Meshes (메시 병합)은 하지만 Propagate Matrix Transformations (매트릭스 트랜스폼 전파)는 하지 않은 결과는 다음과 같습니다.

ImportMesh2.png

메시 각각이 0,0,0 원점에서 병합되었습니다.

샘플링 옵션

옵션

설명

Sampling Type

샘플링 유형 - 애니메이션 임포트 도중 수행되는 샘플링 유형입니다.

옵션

설명

Per Frame

프레임 당 - 임포트된 데이터에 따라 애니메이션을 샘플링합니다 (기본 옵션).

Per X Frames

X 프레임 당 - Frame Steps 로 결정된 간격마다 애니메이션을 샘플링합니다.

Per Time Step

시간 단위 당 - Time Steps 로 결정된 간격마다 애니메이션을 샘플링합니다.

Frame Start

프레임 시작 - 애니메이션 샘플링을 시작할 인덱스입니다.

Frame End

프레임 끝 - 애니메이션 샘플링을 끝낼 인덱스입니다.

Skip Empty Frames at Start of Alembic Sequence

얼렘빅 시퀀스 시작시 빈 프레임 생략 - 빈 (프리 롤) 프레임은 건너 뛰고 실제 데이터가 있는 프레임부터 임포트를 시작합니다.

노멀 계산 옵션

옵션

설명

Force One Smoothing Group Per Object

오브젝트 당 하나의 스무딩 그룹 강제 - 스무딩 그룹을 계산하지 않고 각 개별 오브젝트에 대한 노멀에 스무딩을 강제 적용할지 여부입니다.

Hard Edge Angle Threshold

하드 에지 각도 한계치 - 두 노멀 사이 각도가 하드인지 결정하는 기준값입니다 (0 에 가까울 수록 부드럽습니다).

Recompute Normals

노멀 재계산 - 노멀을 강제 재계산할지 여부입니다.

Ignore Degenerate Triangles

퇴화된 트라이앵글 무시 - 탄젠트/노멀을 계산할 때 퇴화된 트라이앵글을 무시할지 여부입니다.

노멀 계산 방법

Import Type (임포트 유형)에 따른 노멀 계산 방법, 파일 안에 사용되는 노멀 임포트 방법에 대한 일반적인 수준의 개요입니다.

  • 모든 프레임에 대한 노멀이 들어있는 파일을 임포트할 때:

    • 스태틱 메시 / 지오메트리 캐시의 경우 - 기존 노멀을 사용합니다.

    • 스켈레탈 메시의 경우 - 첫 프레임의 노멀을 사용하여 스무딩 그룹을 결정하고, 이를 통해 평균 프레임과 모든 베이스/모프 타깃의 노멀을 계산합니다 (항상 그렇게 합니다).

  • 첫 프레임만 노멀이 있는 파일을 임포트할 때:

    • 스태틱 메시의 경우 - 0 프레임을 사용하면, 기존 노멀을 사용합니다. 아니면, 요청된 프레임에 대해 스무딩 그룹과 노멀을 계산합니다.

    • 지오메트리 캐시의 경우 - 모든 프레임에 스무딩 그룹과 결과 노멀을 계산합니다.

  • 노멀이 없는 파일을 임포트할 때:

    • 스무딩되지 않은 노멀을 계산하고, 계산한 노멀에 따라 스무딩 그룹을 생성한 뒤, 스무딩 그룹으로 노멀을 재계산합니다.

Recompute Normals (노멀 재계산)을 활성화하면, 위에 지정된 (노멀 없음) 방법이 사용됩니다.

스켈레탈 메시 로 임포트할 때, 애니메이션에 노멀 델타가 큰 경우, 올바른 노멀을 얻는 데 문제가 생길 수 있습니다. 모프 타깃이 페이스/버텍스 노멀을 변경할 수 있어서 발생하는 알려진 문제입니다. 우회법은 (실험단계) 스킨 캐시 기능을 사용하면 됩니다.

이 기능을 활성화하는 옵션은 프로젝트 세팅 에서 Support Compute Skincache (컴퓨트 스킨캐시 지원) 및 Force all skinned meshes to recompute tangents (모든 스킨 적용 메시에 탄젠트 강제 재계산) 입니다.

그러면 다음 번 에디터를 시작할 때 셰이더가 컴파일됩니다. 스켈레탈 메시를 열면 각 머티리얼/섹션에 대해 Recompute Tangent (탄젠트 재계산) 옵션을 선택할 수 있습니다.

스무딩 그룹 계산 방법

임포트하는 메시에 하드 에지가 나오는 경우, Hard Edge Angle Threshold (하드 에지 각도 한계치) 및 스무딩 그룹 계산 방식을 살펴보는 것이 좋습니다.

하드 에지 각도 1.0

하드 에지 각도 0.0

스무딩 그룹을 계산하려면, 먼저 버텍스/페이스 노멀을 계산한 다음 특정 면에 대해 연결된 모든 면을 바라보는 데 사용합니다. 노멀 사이 각도를 계산하면 에지가 하드인지 소프트인지 알 수 있습니다 (Maya 의 soft/hard edge 툴과 비슷합니다). 아래에서 왼쪽 이미지는 소프트 에지, 오른쪽은 하드 에지로 간주됩니다. 왜냐면 왼쪽 이미지에서 두 노멀 사이 각도가 오른쪽보다 작기 때문입니다.

NormalsExample.jpg

이 상태에서 내적(dot product)으로 0-1 범위 한계치를 생성해서 하드와 소프트의 기준을 정합니다. 예를 들어, 값이 1 에 가까울 수록 각도가 커서 하드 에지가, 0 에 가까울 수록 소프트 에지가 된다는 뜻입니다. 그리고 이 정보를 사용해서 소프트 에지를 공유하는 노멀 그룹을 생성합니다. 이 그룹 각각에 대해, 면 전체의 노멀에 스무딩을 적용하여 부드러운 면을 만듭니다.

오브젝트 당 하나의 스무딩 그룹을 강제 적용하면 개별 오브젝트가 (전체 소프트 에지가 되어) 완전 부드러워 집니다.

지오메트리 캐시로 임포트

Geometry Cache (지오메트리 캐시)로 임포트할 때, 새로운 유형의 애니메이션 애셋이 생성되어 버텍스가 변경되는 시퀀스를 재생할 수 있습니다.

Import04_gc.png

임포트된 얼렘빅 애니메이션은 프레임의 플립북으로 재생되며 퍼포먼스는 메시의 복잡도에 비례합니다.

모든 경우에 최적이지 않을 수 있어 실험단계 옵션으로 간주되고 있습니다.

이런 유형의 임포트 방식에 대한 옵션 중에는 스태틱 메시 임포트 옵션과 똑같은 Sampling (샘플링) 및 Normal Calculation (노멀 계산) 옵션이 있습니다. 지오메트리 캐시로 임포트 역시 발견한 Face Set 이름에 따라 머티리얼 을 생성할 수 있습니다 (이 기능은 외부 응용 프로그램에서 Face Set 를 정의하고 얼렘빅 캐시와 같이 익스포트하지 않으면 작동하지 않습니다).

현재 지오메트리 캐시 애셋은 테셀레이션 구성에 필요한 인접 버퍼를 지원하지 않습니다. 우회법으로 애니메이션을 모프 타깃과 함께 스켈레탈 메시 로 임포트하면 (더 압축된 임포트 방식으로) 테셀레이션을 지원합니다.

스켈레탈로 임포트

이 방법은 얼렘빅 파일을 베이스 포즈를 모프 타깃으로 저장한 스켈레탈 메시 로 임포트한 뒤, 그 둘을 블렌딩하여 올바른 애니메이션 프레임을 만듭니다. 스켈레탈 메시로 임포트하는 것이 버텍스 수에 변화만 없다면 얼렘빅 애니메이션을 재생하는 가장 효율적인 방식입니다.

Import04_sk.png

임포트 도중 애니메이션 시퀀스는 Principal Component Analysis (PCA) 스킴으로 압축되며, 재생 시간 도중 공통(베이스) 포즈를 추출하고 가중치 적용하여 원래 애니메이션을 구성합니다. 스켈레탈 메시로 임포트할 때, Sample, Normal Calculation, Create Materials 옵션에 더해 퍼센티지( 또는 사용되는 베이스 고정 수치)를 정의해서 압축 수준을 조정할 수 있습니다.

압축 옵션

옵션

설명

Merge Meshes

메시 병합 - 개별 메시를 압축 용도로 병합할지 여부입니다.

Bake Matrix Animation

매트릭스 애니메이션 굽기 - 매트릭스 전용 애니메이션을 버텍스 애니메이션으로 구울지 (생략할지) 여부입니다.

Base Calculation Type

베이스 계산 유형 - 모프 타깃으로 저장할 베이스 최종 개수 계산 방법을 결정합니다.

옵션

설명

Percentage Based

퍼센티지 기반 - 지정한 퍼센티지로 사용되는 베이스 개수를 결정합니다 (기본 옵션).

Fixed Number

고정 개수 - 임포트할 베이스의 고정 개수를 설정합니다.

Percentage (Max Number) of Total Bases

총 베이스의 퍼센티지 (최대 개수) - 지정한 베이스(의 퍼센지티 또는 고정 개수)를 모프 타깃으로 생성합니다.

압축 수준을 결정하는 데 중요한 요소 중 하나입니다. 베이스에 낮은 값을 입력하면 애니메이션 압축률이 높아지지만 디테일이 손실될 수 있습니다. 반대로 베이스가 너무 많으면 압축률은 떨어지지만 유지되는 애니메이션 디테일은 많아집니다.

Minimum Number Of Vertex Influence Percentage

버텍스 인플루언스 최소 개수 퍼센티지 - 유효한 모프 타깃을 위해 필요한 영향 받는 버텍스 최소 퍼센티지입니다.

이 세팅은 정의된 인플루언스 퍼센티지에 따라 베이스/모프 타깃을 임포트할 시기를 결정할 수 있습니다. 예를 들어, 버텍스가 1000 개인 모델이 있는데 베이스 중 하나가 딱 10 개의 버텍스에 영향을 줍니다. 이 값을 10 으로 설정한다면, 앞서 언급한 베이스/모프 타깃은 임포트되지 않습니다.

새로운 언리얼 엔진 4 문서 사이트에 오신 것을 환영합니다!

문서 사이트에 대한 의견을 모을 수 있는 피드백 시스템을 포함해서 여러가지 새로운 기능을 준비하고 있습니다. 아래 Documentation Feedback 포럼(영문) 또는 언리얼 엔진 네이버 공식 카페(한글) 중 편하신 곳에 의견이나 문제점을 알려 주세요.

새 시스템이 준비되면 알려 드리겠습니다.

네이버 카페
공식 포럼