머티리얼이란?
재질을 말하며, 언리얼에서는 기본 컬러, 금속 질감, 거칠기 등으로 구성되어 있다.

(Material Domain: Surface 기준)에서 가장 자주 쓰이는 기본 핀들은 렌더링 방식인 PBR(Physically Based Rendering)을 쓴다.

1. 머티리얼 기본 핀의 구조와 역할
🎨 시각적 속성 (Appearance)
- Base Color (색상): 물체의 고유 색이다. 빛의 반사나 그림자가 포함되지 않은 '순수한 색(Albedo)' 데이터여야 한다.
- 주의: 금속(Metallic)인 경우 이 값은 반사되는 빛의 색상이 되고, 비금속인 경우 확산되는 색상이 된다.
- Emissive Color (자체 발광): 물체 스스로 빛을 내는 정도. 1보다 큰 값을 입력하면 Bloom 효과와 함께 주변을 밝히는 광원 역할을 할 수 있다.
🧱 표면 질감 (Surface Logic)
- Metallic (금속성): 표면이 금속(1.0)인지 비금속(0.0)인지 결정. 중간값(0.5 등)은 물리적으로 드물기에 가급적 0 또는 1로 이분법적으로 사용하는 것이 정석.
- Specular (반사율): 비금속 표면의 반사 강도를 미세 조정. 기본값(0.5)으로 충분하며, 특수한 코팅 효과가 아닌 이상 자주 건드리지 않는다.
- Roughness (거칠기): 빛이 얼마나 퍼지는지를 결정. 0(거울처럼 매끄러움)에서 1(분필처럼 거침) 사이의 값을 가진다. 현대 리얼리스틱 그래픽에서 가장 중요한 핀이다.
📐 물리적 형태 및 디테일 (Shape & Detail)
- Normal (노멀): 실제 폴리곤을 늘리지 않고도 표면의 굴곡(디테일)을 눈속임으로 표현. RGB 채널을 가진 노멀 맵을 연결.
- Opacity / Opacity Mask (투명도): 물체의 투명한 정도를 결정. 반투명(Translucent) 모드에서는 Opacity를, 구멍이 뚫린(Masked) 모드에서는 Opacity Mask를 사용.
- Ambient Occlusion (환경광 차폐): 구석진 곳이나 틈새에 생기는 미세한 그림자를 미리 계산해 넣는 핀. 입체감을 더해준다.
값 노드
1, 2, 3, 4 숫자 버튼을 누르면서 머티리얼 그래프를 좌클릭하면 숫자 개수만큼의 값을 가진 노드가 나온다.


x, y, z는 R, G, B와 매칭된다.
프리뷰 버튼 문제


- 강사님 화면과 달리 내 노드에는 프리뷰 버튼이 없는데, 노드 우클릭 후 Start Previewing Node 선택하면 프리뷰 된다.
Lerp(LinearInterpolate)
선형 보간. 한 값에서 다른 값 사이의 중간 지점을 가리킨다.
식: Result = A * (1 - Alpha) + B * Alpha

머티리얼 그래프에서 L + 마우스 좌클릭 하거나 우클릭 후 LinearInterpolate 메뉴를 클릭하면 Lerp 노드가 나온다.



0이면 A값, 1이면 B값이 된다.

Texture Sample
텍스처 샘플 노드는 png, jpg같은 텍스처 파일을 읽고 그 값을 머티리얼에서 읽을 수 있도록 변환해준다.
T + 클릭으로 텍스처 샘플 노드를 생성할 수 있다.



