머티리얼 에디터 레퍼런스

셰이더 제작을 위한 머티리얼 에디터 사용 안내서입니다.

Windows
MacOS
Linux

Material Editor (머티리얼 에디터)는 노드 기반 인터페이스를 통해 지오메트리, 예를 들어 스태틱 및 스켈레탈 메시나 캐스케이드같은 시스템으로 흥미로운 머티리얼을 만들어 적용시킬 수 있는 셰이더 제작 툴입니다.

이 글 전반에 걸쳐 따라해 볼 수 있는 몇 가지 유용한 기능과 함께 머티리얼 에디터를 사용할 때 유용한 일반적인 실전 사례, 예를 들면 코멘트 박스로 어떤 머티리얼 망의 특정 부분에 설명을 달거나, 경유(reroute) 노드로 핀 선을 정리해 그래프 가독성을 높이거나, 머티리얼 통계 창에 오류가 생길 때 무엇을 해야 하는지 등을 살펴볼 수 있습니다.

머티리얼 에디터 열기

머티리얼 에디터는 머티리얼 애셋에 더블클릭 하거나, 콘텐츠 브라우저에서 머티리얼 애셋어 우클릭 하여 뜨는 컨텍스트 메뉴로 열 수 있습니다. 그렇게 하면, 해당 머티리얼이 머티리얼 에디터에 편집 가능한 상태로 열립니다.

머티리얼 표현식 망 코멘트

Comment (코멘트)는 머티리얼이 무슨 일을 하는지 설명을 달아 복잡한 머티리얼 그래프에 무슨 일이 벌어지는지 다른 사람의 이해를 돕는 데 좋은 방법입니다.

머티리얼에 코멘트를 추가하는 방법은 두 가지입니다. 각 노드의 Desc 프로퍼티나 머티리얼 노드에 커서를 올리면 생기는 코멘트 버블(...)에 텍스트를 추가하는 방법, 또는 코멘트 박스로 머티리얼 그래프 일정 구역을 지정하는 방법입니다.

개별 노드에 설명 추가

모든 머티리얼 노드에는 디테일 패널을 통해 접근할 수 있는 Desc 프로퍼티가 있습니다. 이 프로퍼티는 아티스트가 그 노드에 대한 설명을 추가할 수 있도록 하기 위한 용도입니다. 이 프로퍼티를 사용하면, 노드에 커서를 올릴 때 말풍선에 텍스트가 표시됩니다.

노드에 텍스트 설명을 추가하는 방법은 다음과 같습니다:

  • 머티리얼 그래프에서 노드를 선택한 뒤 디테일 패널에서 Desc 프로퍼티를 찾아 텍스트를 입력합니다.

  • 노드에 마우스 커서를 올리고 텍스트 버블 (...) 을 클릭하여 설명을 입력합니다.

추가로 코멘트가 항상 보이게 하려면, 텍스트 버블의 Push Pin (핀 고정) 버튼을 클릭하면 항상 보이게 되어 노드에 올린 커서를 치워도 최소화되지 않습니다.

코멘트 사용

Comment (코멘트)는 머티리얼 망의 특정 부분에 대해 주석을 달 수 있는 다른 방법입니다. 코멘트 박스를 만든 후 잡아 늘여 다수의 노드 그룹을 둘러싸는 방식으로, 개별 노드마다 Desc 프로퍼티로 설명하는 것보다 망 특정 부분에 대한 설명을 달기 좋은 방법입니다.

코멘트는 코멘트 박스 상단에 텍스트 배너로 표시됩니다. 이 텍스트는 그래프 줌 레벨에 따라 크기가 변하지 않으므로, 매우 축소된 상태에서도 코멘트 설명을 읽을 수 있을 것입니다.

코멘트 박스 생성 방법은 다음과 같습니다:

  • 머티리얼 그래프에 마우스 커서가 있는 상태에서 키보드 단축키 C 를 누릅니다. 그래프에 노드가 선택되어 있는 상태라면 코멘트 박스가 그 선택에 맞게 크기가 조정됩니다.

  • 머티리얼 그래프 우클릭 컨텍스트 메뉴에서 새 코멘트 선택 후 코멘트 박스를 추가할 수 있습니다.

