레이어드 머티리얼 만들기

UE4 의 레이어드 머티리얼 기법에 대한 입문서입니다.

Windows
MacOS
Linux

SnowyStuff.png

이번 짧은 튜토리얼에서는 크롬과 눈, 두 개의 머티리얼 레이어로 된 간단한 레이어드 머티리얼을 만드는 프로세스를 개괄적으로 살펴보겠습니다. 최종 레이어드 머티리얼은 오브젝트 표면 위에 자동으로 눈을 덮어주는 것으로, 실제로는 두 머티리얼을 전환하게 됩니다. 머티리얼 사이의 블렌딩은 항상 윗면 검사를 하므로, 오브젝트를 회전시켜도 눈은 항상 윗면에 남아있게 됩니다.

보통 머티리얼 레이어를 만들 때, 레이어를 머티리얼로 만든 다음 노드 망을 새 함수로 복사해 넣는 것이 일반적입니다. 그러나 시간 절약을 위해, 여기서는 처음부터 함수 안에 레이어를 만들도록 하겠습니다.

단순 크롬

크롬 텍스처

T_ExampleLayers_Metal01_BC.png

T_ExampleLayers_Metal01_N.png

T_ExampleLayers_Metal_1_BC.png

T_ExampleLayers_Metal01_N.png

(우클릭 후 다른 이름으로 저장)

(우클릭 후 다른 이름으로 저장)

첫 머티리얼 레이어로는 표면에 약간의 녹이나 흠이 있는 꽤 단순한 크롬을 만들어 보겠습니다. 약간의 편집 용이성을 보이기 위해 전체적인 모습 제어를 위한 입력도 약간 만들어 주겠습니다.

  1. 콘텐츠 브라우저에서 신규 추가 버튼을 누른 다음 머티리얼 & 텍스처 > 머티리얼 함수 를 선택합니다.

    NewFunction.png

  2. 새 함수 이름을 Layer_Chrome 이라 합니다.

    Layer_Chrome.png

  3. 함수를 더블클릭하여 머티리얼 에디터에서 엽니다.

    EditLayerChrome.png

  4. 머티리얼 그래프 영역에 우클릭하여 컨텍스트 메뉴를 띄운 뒤, Make 를 검색한 다음 Make Material Attributes 를 선택합니다.

    MakeMaterialAttributesContext.png

  5. 새로운 Make Material Attributes 노드를 Output Result 에 연결합니다.

    ConnectedMMA.png

크롬 레이어 망

이 머티리얼 레이어 망은 꽤나 단순합니다. 빠른 구성을 위해 분해시켰습니다. 사용된 텍스처 둘은 베이스 컬러와 러프니스에 쓰인 T_ExampleLayers_Metal_1_BC.png 와 노멀 맵에 쓰인 T_ExampleLayers_Metal01_N.png 로, 둘 다 이 페이지 상단에서 다운로드 가능합니다.

클릭하면 원래 크기로, 또는 우클릭 후 다른 이름으로 저장**

머티리얼 레이어는 코멘트 블록별로 나뉘어 있으며, 자세한 설명은 아래와 같습니다:

  1. 베이스 컬러 - 망의 이 부분은 매우 간단합니다. 크롬 베이스 컬러와 매우 어두운 회색을 Linear Interpolate 로 선형 보간 셋업했습니다. 베이스 컬러는 사실상 Tint 라는 이름의 함수 입력입니다. 이 입력은 Vector3 로 설정되어 있어서, 함수에 컬러를 입력하여 크롬의 색을 바꿀 수 있도록 해 줍니다. 그 둘 사이 보간을 돌리는 데는 T_ExampleLayers_Metal_1_BC 텍스처의 빨강 채널을 사용합니다.

  2. 메탈릭 - 금속을 만들고 있기 때문에, 메탈릭은 1 로 설정합니다.

  3. 러프니스 - 크롬을 만들고 있으므로, 러프니스는 꽤나 낮을 것입니다. 하지만 어두운 부분에서는 러프니스를 약간 증폭시켜서, 머티리얼의 전체적인 모습에 깊이감을 더해주도록 하겠습니다. 사실 이 망은 0.2 에서 0.4 사이로 Lerp 한다는 점만 빼고는 베이스 컬러에 사용한 망과 같습니다.

  4. 커스터마이징 가능 노멀 - 이 망은 단순히 탄젠트 스페이스 노멀 맵을 받은 다음 초록과 빨강 채널을 분리하여, 맵의 디테일을 대량으로 제어합니다. 각 채널마다 다른 함수 입력에서 제공받은 값을 곱해 줍니다. 이 입력은 스칼라 유형의 Normal Multiplier 이름으로 설정되어 있으며, 기본값은 1.0 입니다. 결과를 (AppendVector 노드로) 덧붙인 다음 노멀 맵의 파랑 채널에 덧붙입니다. 그 결과 사용자는 Normal Multiplier 값을 바꾸는 것으로 노멀의 높이를 조정할 수 있게 됩니다.

