본문 바로가기
Computer Graphic/Unreal Engine

UE5 : 미네랄스톤, 광물 머티리얼 만들기(substrate material)

by Deongeun 2024. 10. 4.

언리얼 광물(미네랄스톤) 머티리얼만들기

유튜브를 참고하여 만들어보았다.

 

 

 

사용한 텍스쳐 참고

 

 

1. Base Emissive 효과 만들기

<전체 미리보기>

 

 

 

1) ORM맵에 움직이는 panning을 넣어주고

multiply로 파라미터를 연결하여 Noise Intensity를 조절할 수 있게 해준다.

 

 

 

 

2) 카메라정보를 나타내는 camera Vector를 TransformVector로 'World Space -> Tangent Space'로 변경해주고

X,Y값을 가져오기 위해 componentmask로 R,G만 체크해준다.

위 그림의 텍스쳐노드 마지막 add값과 Multiply해준다.

 

 

 

<결과>

 


*General UV Tiling 만들기*

 

 

1) 파라미터 두개를 각각 x,y로 설정하여 Append

texture coordinate와 multiply하여 조절할 수 있게 한다.

 

 

 

 

2) 위의 Camera vector 연결 노드와 Add하여

General UV Tiling이라는 이름으로 Named Reroute처리 해준다

 

 


 

 

 

다시 Base Emissive로 돌아가서

Basecolor 텍스쳐를 두개 꺼내고

UVs에 General UV Tiling 연결

power을 통해 상수를 각각 곱해준다.

 

하단에 텍스쳐는 UV에 Add를 달아서 

1),2)에서 연결되어 있던 multiply연결시켜준다.

 

두개의 BaseColor 노드를 Add하여 Base Emissive를 만들어 준다.

 

 

 

2. 깜빡이는 Blink 효과

<전체 미리보기>

 

1) 먼저 Basecolor 텍스쳐를 꺼내서 UVs에 

UV Tiling에서 텍스쳐와 파라미터 X,Y를 Append한 값을 multiply한 노드를 연결시켜준다.

(아래 그림 참조)

 

 

 

2) Time 노드를 통해 계속 깜빡거리는 이펙트를 만들건데

* ConstantBiasScale은 scale에 따라 항목을 조절하게 하는 노드로

+ Bias값 * scale값을 산출해낸다.

-Bias: 0

-Scale: 0.5

sine을 연결했을때 sine은 -1/1영역임으로

+1 *0.5 = 0/1을 오가게 되는것

 

그리고 Lerp를 연결하여

A,B를 각각 2,3으로 놓고

alpha에 연결해준다.

 

 

 

 

 

 

3) Basecolor 텍스쳐에 power노드를 연결하고

Lerp 노드를 Exp에 달아준다.

 

그리고 파라미터를 하나 꺼내서 Blink Light Intensity로 하여

깜빡이는 빛의 강도를 조절할 수 있게 multiply로 연결한다.

 

 

 

 

 

4) Color를 파라미터로 설정(Blink Light)

깜빡이는 빛의 컬러를 설정할 수 있게 만들어주고

위의 노드와 multiply 연결

 

 

 

 

 

5) 앞서 Base Emissive에서 만들었던 Add노드를 Color 파라미터와 multiply한 값과

바로 위의 multiply노드를 Add로 연결해준다.

 

6) Fresnel을 꺼내서 

파라미터 두개를 각각 Exponentin, BaseReflectFraction에 연결

Fresnel 결과값과 5)의 Add를 multiply로 연결

 

 

 

 

 

5)는 F90과 연결하고

6)은 Emissive Color와 연결해준다.

 

 

 

 

 

3. Diffuse Albedo 만들기

 

 

 

1) Substrate Metalness-To-DiffuseAlbedo-F0을 꺼낸다.

 

2) Constant를 검정색으로 설정하여 BaseColor와 연결

ORM맵의 B를 Metalic에 연결

파라미터를 Specular로 설정하여 Specular와 연결

 

 

 

 

 

3) ORM맵의 R은 셰이더의 Ambient Occlusion과 연결한다.

 

 

 

 

 

 

4) ORM맵의 G는 Roughness와 연결

5) 위 2)의 Substrate Metalness-To-DiffuseAlbedo-F0노드는 Diffuse Albedo와 연결한다.

 

 

 

 

 

 

 

 

 

 

4. Normal Map만들기

(두개의 노말맵을 섞어쓸 예정)

 

 

1) 파라미터로 Normal Intensity를 조절할 수 있는걸 하나 만든다.

 

2) A노말맵을 ORG Normalmap이라고 함 

R과 G를 각각 따로 Normal Intensity와 연결

 

3) 그리고 결과값을 Append로 묶어준다.

 

 

 

<결과>

 

 

 

 

4) 위에서 사용하지 않은 노말맵의 B를 위의 3)과 Append로 연결한다

5) Componentmask를 연결하고 R,G를 체크한다.

 

 

왼쪽이 4)의 결과, 오른쪽이 5)의 결과

 

 

 

6) 노말맵 B를 가져와서 General UV Tiling를 UVs에 연결

 

7) Component Mask로 R,G를 체크하고 

위의 5) 노드와 Add로 연결해준다.

 

8) Add한 노드와 노말맵B를 Append로 연결

 

9) Normalize노드 연결

 

 

<결과>

 

 

10) 최종 노드는 Normal로 이어준다.

 

 

마스터로 나온 머티리얼을 바탕으로

머티리얼 인스턴스를 만들어 속도나 세부 조정을 해주면 되겠다.