코멘트 박스는 몇 가지 추가 기능이 있습니다:

  • 코멘트 박스 안에 들어있는 노드는 한 데 묶여 그룹 코멘트 텍스트를 잡아 끄는 것으로 그 안의 노드도 같이 움직일 수 있습니다. 코멘트 박스 테두리를 잡아 끄는 것으로 프레임 크기를 조절하여 노드를 추가시킬 수 있습니다.

  • 코멘트 박스 컬러 조정을 통해 시각적인 부분을 강화시킬 수 있습니다. 디테일 패널에서 Comment Color 에 색상환 또는 색 선택 툴에서 색을 고르거나 특정 RGB 값을 입력하면 됩니다.

  • 코멘트 텍스트 배너에 더블클릭하거나, 코멘트 박스를 선택하고 디테일 패널에서 Text 프로퍼티를 변경하는 것으로도 코멘트 이름을 변경할 수 있습니다.

라이브 프리뷰, 라이브 노드, 라이브 업데이트

ToolbarLiveButtons.png

망에 변경을 가할 때, 변경할 때마다 피드백을 즉시 확인할 수 있으면 좋습니다. 머티리얼 에디터에는 망 변경에 대한 즉시 피드백을 제공해 줄 수 있는 기능이 있습니다. 라이브 프리뷰, 라이브 노드, 라이브 업데이트 가 그것입니다.

이들의 차이점은 딱 보기에 확실하지는 않지만 각각 머티리얼을 실시간 확인하기 위한 특정 작업을 합니다.

  • 라이브 프리뷰 - 이 옵션은 저장 또는 적용 버튼을 누르지 않아도 변경사항이 머티리얼 프리뷰 창에 실시간으로 자동 업데이트됩니다.

  • 라이브 노드 - 이 옵션은 Panner 머티리얼 표현식처럼 노드가 상수를 변경하여 그래프 안에서 실시간 재생이 가능하도록 해줍니다.

  • 라이브 업데이트 - 이 옵션은 망 안의 각 노드에 변화가 있을 때마다 셰이더를 리컴파일합니다. 그 변화란 새 노드 생성, 노드 삭제, 노드 연결과 해제, 프로퍼티 변경입니다. 이 리컴파일은 해당 노드를 최신 상태로 머티리얼 프리뷰에 그리기 위해 필요합니다. 하지만 이 중간 셰이더 리컴파일은, 머티리얼에 커다란 망이 많을 경우 특히나, 오래 걸릴 수 있습니다. 변경을 가할 때마다 기다리는 시간이 너무 오래 걸린다면, 라이브 업데이트 옵션을 끄는 것이 좋습니다.

아래 예를 살펴봅니다. 멋진 로켓 뼈대의 패닝 텍스처에 벡터 파라미터를 곱하여 색을 지정하고 있습니다.

LiveNodesLiveUpdate.png

  • 이 예제에서, Live Nodes (라이브 노드)를 켜면 그래프의 노드 프리뷰 썸네일에서 로켓 텍스처가 실시간 패닝됩니다. 꺼진 경우, 텍스처는 Panner 가 이동을 하라 해도 그대로 남아있을 것입니다. 하지만 그래프 영역에 마우스를 움직일 때마다 잠깐 업데이트를 확인할 수도 있습니다.

  • 색을 보라색으로 바꾸고자 하는 경우, 라이브 업데이트 가 켜진 상태에서만 변화가 보일 것입니다. 라이브 업데이트가 꺼진 상태에서는 컬러 프로퍼티가 확실히 변경되었다 할지라도 노드에 보이지 않을 것입니다. 아래 예제를 들어 보면, 멋진 로켓 뼈대의 패닝 텍스처에 벡터 파라미터를 곱하여 컬러를 정하고 있습니다.

