언어:
페이지 정보
태그:
수준별:
엔진 버전:
언리얼 엔진

FBX 머티리얼 파이프라인

언리얼 엔진

FBX 파이프라인에는 3D 어플리케이션의 (스태틱/스켈레탈) 메시에 적용된 머티리얼과 텍스처를 언리얼로 전송할 수 있는 기능이 있습니다. 단순한 머티리얼 변환이 이루어지는 방식은, 소스 머티리얼에 사용된 텍스처를 임포트하고, 언리얼 에디터에서 그 텍스처를 적합한 채널에 걸어 주어 머티리얼을 만든 다음, 그 머티리얼을 임포트한 메시에 적용해 주는 식입니다. 이전엔 지루한 수작업으로 처리되던 것을 자동화시켜 메시 임포트 프로세스를 효율적으로 단순화시킬 수 있게 된 것입니다.

UE4 FBX 임포트 파이프라인은 FBX 2016 버전을 사용합니다. 다른 버전을 사용하면 호환성에 문제가 생길 수 있습니다.

이 페이지에는 Autodesk Maya 와 Autodesk 3ds Max 모두에 대한 정보가 포함되어 있습니다. 그러면 툴의 관련 정보가 표시됩니다:

3D 아트 툴 선택

Autodesk Maya

Autodesk 3ds Max

머티리얼 지원

FBX 파이프라인을 통한 임포트는 기본 머티리얼만 지원됩니다. 전송 가능한 머티리얼 종류는:

  • Surface

  • Anisotropic

  • Blinn

  • Lambert

  • Phong

  • Phone E

  • Standard

  • Multi/Sub-Object

전송 가능한 머티리얼 타입에 더해, 그 머티리얼의 특정 기능만 전송됩니다. FBX 머티리얼 파이프라인은 개별 세팅을 전송하지 않으나, 머티리얼 내에서 사용된 맵이나 텍스처는 전송합니다.

현재, 메시와 함께 임포트가 지원되는 맵 (텍스처) 의 경우 머티리얼에 추가가 되거나, 심지어 머티리얼의 기본 입력에 연결되는 것도 있지만, 일부는 수동으로 연결해 줘야 합니다. 게다가 앰비언트 오클루전 에 대해 Maya에서 디퓨즈 채널을 사용하는 등의 흔하지 않은 맵 유형은 임포트되지도 않습니다.

멀티 머티리얼

메시에는 머티리얼 여러 개가 일정 면을 각각 따로 덮는 식으로 적용될 수도 있습니다. 3D 어플리케이션에서 올바르게 셋업한 상태기만 하면야 멀티 머티리얼 메시도 FBX 파이프라인으로 임포트할 수 있습니다.

Maya의 경우 한 메시에 여러 머티리얼을 사용하는 것은 꽤나 간단합니다. 머티리얼을 적용하려는 메시 면을 선택한 다음 그냥 적용하기만 하면 됩니다.

mat_mult_maya.jpg

mat_mult_maya_result.jpg

Maya의 메시에 적용된 각 머티리얼마다 언리얼 에디터에 머티리얼이 하나 생성되며, 임포트된 메시에는 이들 각각의 머티리얼에 대한 머티리얼 슬롯이 생깁니다. 메시에 적용될 때, 머티리얼은 Maya에서와 마찬가지로 메시의 해당 폴리곤에만 영향을 끼칩니다.

3dsMax 에서 멀티 머티리얼은 Multi/Sub-Object (멀티/서브-오브젝트) 머티리얼로 처리됩니다. 메시의 각 면에는 Material ID (머티리얼 ID)가 있으며, 멀티/서브-오브젝트 안의 각 Standard (스탠다드) 머티리얼이 상응하는 머티리얼 ID 에 적용됩니다.

mat_multi_max.jpg

mat_multi_max_result.jpg

멀티/서브-오브젝트 머티리얼 내의 각 스탠다드 머티리얼마다 언리얼 에디터에 하나의 머티리얼이 생성되며, 임포트된 메시에는 이들 각각의 머티리얼에 대한 머티리얼 슬롯이 생깁니다. 메시에 적용될 때, 머티리얼은 3dsMax 에서와 마찬가지로 메시의 해당 폴리곤에만 영향을 끼칩니다.

머티리얼 이름