머티리얼 레이어 함수 작업이 완료되면 저장하세요.

단순 눈

눈 텍스처

T_Cave_Ice_Tiling_D.png

T_Cave_Ice_Noise_N.png

T_Cave_Ice_Tiling_D.png

T_Cave_Ice_Noise_N.png

(우클릭 후 다른 이름으로 저장)

(우클릭 후 다른 이름으로 저장)

이제 눈 이펙트에 대한 머티리얼 레이어를 만들겠습니다:

  1. 콘텐츠 브라우저에서 신규 추가 버튼을 누른 다음 머티리얼 & 텍스처 > 머티리얼 함수 를 선택합니다.

    NewFunction.png

  2. 새 함수 이름을 Layer_Snow 라 합니다.

    Layer_Snow.png

  3. 함수를 더블클릭하여 머티리얼 에디터에서 엽니다.

    EditLayerChrome.png

  4. 머티리얼 그래프 영역에 우클릭하여 컨텍스트 메뉴를 띄운 다음, Make 를 검색하고 Make Material Attributes 를 선택합니다.

    MakeMaterialAttributesContext.png

  5. 새로운 Make Material Attributes 노드를 Output Result 에 연결합니다.

    ConnectedMMA.png

눈 레이어 망

아래는 눈 머티리얼 레이어를 간단히 나눠본 것입니다. 이 레이어는 T_Cave_Ice_Tiling_D.pngT_Cave_Ice_Noise_N.png 를 사용하며, 둘 다 이 페이지 상단에서 다운로드 가능합니다.

클릭하면 원래 크기로, 또는 우클릭 후 다른 이름으로 저장

  1. 베이스 컬러 - 아마도 이 망에서 비교적 복잡한 유일한 부분일 것으로, 그 이유는 순전히 FuzzyShading 머티리얼 함수를 사용하기 때문입니다. 이 함수는 그저 머티리얼이 빛을 받을 때 텍스처가 너무 어두워지지 않도록만 합니다. 약간은 빛이 섬유로 된 표면을 통과할 때와 같아, 벨벳이나 이끼, 여기서는 눈에도 완벽합니다. 그래서 베이스 컬러 텍스처(T_Cave_Ice_Tiling_D.png)에다가 0.3 을 제곱(power)하여 약간의 대비를 제거하는 것으로 시작합니다.

    다음, 그 결과를 연결하는 곳은 FuzzyShading 머티리얼 함수, 머티리얼 에디터의 함수 탭에서 끌어온 것입니다. Core Darkness 는 0, Power 는 1, EdgeBrightness 는 0.5 로 설정합니다. 마지막으로 그 전체에다 매우 창백한 파랑색(R=0.8, G=0.9, B=0.95)을 곱해 차가운 얼음같은 분위기를 냅니다.

  2. 메탈릭 - 이는 비금속성 표면이므로, 메탈릭은 0 으로 설정합니다.

  3. 러프니스 - 눈에 빛이 바로 닿으면 약간 반짝이도록 했으면 하므로, T_Cave_Ice_Tiling_D.png텍스처의 빨강 채널을 사용하여 Lerp 를 0.6 에서 0.3 으로 돌려줍니다.

  4. 노멀 - 이것 역시 꽤나 기본적입니다. 탄젠트 스페이스 노멀 맵의 효과를 낮추고 싶기 때문에, 파랑 채널의 세기를 두 배로 하였습니다. 파랑이 높아지면 노멀 맵 높이의 전체적인 느낌이 낮아집니다.

완료되면 저장하세요!

레이어드 머티리얼

