머티리얼 레이어 사용하기

머티리얼 인스턴싱을 활용하는 복잡한 레이어드 및 블렌디드 머티리얼을 만듭니다.

Choose your operating system:

Windows

macOS

Linux

언리얼 엔진머티리얼 레이어(Material Layers) 시스템은 여러 텍스처와 프로퍼티를 레이어링하고 블렌드해서 레벨의 오브젝트에 맞는 고유의 머티리얼을 만들어낼 수 있는 강력한 툴입니다. 머티리얼 레이어는 머티리얼 함수(Material Functions)를 활용하는 레이어드 머티리얼(Layered Materials) 워크플로와 유사하지만, 과정이 더 간단하고 아티스트에게 한층 큰 유연성을 제공하는 대안적인 접근법입니다.

기존 레이어드 머티리얼은 머티리얼 노드 그래프에서 직접 수정해야 했지만, 머티리얼 레이어 시스템에는 머티리얼 인스턴스 에디터(Material Instance Editor)라는 유저 인터페이스 탭이 있습니다. 아티스트는 이 인터페이스를 통해 훨씬 빠르고 쉽게 머티리얼 인스턴스의 레이어를 교체할 수 있습니다. 이 워크플로를 사용하면 머티리얼 레이어가 인스턴스 에디터에 노출되므로, 레이어드 머티리얼을 커스터마이징하는 데 필요한 기술적 지식과 시간이 크게 감소하여 보다 반복작업적인 사용자 경험이 가능합니다.

주요 장점

머티리얼 레이어의 주요 장점 중 하나는 지나치게 복잡할 수 있는 머티리얼을 향후 편집 가능성 측면에서 훨씬 쉽게 관리할 수 있도록 만들 수 있다는 것입니다. 레이어드 머티리얼 워크플로나 레이어와 머티리얼 함수가 없는 기존 머티리얼로도 같은 종류의 머티리얼을 만들 수 있지만, 머티리얼 레이어 워크플로는 더 제어하기 쉽고, 유연하고, 덜 복잡합니다.

예를 들어, 아래 이미지는 그래프 기반 접근법을 사용한 기존 레이어드 머티리얼과 GUI 기반 머티리얼 레이어를 사용한 머티리얼(오른쪽) 사이의 차이를 나타낸 것입니다. 머티리얼 레이어의 경우 베이스 머티리얼에 필요한 작업량이 적고, 작업과 기능은 에셋 자체에서 수행되는 것을 볼 수 있습니다.

Belica 오리지널 레이어드 머티리얼

Belica with Material Layers

머티리얼 함수 워크플로를 사용한 베이스 머티리얼

머티리얼 레이어 워크플로를 사용한 베이스 머티리얼

머티리얼 인스턴스 생성 시 머티리얼 함수 방식이 가지는 한계로 인해 머티리얼 함수에서 만드는 파라미터는 우선 베이스 머티리얼에서 복제해야 인스턴스드 머티리얼에서 참조할 수 있습니다. 하지만 머티리얼 레이어 에셋 에서 구성한 파라미터는 참조가 가능하며, 영향을 받게 될 입력의 베이스 머티리얼에서는 베이스 머티리얼 레이어만 참조하면 됩니다.

머티리얼 레이어나 머티리얼 레이어 블렌드 에셋 을 열었을 때 표시되는 노드 그래프는 머티리얼 에디터의 그래프와 비슷합니다. 여기서 어트리뷰트의 파라미터화를 비롯해 해당 머티리얼의 모든 로직을 구성하고 사용할 수 있습니다. 따라서 텍스처 입력, 벡터, 상수 등을 컨트롤할 수 있습니다. 머티리얼 레이어 에셋에서 일차적으로 로직을 구성하면 머티리얼에 변경 사항을 적용할 때 관리가 쉬워집니다. 또한, 작업물을 복제할 필요 없이 여러 머티리얼에 걸쳐 비슷한 머티리얼 레이어를 사용할 수도 있습니다. 이 부분은 머티리얼 함수의 작동 방식과 비슷하지만, 응용과 사용이 훨씬 유연합니다.

단일 머티리얼 레이어 에셋의 머티리얼 그래프.

여기 구성된 모든 파라미터는 머티리얼 레이어를 사용하고 있는 베이스 머티리얼의 머티리얼 인스턴스에 있는 스택에 추가된 레이어 에서 참조됩니다. 따라서 머티리얼 인스턴스를 생성할 때 베이스 머티리얼의 파라미터를 복제하지 않아도 됩니다. 머티리얼 인스턴스를 열면 이 인스턴스에 추가한 머티리얼 레이어와 파라미터가 레이어 파라미터(Layer Parameters) 탭에 모두 표시됩니다.