임포트 프로세스 도중 언리얼 에디터에서 생성되는 머티리얼은 3D 어플리케이션의 머티리얼 이름과 같은 이름으로 생성됩니다. 이름을 어디서 끌어오는가는 메시를 익스포트하는 어플리케이션에 따라 달라집니다.

Maya의 경우, 언리얼 에디터의 머티리얼 이름은 Maya의 메시에 적용된 셰이딩 엔진의 이름에서 따옵니다.

mat_name_maya.jpg

3dsMax 의 경우, 언리얼 에디터의 머티리얼 이름은 3dsMax 에서 메시에 적용된 머티리얼 이름에서 직접 따옵니다.

mat_name_max.jpg

머티리얼 순서

MaterialSlots.png

4.14 이후 머티리얼 순서를 지정하는 데 더이상 Skin## 작명 규칙이 필요치 않게 되었습니다.

머티리얼을 처음 FBX 에서 임포트할 때, 머티리얼 슬롯에 머티리얼 이름이 할당되어, FBX 를 리임포트하면 Orginal Import Material Name (원본 임포트 머티리얼 이름)을 사용하여 머티리얼이 올바른 엘리먼트 인덱스와 일치시킵니다. 이 방법은 Skin## 작명 규칙을 사용하는 것보다 머티리얼 순서를 정하는 데 있어 훨씬 일관적인데, 임포트 프로세스에서 FBX 파일의 이름을 바로 살펴 어느 섹션이 목록에 이미 채워진 기존 머티리얼과 일치시킬 것인지 보장해 줍니다. 여기서 슬롯 이름은 메시의 레벨 오브 디테일(LOD) 섹션의 머티리얼 이름 드롭다운 선택에 일치합니다.

슬롯 이름 텍스트에 커서를 올리면, 툴팁에 임포트된 머티리얼 이름이 나열됩니다. 4.14 전에 임포트된 스태틱 메시 또는 스켈레탈 메시는 툴팁에 머티리얼 이름이 없음 으로 표시됩니다.

MaterialNameTooltip.png

머티리얼 슬롯 추가 또는 제거

머티리얼 슬롯을 추가 또는 제거하려면, 머티리얼 목록 상단의 추가 (+) 버튼, 또는 슬롯 이름 옆의 제거 (x) 버튼을 누르면 됩니다. 추가된 슬롯을 사용하여 하위 LOD 섹션을 덮어쓸 수 있으나, 베이스 LOD 는 덮어쓸 수 없습니다.

AddMaterialSlot.png

RemoveMaterialSlot.png

머티리얼 슬롯 추가 (+)

머티리얼 슬롯 제거 (x)

블루프린트 및 C++ 에서 머티리얼 슬롯 설정

런타임에 컴포넌트에 머티리얼 설정을 할 수 있는데, Set Material By Name 을 호출하여 머티리얼을 지정한 슬롯 이름을 사용하는 것입니다. 그러면 머티리얼 엘리먼트의 인덱스 번호를 하드코딩하지 않고도 찾고자 하는 머티리얼 슬롯을 구할 수 있습니다. 메시의 머티리얼 순서가 바뀌는 경우에도 (슬롯 이름을 대신 레퍼런싱하므로) 게임플레이 코드가 정상 작동합니다.

텍스처 임포트

머티리얼에 3D 어플리케이션에서 디퓨즈든 노멀맵이든 텍스처가 할당되어 있는 경우, FBX Import 프로퍼티Import Textures 세팅이 켜져 있는 한, 텍스처는 언리얼 에디터로 임포트됩니다.

ImportedMeshAndTex.png

언리얼 에디터에 새로 생성된 머티리얼 안에 Texture Sample 표현식이 만들어지며, 임포트된 텍스처는 그 Texture Sample 에 할당됩니다. Texture Coordinate 표현식 역시도 머티리얼에 추가되어 Texture Sample 의 UVs 입력에 연결됩니다. 하지만 약간의 텍스처를 머티리얼 슬롯에 연결해 줄 필요가 있습니다.

FBXMaterial.png

3D 어플리케이션에서 머티리얼에 적용된 텍스처가 언리얼과 호환되지 않는 포맷이라거나, (Maya에서의 Diffuse 처럼) 알려지지 않은 머티리얼 특성에 연결된 경우라면 임포트되지 않습니다. 이 경우와 애시당초 머티리얼 안에 텍스처를 건네주지도 않은 경우, 언리얼 에디터의 머티리얼은 아무 색의 Vector Parameter 로 채웁니다.

NoTexture.png

태그