라이브 업데이트 가 꺼졌을 때에도, 스페이스바 를 수동으로 눌러 모든 프리뷰를 강제 업데이트할 수 있습니다. 라이브 업데이트 를 끄고 변화를 확인하고플 때마다 스페이스바를 누르는 식으로 빠른 반복처리 작업이 가능합니다.

경유 노드

RerouteNode.png

복잡한 머티리얼을 만들 때, 가끔 셰이더 망을 알아보거나 읽기 어려워질 수가 있습니다. 머티리얼 망의 서로 다른 입력들에서 연결하느라 선이 겹치고 꼬일 수 있기 때문입니다. 그럴 때 Reroute (경유) 노드를 사용하면 퍼포먼스에 영향을 끼치지 않고 셰이더 망을 깔끔하게 정리할 수 있습니다. 이 노드는 순수히 시각적인 용도라 인스트럭션 수가 추가되지 않기 때문입니다.

머티리얼 에디터에서 경유 노드를 추가하는 방법은 다음과 같습니다:

  • 우클릭 컨텍스트 메뉴 또는 머티리얼 팔레트 에서 Utility 카테고리 아래 Add Reroute Node (경유 노드 추가)를 끌어 놓습니다. AddRerouteNodeCM.png

  • 연결 선에 더블 클릭 하면 새로운 경유 노드가 삽입 됩니다.

컴파일러 오류

머티리얼 망에 변화가 있을 때마다, 머티리얼을 컴파일해야 변화를 확인할 수 있습니다. 망 내 표현식 필수 입력 중 하나가 연결되어 있지 않거나 데이터 유형이 잘못 전달되는 경우, 컴파일 오류가 발생합니다.

이러한 오류 유형은 두 곳에서 알 수 있습니다.

  • 오류를 내는 노드는 그 아래 "ERROR!" (오류!)라고 표시됩니다.

  • 통계 창에 머티리얼 컴파일이 실패하게 만드는 오류가 표시됩니다. 통계 창이 열려있지 않은 경우, > 통계 에서 열 수 있습니다.

컴파일러 오류는 오류가 발생한 노드 표현식 유형 및 오류에 대한 설명 정보를 제공하여 문제가 있는지와 그 문제가 무엇인지를 알려줍니다.

error_highlight.png

이 이미지에서 MakeMaterialAttributes 노드가 노멀 입력 프로퍼티 관련해서 오류를 내고 있습니다. 통계 창 하단 부분에 나타나 있습니다.

머티리얼 그래프 검색

머티리얼 에디터의 검색 기능으로 머티리얼 망에서 설명이나 각 노드의 전용 프로퍼티에 특정 텍스트가 들어있는 (코멘트 포함) 노드를 빠르게 찾을 수 있습니다. 노드에 식별이 가능한 키워드를 추가해 두고서 나중에 그래프를 이리저리 움직여다니지 않아도 빠르게 점프하는 작업을 쉽게 할 수 있습니다.

이 탭은 > 결과 찾기 에서 열 수 있습니다.

검색창에 키워드를 전체 또는 일부 입력하면 머티리얼 그래프 내 존재하는 노드 프로퍼티를 대상으로 검색합니다. 현재 선택된 결과가 뷰에 강조되어 표시됩니다.

검색 대상 프로퍼티 값은 다음과 같습니다:

검색 프로퍼티

표현식 유형

Desc

모든 노드

Texture

Texture Sample

ParamName

파라미터

Text

Comment

Font

Font Sample

Material Function

MaterialFunctionCall

검색에 NAME= 스위치를 붙이면 특정 유형 표현식을 대상으로 검색할 수도 있습니다. 예를 들어, 모든 텍스처 샘플을 찾는다면 다음과 같습니다:

NAME=texture

검색 패널에서 일치되는 새 값을 클릭하면, 이미 보이는 상태가 아닌 경우 그래프의 뷰에 불러옵니다.

검색창을 비우려면, 비우기 (X) 버튼을 누르면 됩니다.

태그
Select Skin
Light
Dark

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

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

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

네이버 카페
공식 포럼