머티리얼 에디터(Material Editor) 는 노드 기반 그래프 인터페이스로, 프로젝트에 사용할 셰이더, 즉 머티리얼 을 만들 수 있는 툴입니다. 머티리얼은 스태틱 및 스켈레탈 메시, 랜드스케이프, UI, VFX를 포함하여 씬에 있는 오브젝트의 외형과 표면 프로퍼티를 정의합니다.
이 사용자 가이드 페이지에서는 머티리얼 에디터 인터페이스를 소개하는 동시에 언리얼 엔진의 머티리얼 생성에 대한 간략한 개요를 제공합니다.
계속 진행하기 전에 핵심 머티리얼 개념 페이지를 읽어보는 것을 권장합니다. 이 페이지는 언리얼의 머티리얼 워크플로에 대한 핵심 배경 정보를 제공합니다.
머티리얼 생성 워크플로
아래 영상은 머티리얼 제작 프로세스에 대한 매우 간단한 데모를 보여줍니다.
위에서 본 바와 같이 간단한 머티리얼을 생성하는 단계는 다음과 같습니다.
- 콘텐츠 브라우저에서 새 머티리얼 에셋을 생성합니다.
- 머티리얼 에디터를 엽니다.
- 머티리얼 표현식 및 함수를 머티리얼 그래프에 배치합니다.
- 머티리얼 표현식을 메인 머티리얼 노드의 입력에 연결하여 머티리얼의 어트리뷰트를 정의합니다.
- 머티리얼을 컴파일하고 저장합니다.
- 레벨의 오브젝트에 머티리얼을 적용합니다.
머티리얼 생성 프로세스의 대부분은 3, 4단계에서 발생하며, 여기서 특정 타입의 표면을 정의하고 창의성을 발휘하는 대부분 작업이 이루어집니다. 머티리얼 표현식(Material Expressions) 및 함수(Functions) 는 언리얼 머티리얼의 구성 요소로, 저마다 머티리얼 그래프에서 특정 작업을 수행합니다. 이러한 노드를 고유한 방식으로 결합하면 물리적 표면의 끝없는 배열을 정의할 수 있습니다.
새 머티리얼 생성하기
-
새 머티리얼 에셋을 생성하는 방법은 두 가지입니다.
-
콘텐츠 브라우저 왼쪽에 있는 추가(+) 버튼을 클릭하고 목록에서 머티리얼(Material) 을 선택합니다.
-
콘텐츠 브라우저 배경의 아무 곳이나 우클릭 하고 컨텍스트 메뉴에서 머티리얼 을 선택해도 됩니다.
-
-
콘텐츠 브라우저에 머티리얼이 생성됩니다. 머티리얼의 이름을 변경하고 섬네일을 더블클릭하여 머티리얼 에디터를 엽니다.
-
머티리얼 에디터 가 열립니다.
머티리얼 에디터 사용하기
여기에 링크된 5개의 페이지에는 머티리얼 에디터의 다양한 부분을 사용하는 방법에 대한 자세한 정보가 있습니다. 페이지 상단의 비디오에 나온 단계를 자세히 설명하며, 머티리얼 생성의 실제 메커니즘을 가르쳐주기 위한 문서입니다. 머티리얼 에디터에서 사용할 수 있는 툴과 상호작용하는 방법을 확실히 이해하려면 아래에 제시된 순서대로 읽는 것이 좋습니다.
라이브 업데이트 옵션
머티리얼 네트워크를 변경할 때 각 변경 사항에 대한 즉각적인 피드백을 실시간으로 확인하는 것이 유용합니다. 머티리얼 에디터에는 라이브 업데이트(Live Update) 메뉴에서 머티리얼 에디터의 어떤 요소가 실시간으로 업데이트되는지 제어할 수 있는 세 가지 옵션인 머티리얼 프리뷰(Preview Material), 리얼타임 노드(Realtime Nodes), 모든 노드 프리뷰(All Node Previews) 가 있습니다.
각 옵션을 사용하면 머티리얼 에디터의 다른 부분에 대한 즉각적인 피드백을 토글할 수 있습니다.
- 머티리얼 프리뷰 - 이 옵션을 사용하면 저장(Save) 또는 적용(Apply) 버튼을 사용하지 않고도 모든 변경 사항을 머티리얼 프리뷰 뷰포트에서 실시간으로 자동 업데이트할 수 있습니다.
- 리얼타임 노드 - 패너와 같은 시간 기반 함수의 영향을 받는 노드가 실시간으로 업데이트됩니다.
- 모든 노드 프리뷰 - 이 옵션을 사용하면 변경이 있을 때마다 네트워크 내의 각 노드에서 셰이더를 리컴파일할 수 있습니다. 이러한 변경에는 새 노드 생성, 노드 삭제, 노드 연결 및 연결해제, 프로퍼티 변경이 포함됩니다. 이 리컴파일은 해당 노드의 머티리얼 프리뷰를 최신 상태로 유지하기 위해 필요합니다. 그러나 이러한 중간 셰이더를 리컴파일하는 데는 시간이 오래 걸릴 수 있으며, 특히 머티리얼에 대규모 네트워크가 포함되면 오래 걸립니다. 변경할 때마다 대기 시간이 오래 걸리는 경우 모든 노드 프리뷰 옵션을 비활성화하는 것이 좋습니다.
패닝 그리드 텍스처에 컬러를 제공하는 벡터 표현식을 곱하는 아래 예시를 보겠습니다.
- 이 예시에서 리얼타임 노드 를 활성화하면 텍스처가 노드의 프리뷰 섬네일에서 실시간으로 패닝됩니다. 리얼타임 노드 를 비활성화하면 패너가 움직이라고 지시하더라도 텍스처는 고정된 상태로 유지됩니다. 그러나 그래프 영역 주위로 마우스를 움직이면 작은 업데이트가 보일 수 있습니다.
- 모든 노드 프리뷰 가 활성화된 경우 벡터 표현식에서 컬러를 변경하면 다운스트림 노드에만 변경사항이 나타납니다. 이 옵션을 비활성화하면 벡터 표현식의 컬러가 실제로 변경되더라도 컬러 변경이 노드 섬네일에 적용되지 않습니다.
모든 노드 프리뷰 를 비활성화한 경우 스페이스바 를 눌러 모든 프리뷰를 수동으로 강제 업데이트할 수 있습니다. 모든 노드 프리뷰 를 비활성화한 다음 변경 사항을 보고 싶을 때마다 스페이스바를 누르면 빠르게 반복할 수 있습니다.
컴파일러 오류
머티리얼 네트워크가 변경될 때마다 머티리얼을 컴파일하여 변경사항을 확인해야 합니다. 머티리얼 네트워크 내 표현식의 필수 입력 에 잘못된 데이터 타입이 전달되거나 연결이 수신되지 않으면 컴파일러 오류가 발생합니다.
이러한 타입의 오류는 두 위치에 표시됩니다.
- 오류를 생성하는 노드의 하단에 '오류!(ERROR!)' 가 표시됩니다.
- 통계(Stats) 패널에도 컴파일러 실패의 원인을 식별하는 오류 메시지가 표시됩니다. 통계 창이 열려 있지 않은 경우 창(Window) > 통계(Stats) 로 이동하여 열 수 있습니다.
컴파일러 오류는 문제가 있음을 알려주고 문제가 발생한 머티리얼 표현식 타입 및 오류 설명에 대한 정보를 제공합니다.
머티리얼 그래프 검색
머티리얼 에디터의 검색 기능을 사용하면 설명에 특정 텍스트가 포함되어 있거나 개별 노드 타입과 관련된 기타 특정 프로퍼티가 포함된 머티리얼 네트워크 내의 모든 노드(코멘트 포함)를 빠르게 찾을 수 있습니다. 이를 통해 노드에 식별 키워드를 쉽게 추가하고 나중에 그래프의 노드 네트워크를 전부 들여다보지 않고도 해당 키워드로 쉽게 이동할 수 있습니다.
창(Window) > 찾기 결과(Find Results) 로 이동하여 이 탭을 열 수 있습니다.
검색 상자에 전체 또는 부분 키워드를 입력하면 머티리얼 그래프 내에 있는 노드의 프로퍼티에 대한 검색이 수행됩니다. 현재 선택한 결과가 강조 표시됩니다.
검색은 다음 프로퍼티 값에 대해 수행됩니다.
검색된 프로퍼티 | 표현식 타입 |
---|---|
내림차순(Desc) | 모든 노드 |
텍스처(Texture) | 텍스처 샘플 |
파라미터 이름(ParamName) | 파라미터 |
텍스트(Text) | 코멘트 |
폰트(Font) | 폰트 샘플 |
머티리얼 함수(Material Function) | 머티리얼 함수 호출 |
검색 시 NAME=
스위치를 사용하여 특정 타입의 표현식을 검색할 수도 있습니다. 예를 들어 모든 텍스처 샘플을 찾으려면
다음과 같이 검색할 수 있습니다.
NAME=texture
검색(Search) 패널에서 새 일치 항목을 클릭하면 해당 일치 항목이 아직 표시되지 않은 경우 그래프 테이블에 표시됩니다.
검색 결과를 지우려면 지우기(Clear) (X) 버튼을 누르면 됩니다.