이미지를 클릭하면 최대 크기로 볼 수 있습니다.

머티리얼 레이어 블렌드 에셋 은 이 머티리얼 인스턴스에 참조된 레이어의 마스킹을 제어하는 데 사용됩니다. 각 레이어마다 별개의 머티리얼 레이어 블렌드를 가질 수 있습니다. 스택의 모든 레이어에 하나의 블렌드 에셋만 사용할 수 있는 것은 아닙니다. 레이어에 지정된 블렌드 에셋이 없으면 항상 블렌드 에셋이 없는 최상단 레이어가 아래의 모든 레이어를 오버라이드합니다. 머티리얼 레이어 에셋과 마찬가지로 머티리얼 레이어 블렌드는 자체적인 노드 그래프를 가지고 있습니다. 이 노드 그래프에서는 디폴트와 파라미터화를 위한 나만의 블렌딩 및 마스킹 로직을 구성하고, 다시 이 로직을 여러 머티리얼에 걸쳐 인스턴싱하거나 재사용할 수 있습니다.

이미지를 클릭하면 최대 크기로 볼 수 있습니다.

이 워크플로를 사용하면 머티리얼 로직의 일부를 하나의 에셋으로 간소화시키고 다음에 생성하는 모든 다른 머티리얼에서 이 에셋을 유연하게 재사용할 수 있게 됩니다.

머티리얼 레이어 사용하기

아래는 프로젝트에서 머티리얼의 머티리얼 레이어를 만들고 사용하는 대략적인 과정을 나타낸 것입니다.

  1. 머티리얼 레이어 에셋을 생성합니다.

  2. 머티리얼 레이어 블렌드 에셋을 생성합니다.

  3. 베이스 머티리얼로 사용할 일반 머티리얼 에셋을 생성합니다.

  4. 머티리얼 어트리뷰트 레이어 표현식을 추가해 활성 머티리얼 레이어 스택을 평가하고 병합된 어트리뷰트를 출력합니다.

  5. 베이스 머티리얼의 머티리얼 인스턴스를 생성합니다.

  6. 레이어 파라미터(Layer Parameters) 탭으로 머티리얼의 레이어를 추가, 편집, 관리합니다.

머티리얼 레이어 에셋 타입

머티리얼 레이어 시스템은 두 개의 에셋 타입으로 구성됩니다.

  • 머티리얼 레이어 에셋은 머티리얼의 다른 에셋과 블렌드할 수 있는 레이어를 만드는 데 사용합니다.

  • 머티리얼 레이어 블렌드 에셋은 두 개의 레이어를 함께 블렌드하기 위한 마스크를 생성하는 데 사용합니다.

두 에셋 타입은 모두 콘텐츠 브라우저에서 프로젝트로 추가할 수 있습니다. 추가(Add) 버튼을 클릭하거나 콘텐츠 브라우저에서 우클릭 한 뒤, 고급 에셋 생성(Create Advanced Assets) 아래에 있는 머티리얼(Materials) 하위 카테고리를 펼칩니다. 컨텍스트 메뉴에서 머티리얼 레이어(Material Layer) 또는 머티리얼 레이어 블렌드(Material Layer Blend) 를 선택합니다.

머티리얼 레이어 에셋 생성

머티리얼 레이어 에셋

머티리얼 함수와 마찬가지로 머티리얼 레이어 에셋에는 자체적인 머티리얼 그래프가 있습니다. 이 그래프에서는 노드 그래프 로직을 구성하고 머티리얼의 로직을 미리 볼 수 있습니다. 만들고 싶은 타입의 머티리얼에 대해 머티리얼 어트리뷰트 표현식을 만들거나 설정하여 로직을 관리하고 결과를 출력할 수 있습니다. 예를 들어 크롬이나 이미시브 머티리얼을 생성하고 싶다면, 일반적인 베이스 머티리얼 그래프처럼 이 그래프에서 텍스처와 파라미터를 구성하면 됩니다.

단순한 크롬 모양 머티리얼 레이어의 머티리얼 그래프.

머티리얼 레이어 블렌드 에셋

머티리얼 함수와 마찬가지로 머티리얼 레이어 블렌드 에셋에는 자체적인 그래프가 있습니다. 머티리얼 레이어 블렌드 에셋은 BlendMaterialAttributes 표현식에 자동으로 하단 레이어 입력(Input Bottom Layer)상단 레이어 입력(Input Top Layer) 구성을 포함합니다. 두 입력에 추가 로직을 적용할 수도 있고, 단순히 알파 입력을 사용하여 머티리얼 인스턴스 레이어 스택의 레이어에 대해 자신만의 마스크와 블렌드를 활용할 수도 있습니다.

머티리얼 레이어 블렌드 그래프에서 BlendMaterialAttributes 표현식의 알파를 활용하기 위해 마스크를 사용한 단순 머티리얼 그래프입니다.

