2026-05-11-TA04
프로시듀얼 셰이더, 마스터 머티리얼로 제작
이전 포스팅에서는 텍스처 이미지 없이 수학적 계산만으로 패턴을 만들어내는 프로시듀얼 셰이더를 직접 구현해 보았습니다.
이번 시간에는 이전 포스팅에서 만든 이 프로시듀얼 셰이더를 바탕으로, 마스터 머티리얼(Master Material)을 제작해 보려고 합니다.
마스터 머티리얼(Master Material)이란?
마스터 머티리얼은 쉽게 말해 수많은 재질을 빠르고 쉽게 찍어낼 수 있는 Template입니다.
색상(Color), 거칠기(Roughness), 금속성(Metallic), 패턴의 크기 등 자주 수치화되어 바뀌는 핵심 속성들을 외부에서 조절할 수 있도록 ‘파라미터(Parameter, 매개변수)’로 뚫어놓은 하나의 거대한 부모(Parent) 머티리얼을 만드는데, 이것이 바로 마스터 머티리얼입니다.
마스터 머티리얼을 만들어야 하는 이유
- Instance 생성 가능
- 마스터 머티리얼 하나만 잘 설계해 두면, 파라미터 수치만 살짝 조절해서 파란색 재질, 거친 재질, 반짝이는 재질 등 수백 개의 머티리얼 인스턴스를 만들어낼 수 있습니다.
- 최적화
- 일반 머티리얼을 매번 새로 만들면 엔진이 셰이더를 새로 컴파일해야 합니다. 하지만 인스턴스를 사용하면 이미 컴파일된 마스터 머티리얼의 연산 구조를 그대로 공유하기 때문에 게임의 성능이 훨씬 가벼워집니다.
- 유지보수
- 만약 게임 내 모든 재질에 눈이 쌓이는 기능을 일괄 추가해야 한다면 수백 개의 재질을 일일이 열어 수정할 필요 없이, 마스터 머티리얼 딱 하나에만 노드를 추가하면 그 틀에서 파생된 모든 인스턴스에 즉시 기능이 업데이트됩니다.
파라미터 변환 작업
이제 기존에 고정되어 있던 값(Constant)들을 외부에서 조절 가능한 파라미터로 변경합니다.
1단계: 애니메이션 조절
- Pulse Speed:
Time노드와Sine노드 사이에Multiply노드를 추가합니다. - Multiply의 B핀에 연결할 Scalar Parameter(
S+ 좌클릭)를 만들고 이름을Pulse_Speed로, 기본값을1.0으로 설정합니다. - Pulse Intensity:
RemapValueRange의 Target High에 꽂힌1.1상수를 우클릭하여 Convert to Parameter(파라미터로 변환)로 바꿉니다. 이름은Pulse_Intensity로 지정합니다.
2단계: 동심원 크기 조절
다음은 OutCircle과 InCircle 섹션에 있는 반지름 값들을 파라미터로 바꿀 차례입니다.
- 외곽 링 파라미터:
OutRadius01(0.5),InRadius01(0.45) 상수 노드를 우클릭해 파라미터로 변환합니다. 그리고 왼쪽 디테일 창의 Group 항목에01. Outer Ring이라고 적어줍니다. - 내부 링 파라미터:
OutRadius02(0.35),InRadius02(0.3) 노드 역시 파라미터로 바꾸고, Group에02. Inner Ring이라고 적어줍니다.
Tip: 이렇게 그룹(Group)을 지정해두면, 나중에 인스턴스 창에서 폴더처럼 깔끔하게 정리되어 나와서 작업하기 편해집니다!
3단계: 십자선 제어기 만들기 (Reticle 섹션)
십자선의 두께를 실시간으로 조절할 수 있도록 만들어 보겠습니다.
- Crosshair Thickness:
If노드의 B핀에 들어간0.01상수를 Scalar Parameter로 변환합니다. - 이름을
Crosshair_Thickness로 지어줍니다.
4단계: 개별 색상 조절 (Color 섹션)
현재 Constant 4Vector로 고정되어 있는 색상들을 인스턴스에서 마음대로 바꿀 수 있도록 Vector Parameter로 변환합니다.
- 개별 색상:
Constant 4Vector노드들을 각각 우클릭하여 파라미터로 변환합니다. - 이름은 각각
OutRing_Color,InnerRing_Color,Crosshair_Color등으로 알아보기 쉽게 지정해 줍니다.
5단계: 머티리얼 인스턴스 생성 및 활용
인스턴스 생성: 콘텐츠 브라우저에서 방금 만든 마스터 머티리얼(M_TargetRing)을 우클릭하고 Create Material Instance를 생성합니다-
우측 디테일 패널을 보면, 우리가 그룹 지어 만든 Pulse_Speed, 색상 파라미터, Crosshair_Thickness 등이 리스트로 나옵니다. 체크박스를 통해 값과 색상을 조절하여서 자유자재로 머티리얼을 만들어낼 수 있습니다.