Roughness같은 핀에 색깔을 넣으면 밝기 값(GrayScale)값으로 변환되어 들어간다. 이는 색의 (R + G + B) / 3 을 한 값을 뜻한다. 그래서 보통 육안으로 구분이 가능한 흑백 텍스처를 넣는다.
참고로 위 노드처럼 Lerp가 0, 1이고 흑백 텍스처면 Lerp 적용하지 않은 것과 값이 동일하며, Lerp의 A, B값을 조정하여 최소치와 최대치를 조정하여 값 범위를 수 있다.
UV 좌표계(Coordinate)
- U (Horizontal): 가로 방향 (0 ~ 1)
- V (Vertical): 세로 방향 (0 ~ 1)
좌표계 표시 중 x, y, z는 이미 사용중이라 그래픽스에서는 uv로 대신한다. u는 우측으로 상승, v는 아래로 상승한다. 즉 좌상단이 (0, 0)이고, 우하단이 (1, 1)이다.
머티리얼에서 TextureCoordinate 노드를 사용하면 이 좌표를 가져올 수 있으며, 이를 이용해 텍스처를 반복(Tiling)시키거나 흐르게(Panning) 만들 수 있다.

Tilling값은 축을 늘려서 반복시켜준다.




UV 매핑이란?
3D의 버텍스를 펼쳤을 때 구조도에 버텍스 정보를 통해 면을 매핑하는 것.
Component Mask
벡터(색, 좌표 등) 데이터 중 원하는 채널만 뽑아낼 때 쓰는 것. 보통 머티리얼에서 값은 (R, G, B, A)로 들어오는데, Component Mask는 여기서 필요한 것만 추출한다.



예를 들어 Texture Coordinate 값에서 R값(U축)만 뽑아내면 가로로 0~1까지 표시된다.

R 또는 G처럼 하나만 연결할경우 1채널 단일 값으로 인식하여 흑백으로 나오지만, 2채널 이상 적용되면 B값은 0으로 처리된 R, G값이 나온다.
언제 쓰냐
1️⃣ Roughness / Metallic 같은 단일 값
👉 텍스처에서 특정 채널만 쓰고 싶을 때
2️⃣ Packed Texture (실무에서 매우 중요)
하나의 텍스처에 여러 정보 넣을 때:
G → Roughness
B → Metallic
👉 각각 분리할 때 Component Mask 사용
3️⃣ UV 좌표 분리
👉 U, V 따로 조작 가능
⚠️ 중요한 포인트
👉 출력 타입이 바뀜
| R | float |
| RG | float2 |
| RGB | float3 |
💡 헷갈리는 부분
👉 “왜 그냥 RGB 쓰면 안 됨?”
- Roughness 같은 건 float 1개 필요
- RGB 넣으면 자동 평균됨 (원하지 않는 결과)
👉 그래서 Mask로 정확하게 뽑는 게 중요
투명도 적용하기

0과 1값으로만 이루어진 화살표 이미지를 이용해 화살표 부분만 보이도록 해본다.


검은 부분은 값이 0으로, 흰 부분은 1로 처리되므로 Opacity에 넣을 경우 흰 부분인 화살표만 보이게 된다.


투명도를 적용해도 면의 앞면에만 적용된다. 반대면의 화살표가 투과되어 보이지는 않으므로, 해당 방식으로 보이게 하려면 Two Sided 옵션을 켜주면 된다.
Panner
텍스터 UV를 시간에 따라 계속 움직이는 노드.
UV + Time * Speed로 구현.
- 물 흐르는 효과
- 용암 움직임
- 구름 이동
- 스크롤되는 UI 느낌

Panner 입력:
- Coordinate (UV) → 기본 텍스처 위치
- Speed X / Y → 방향 + 속도
출력:
- 움직인 UV 값




만든 머티리얼을 머티리얼 인스턴스로 만들어준다.

변수로 만들어준 값은 머티리얼 인스턴스에서 변경해줄 수 있다.

'게임 개발 > 학습 일지' 카테고리의 다른 글
| TA 코스 2주차 과제 - 마법 구체 만들기 (0) | 2026.04.15 |
|---|---|
| 언리얼 내배캠 과제 6번- 회전 발판과 움직이는 장애물 (0) | 2026.04.14 |
| TA 코스 1주차 과제 - AI로 3D 모델링 생성 후 언리얼에 적용하기 (0) | 2026.04.13 |
| 언리얼 C++ - 리플렉션 시스템 활용 (0) | 2026.04.12 |
| 언리얼 C++ - Tick 함수로 Actor의 Transform 조정하기 (0) | 2026.04.11 |