이미지를 클릭하면 최대 크기로 볼 수 있습니다.

베이스 머티리얼 그래프

머티리얼 레이어 시스템을 사용할 때 노드 로직 대부분은 머티리얼 레이어와 머티리얼 레이어 블렌드 에셋에서 처리합니다. 베이스 머티리얼의 그래프는 머티리얼 로직이 비교적 적은 편이기 때문에 베이스 머티리얼에 많은 관리가 필요하지 않습니다.

머티리얼 레이어를 사용할 때는 디테일(Details) 패널에서 메인 머티리얼 노드를 선택하고 박스에 체크하여 머티리얼 어트리뷰트 사용(Use Material Attributes) 을 활성화해야 합니다.

머티리얼 어트리뷰트 사용

머티리얼 어트리뷰트 레이어 표현식 은 특정 머티리얼 레이어와 관련이 있는 많은 머티리얼 어트리뷰트를 참조할 때 사용합니다. 이 표현식은 베이스 머티리얼의 출력에도 사용됩니다. 예를 들어, 머티리얼 어트리뷰트 레이어 표현식을 사용해 머티리얼 어트리뷰트를 가져오고 설정하는 크롬 머티리얼을 만들 수 있습니다.

베이스 머티리얼

머티리얼 레이어 표현식

머티리얼 어트리뷰트 레이어 표현식은 활성 머티리얼 레이어 스택을 평가할 때 사용합니다. 머티리얼 어트리뷰트 레이어 표현식을 선택하면 디테일(Details) 패널에서 생성하는 모든 머티리얼 인스턴스와 함께 사용할 기본 레이어를 설정할 수 있습니다. 이 예시에서는 백그라운드 머티리얼만 존재하며, 이 머티리얼은 크롬 머티리얼 레이어 에셋을 참조합니다. 엘리먼트 추가(Add Element) 버튼(+)을 클릭하면 레이어를 추가할 수 있습니다.

머티리얼 어트리뷰트 레이어 표현식 디테일 패널

머티리얼 인스턴스를 생성하거나 이 머티리얼을 직접 프로젝트의 오브젝트에 적용할 때에는 기본 머티리얼이 사용됩니다.

복잡한 머티리얼을 구성하는 경우, 머티리얼 레이어에서 별도로 머티리얼 어트리뷰트를 구성하는 대신에 Get Material AttributesSet Material Attributes 표현식을 사용해 머티리얼 어트리뷰트를 추가하고 수락할 수 있습니다. 이 예시에서는 머티리얼 레이어의 노멀 맵에 다른 노멀 맵을 블렌드했습니다. Set Material Attributes 노드는 블렌드한 새 노멀을 수락하고 업데이트된 머티리얼 어트리뷰트를 출력합니다. 머티리얼 어트리뷰트 표현식에 대한 자세한 내용은 여기에서 확인하세요.

이미지를 클릭하면 확대됩니다.

머티리얼 레이어 및 블렌드 인스턴싱하기

머티리얼을 인스턴싱하여 특정 파라미터에서 고유 머티리얼 인스턴스를 만들 수 있는 것처럼, 머티리얼 레이어와 머티리얼 레이어 블렌드도 인스턴싱할 수 있습니다. 이렇게 하면 노드 그래프에서 파라미터화된 모든 표현식에 액세스할 수 있습니다.

머티리얼 레이어나 머티리얼 레이어 블렌드의 인스턴스를 생성하려면 콘텐츠 브라우저에서 우클릭 한 다음 레이어 인스턴스 생성(Create Layer Instance) 또는 블렌드 인스턴스 생성(Create Blend Instance) 을 각각 선택합니다.

이미지를 클릭하면 확대됩니다.

베이스 머티리얼 그래프에서 파라미터화한 노드는 생성하는 모든 자손 머티리얼 인스턴스에서 액세스할 수 있게 됩니다. 머티리얼 레이어와 블렌드의 경우 머티리얼 인스턴스 에디터의 레이어 파라미터(Layer Parameters) 탭에서 파라미터 목록을 확인할 수 있습니다. 주어진 머티리얼 레이어의 모든 파라미터가 여기 표시됩니다.

레이어 파라미터 탭

각 레이어의 파라미터는 해당 레이어에서만 사용할 수 있습니다. 스택에 같은 머티리얼 레이어를 사용하는 레이어가 여러 개 존재할 경우, 스택의 한 레이어에서 오버라이드된 파라미터 값을 설정해도 같은 레이어 스택의 다른 곳에서는 해당 머티리얼 레이어의 파라미터가 오버라이드되지 않습니다.

파라미터 전달하기