이제 지금까지 만든 레이어를 사용하여 레이어드 머티리얼을 만들 수 있습니다. 항상 표면 위에 눈이 보이도록 인스턴스 커스터마이제이션 여지를 약간 남겨둔 채 셋업하도록 하겠습니다.

  1. 콘텐츠 브라우저에서, 신규 추가 버튼을 클릭한 다음 컨텍스트 메뉴에서 머티리얼을 선택합니다.

    NewMaterialContextMenu.png

  2. 새 함수 이름을 Mat_SnowyChrome 라 합니다.

    Mat_SnowyChrome.png

  3. 머티리얼을 더블클릭하여 머티리얼 에디터에서 엽니다.

    SnowyChromeMatEd.png

  4. 콘텐츠 브라우저에서 기존에 만들어 둔 Layer_ChromeLayer_Snow 머티리얼 레이어를 끌어놓습니다.

  5. 디테일 패널에서 Use Material Attributes (머티리얼 특성 사용) 옵션을 켭니다.

    enableMatAttrib.png

  6. 함수 패널에서 MatLayerBlend_Simple 함수와 World_Aligned_Blend 함수를 끌어놓습니다. MatLayerBlend_Simple 을 사용하여 크롬에서 눈으로의 전환 처리를 하고, World_Aligned_Blend 로 표면이 향한 방향에 따라 Layer Blend 에 힘을 실어 줍니다.

레이어드 머티리얼 망

아래는 Mat_SnowyChrome 망을 분해한 것으로, 각 코멘트 영역마다 설명이 달려 있습니다.

클릭하면 원래 크기로, 또는 우클릭 후 다른 이름으로 저장

  1. 크롬 셋업 - 여기서 크롬 머티리얼 레이어를 들여놓고 두 개의 머티리얼 파라미터를 연결했습니다. 첫째는 Chrome Normal 이라는 스칼라 파라미터로, Normal Multiplier 입력을 돌려주고 있습니다. 둘째는 Chrome Tine 라는 벡터 파라미터로, Tint 입력을 돌려주고 있습니다. 이로써 노멀 맵 세기 조절 뿐만 아니라 나중에 인스턴싱할 때 크롬 색도 변경 가능합니다.

  2. 눈 셋업 - 이보다 단순하기가 힘들지요. 그냥 눈 머티리얼 레이어만 있습니다.

  3. 월드 정렬 블렌드 셋업 - 망 이 부분에서는 Blend Sharpness 를 10 으로 설정하는 것으로 시작합니다. 그런 다음 Snow Bias 라는 스칼라 파라미터를 Blend Bias 입력에 연결합니다. 그러면 머티리얼이 인스턴싱될 때 눈 부분을 편집할 수 있습니다.

  4. MatLayerBlend - 블렌드를 돌리는데 사용되는 노드만 들어있을 뿐입니다. 여기서 베이스 머티리얼은 크롬이고, 탑 머티리얼은 눈입니다. World_Aligned_Blend 가 전환 처리를 합니다.

완료되면 머티리얼 저장하시고요!

레이어드 머티리얼 인스턴싱

이미 머티리얼 레이어의 일정 부분을 돌리는 데 사용되는 파라미터 셋업을 머티리얼에 해 뒀으니, 인스턴싱하여 편집하기만 하면 됩니다. UE4 에서 이 프로세스는 매우 쉽습니다.

  1. 시작용 콘텐츠를 포함시켜 프로젝트를 시작했다면, 새 머티리얼을 적용할 탁자와 의자 세트가 있을 것입니다. 없다면 아무 애셋이든 BSP 든 마음대로 놓아 보세요.

    DefaultLevel.png

  2. Mat_SnowyChrome 머티리얼에 우클릭한 다음 머티리얼 인스턴스 생성 을 선택합니다. 이름은 놔둬도 괜찮습니다.

    CreateMaterialInstance_ContextMenu.png

  3. 콘텐츠 브라우저에서 새 인스턴스를 끌어 씬의 오브젝트 중 하나 위에 놓습니다.

    DragDropMaterialSnowy.png

  4. 인스턴스를 더블클릭한 다음 프로퍼티를 원하는 대로 변경합니다. 크롬의 색, 크롬의 노멀 맵 깊이, 크롬 위에 눈이 얼마나 내렸는지를 변경할 수 있습니다.

    SnowChromeInstanceTesting.png

Tags
Select Skin
Light
Dark

Welcome to the new Unreal Engine 4 Documentation site!

We're working on lots of new features including a feedback system so you can tell us how we are doing. It's not quite ready for use in the wild yet, so head over to the Documentation Feedback forum to tell us about this page or call out any issues you are encountering in the meantime.

We'll be sure to let you know when the new system is up and running.

Post Feedback