머티리얼 레이어와 블렌드의 파라미터를 머티리얼과 머티리얼 인스턴스로 전달하는 방법은 여러 가지입니다. 여기서 제안하는 방법 대부분은 머티리얼 레이어와 블렌드에 모두 적용됩니다.

머티리얼 레이어 내의 파라미터는 기존 머티리얼 및 함수와 비슷하게 행동합니다.

머티리얼 레이어와 머티리얼 레이어 블렌드 그래프 내에 추가된 파라미터는 해당 레이어나 블렌드 고유의 파라미터가 됩니다. 예를 들어, 아래의 머티리얼 레이어는 벡터 파라미터 하나, 러프니스 맵을 위한 텍스처 파라미터 하나, 메탈릭과 러프니스를 위한 스칼라 파라미터 두 개를 사용합니다. 이 파라미터들은 표준 머티리얼이나 머티리얼 함수의 경우와 마찬가지로 구성되어 있습니다.

머티리얼 레이어 파라미터

머티리얼 레이어를 사용하는 표준 머티리얼을 인스턴스하고 해당 머티리얼 인스턴스의 레이어 파라미터(Layer Parameters) 탭에 이 레이어를 추가하는 경우, 모든 파라미터를 편집할 수 있습니다.

인스턴스 에디터의 파라미터

베이스 머티리얼에서 머티리얼 어트리뷰트 레이어 스택 표현식에 입력 핀을 사용합니다.

표준 머티리얼 그래프의 경우 Set Material Attributes 표현식을 사용하는 입력으로 또 하나의 머티리얼 어트리뷰트가 필요합니다. 이 어트리뷰트는 머티리얼 어트리뷰트 레이어 표현식 스택에 추가된 모든 레이어로 전송됩니다.

이 예시에서는 베이스 노멀 텍스처가 머티리얼 어트리뷰트 레이어 스택으로 전달됩니다.

파라미터를 머티리얼 어트리뷰트 레이어로 전달

그 다음, 머티리얼 레이어 에셋 내에서 Set Material Attributes 표현식을 사용해 입력과 블렌드 인을 설정할 수 있습니다. 또한, 각 레이어는 베이스 스택 머티리얼 어트리뷰트 입력을 사용할 수도 있고 무시할 수도 있습니다.

머티리얼 레이어 입력

레이어 스택

머티리얼 인스턴스 에디터의 레이어 파라미터(Layer Parameters) 탭에서는 머티리얼 레이어의 비저빌리티를 토글하거나, 새 머티리얼 레이어 블렌드 에셋을 할당하거나, 스택의 레이어를 의존성이 높은 것부터 낮은 것 순서로 재정렬할 수 있습니다.

이미지를 클릭하면 최대 크기로 볼 수 있습니다.

레이어 파라미터 탭에서는 해당 머티리얼 레이어나 머티리얼 레이어 블렌드에 노출된 모든 파라미터를 오버라이드하고 편집할 수 있습니다. 이러한 파라미터는 해당 레이어에서만 사용할 수 있습니다. 따라서 이 레이어 스택에 같은 머티리얼 레이어를 여러 번 추가하면 파라미터는 패널의 해당 레이어에 대해서만 고유하게 설정됩니다.

이미지를 클릭하면 최대 크기로 볼 수 있습니다.

또한, 생성한 작업물이 삭제되거나 손실되는 일 없이 스택 내 각 레이어의 비저빌리티를 토글할 수 있습니다. 스택의 레이어 비저빌리티를 토글하려면 눈(Eye) 아이콘을 클릭합니다.

레이어 비저빌리티 토글

레이어 비저빌리티를 토글하면 해당 레이어가 비활성화되고 스택에서 다른 레이어가 이미 사용하고 있는 파라미터 세팅과 레이어 블렌드를 바탕으로 스택의 다음 레이어가 표시됩니다. 아래 예시에서는 갑옷 측면에 대해 고유한 프로퍼티와 블렌드 마스크를 가진 머티리얼 레이어를 비활성화했습니다. 비활성화하면 다음 레이어가 갑옷의 다른 부분에서 사용하는 크롬 머티리얼을 표시합니다.

레이어 비저빌리티: 활성화

레이어 비저빌리티: 비활성화

레이어를 드래그 앤 드롭해서 순서를 변경할 수 있습니다. 최상단 레이어가 아래의 모든 레이어보다 우선시 됩니다. 마지막으로, 스택의 각 레이어는 최상단 레이어가 아래의 모든 레이어보다 우선적으로 드래그 앤 드롭할 수 있습니다. 백그라운드 레이어는 이동할 수 없습니다. 백그라운드 레이어는 다른 머티리얼 레이어가 없을 때 사용하는 기본 머티리얼로서 베이스 부모 머티리얼에 설정됩니다.

추가 리소스