이번 튜토리얼에서는 언리얼 엔진 머티리얼에 컬러 반투명 섀도를 드리우기 위한 환경설정 방법을 설명합니다. 이 기능을 유용하게 사용할 수 있는 애플리케이션은 많지만, 일반적으로는 스테인드글라스 창을 통해 투과되는 컬러 라이트에 사용합니다.

언리얼 엔진의 반투명 섀도 컬러.
반투명 섀도 컬러
반투명 섀도 컬러는 섀도가 반투명 표면을 통과할 때 표면의 컬러가 섀도에 적용되는 방식을 설명할 때 사용하는 용어입니다. 투과(Transmission) 라고도 합니다. 머티리얼을 통해 투과되는 컬러 라이트의 양은 0과 1 사이의 오파시티(Opacity) 값과 머티리얼에 드리우는 라이트의 강도에 따라 결정됩니다.
- 예를 들어 오파시티의 값을 0 으로 설정할 경우, 머티리얼은 완전히 투명한 상태가 되어 컬러를 투과시키거나 섀도를 드리우지 않습니다.
- 오파시티를 1 로 설정할 경우, 머티리얼은 완전히 불투명한 상태가 되어 라이트를 전혀 투과시키지 않습니다.
- 오파시티의 값을 0과 1 사이 로 설정할 경우, 해당 오브젝트를 투과하는 라이트에 머티리얼의 베이스 컬러 가 적용되며, 섀도에서 이 컬러의 일부를 상속합니다.
다양한 라이팅 시스템과의 호환성
언리얼 엔진의 모든 라이팅 및글로벌 일루미네이션 시스템은 반투명 섀도 컬러를 지원하지 않습니다. 아래 표에는 라이팅 기능별 반투명 컬러 섀도 지원 여부가 나와 있습니다.
라이팅 시스템 | 반투명 컬러 섀도 |
---|---|
CPU 라이트매스 | 지원, 스태틱 라이트 전용 |
GPU 라이트매스 | 지원, 스태틱 라이트 전용 |
루멘 글로벌 일루미네이션 | 미지원 |
하드웨어 레이 트레이싱 | 미지원 |
패스 트레이서 | 지원, 얇은 반투명 셰이딩 모델 필요 |
이 목록에서 루멘 글로벌 일루미네이션(Lumen Global Illumination) 이 현재 반투명 섀도 컬러를 지원하지 않는다는 점이 눈에 띕니다.
모든 신규 UE5 프로젝트에서는 루멘 글로벌 일루미네이션이 기본으로 활성화되므로, 레벨에서 반투명 컬러 섀도를 사용하려면 프로젝트 세팅(Project Settings) 혹은 포스트 프로세스 볼륨(Post Process Volume) 에서 루멘을 직접 비활성화해야 합니다.
다음 섹션에서는 반투명 컬러 섀도를 드리울 씬과 머티리얼을 구성하는 방법을 설명합니다.
UE5에서 루멘 비활성화
현재 레벨에서 루멘 글로벌 일루미네이션을 비활성화하려면 다음 단계를 따르세요.
-
툴바에서 생성(Create) 아이콘을 클릭하고 볼륨(Volumes) > 포스트 프로세스 볼륨(PostProcessVolume) 을 선택합니다.
-
레벨에서 포스트 프로세스 볼륨을 선택하고 디테일 패널에서 규모(extent) 를 검색합니다. 무한 규모(언바운드)(Infinite Extent (Unbound)) 세팅을 활성화해 포스트 프로세스 볼륨이 레벨 전체에 영향을 주도록 합니다.
-
디테일 패널에서 글로벌 일루미네이션(Global Illumination) 을 검색합니다. 메서드(Method) 세팅을 활성화한 뒤, 드롭다운 메뉴에서 글로벌 일루미네이션 메서드를 루멘(Lumen) 에서 없음(None) 으로 변경합니다.
이렇게 설정하면 현재 레벨의 다이내믹 글로벌 일루미네이션이 비활성화되지만, 대신 라이트매스를 이용해 스태틱 라이트의 글로벌 일루미네이션을 구울 수 있습니다.
라이팅 구성
라이팅을 구성할 때는 무엇보다도 모빌리티(Mobility) 를 스태틱(Static) 으로 설정한 라이트 액터의 반투명 컬러 섀도만 드리울 수 있다는 점에 유의해야 합니다. 사용할 수 있는 라이트 타입은 다음과 같습니다.
- 디렉셔널 라이트
- 포인트 라이트
- 스포트 라이트
- 렉트 라이트
이 페이지의 모든 예제에서는 언리얼 엔진 하루의 시간(Time of Day) 레벨 템플릿에 디렉셔널 라이트를 사용합니다. 아웃라이너에서 디렉셔널 라이트(Directional Light) 를 선택한 뒤, 디테일 패널에서 모빌리티(Mobility) 를 스태틱(Static) 으로 변경하세요.

간접광이 컬러 섀도를 덮을 수 있으므로, 머티리얼의 베이스 컬러에 비해 채도가 낮아 보일 수 있습니다. 레벨에서 반투명 컬러 섀도가 잘 표시되지 않는다면, 광원의 간접광 라이팅 강도(Indirect Lighting Intensity) 를 줄이거나 더 희미한 배경을 사용해 보세요.
머티리얼 구성
머티리얼 프로퍼티
아래에 나와 있는 블렌드 모드(Blend Mode) 및 셰이딩 모델(Shading Models) 중 하나를 사용하여 반투명 컬러 섀도를 드리울 수 있습니다.
- 블렌드 모드(Blend Mode): 반투명(Translucent), 애디티브(Additive), 알파 컴포짓(AlphaComposite), 모듈레이트(Modulate)
- 셰이딩 모델(Shading Model): 기본 릿(Default Lit), 언릿(Unlit), 얇은 반투명(Thin Translucent)
모듈레이트(Modulate) 블렌드 모드를 사용하려면 디테일 패널 프로퍼티에서 모바일 독립 반투명(Mobile Separate Translucency) 을 비활성화해야 합니다.
양면
양면(Two Sided) 프로퍼티 활성화는 선택사항이지만 플레이어가 머티리얼을 적용한 메시의 양면을 보게 하려는 경우 필요합니다. 양면 이 비활성화된 경우, 라이트가 컬러 섀도를 드리우려면 해당 라이트를 머티리얼의 보이는 면에 배치해야 합니다.
릿 반투명 머티리얼 생성
- 새 머티리얼(Material) 에셋을 생성하고 머티리얼 에디터에서 엽니다. 머티리얼 그래프를 아무 곳이나 클릭해 디테일 패널에 머티리얼 프로퍼티를 표시합니다.
-
디테일 패널에서 블렌드 모드(Blend Mode) 를 반투명(Translucent) 으로 변경합니다.
-
양면(Two Sided) 머티리얼 프로퍼티를 활성화합니다(선택사항).
-
스크롤을 내려 반투명(Translucency) 섹션을 펼친 다음 라이팅 모델(Lighting Model) 을 표면 반투명 볼륨(Surface Translucency Volume) 으로 설정합니다.
-
머티리얼 그래프에 텍스처 샘플(Texture Sample) 을 추가합니다. 이 예제에서는 컬러 지오메트리 패턴을 이용해 스테인드글라스 창을 시뮬레이션하고 있지만, 다른 컬러 텍스처로도 가능합니다. 채도가 높은 이미지는 채도가 낮은 이미지보다 더 선명한 섀도를 만듭니다. 텍스처 샘플의 RGB 출력을 메인 머티리얼 노드의 베이스 컬러(Base Color) 입력에 연결합니다.
-
스칼라 파라미터(Scalar Parameter) 를 생성하고 이름을 오파시티(Opacity) 로 변경합니다. 스칼라 파라미터를 선택하고 디테일 패널의 디폴트 값(Default Value) 을 0과 1 사이의 값으로 설정합니다. 슬라이더 최대(Slider Max) 값을 1 로 설정해 오파시티 슬라이더의 값 범위를 제한할 수도 있습니다.
-
스칼라 파라미터를 오파시티(Opacity) 입력에 연결합니다. 머티리얼 그래프는 아래 이미지와 같습니다.
-
툴바에서 적용(Apply) 및 저장(Save) 을 클릭하여 머티리얼을 컴파일하고 에셋을 저장합니다.
라이팅 빌드
머티리얼 에디터를 닫고 머티리얼을 레벨의 스태틱 메시에 적용합니다. 이 예제에서는 언리얼 엔진의 시작용 콘텐츠에 포함된 단순한 평면을 사용합니다. 디렉셔널 라이트는 평면과 거의 수직이 되게 기울어져, 섀도가 아래 지면에 바로 드리워집니다.
툴바에서 빌드(Build) > 라이팅만 빌드(Build Lighting Only) 를 선택해 라이팅을 굽습니다. 라이트매스 빌드가 끝나면 반투명 컬러 섀도가 나타납니다.

섀도의 선명도
섀도의 선명도는 투과된 섀도 컬러를 받는 메시의 라이트 맵 해상도, 라이트의 소스 각도, 텍스처 샘플의 퀄리티 등 여러 요소의 영향을 받을 수 있습니다. 아래 이미지처럼 결과물이 뿌옇거나 초점이 흐릴 경우, 대상 메시의 라이트맵 해상도가 너무 낮을 가능성이 높습니다.

섀도를 드리울 스태틱 메시(지금 같은 경우는 바닥 에셋)를 선택합니다. 디테일 패널에서 스크롤을 라이팅(Lighting) 섹션까지 내립니다. 이후 오버라이드된 라이트맵 해상도(Overriden Light Map Res) 세팅을 활성화하고 새로운 라이트 맵 해상도를 입력합니다.

스태틱 메시의 크기에 따라 선명한 섀도를 얻으려면 비교적 높은 해상도가 필요할 수도 있습니다. 아래 슬라이더는 라이트 맵 해상도를 점차적으로 높이면 어떻게 되는지 보여줍니다.




라이트 맵 해상도는 256에서 1024, 2048, 최대 3072까지 올릴 수 있습니다.
이 사례에서 해상도를 256 에서 최대 2048 까지 높였을 때 결과가 크게 향상되지만, 해상도를 3072까지 높일 경우 체감 효과가 줄어드는 것을 알 수 있습니다. 라이트 맵이 커질수록 퍼포먼스 비용도 증가하므로, 해상도를 필요 이상으로 설정하지 않도록 주의하세요.
머티리얼 베리에이션
오파시티 및 섀도의 채도
머티리얼의 오파시티 값은 섀도의 채도 및 강도에 영향을 줍니다. 아래에서 비교한 3개의 슬라이드는 오파시티(Opacity) 값을 0.2에서 0.9로 늘리면 어떻게 되는지 보여줍니다. 이 같은 야외 환경에서는 오파시티 값을 늘리면 컬러 섀도를 비교적 쉽게 확인할 수 있습니다. 다만 어두운 내부에서는 오파시티 값이 낮아야 더 나은 결과를 얻을 수도 있습니다.



머티리얼의 오파시티를 0.2, 0.5, 0.9로 설정
오파시티 마스크
오파시티 마스크는 반투명 컬러 섀도를 드리울 때 예상대로 작동합니다. 텍스처의 알파 채널을 사용하거나 흑백 텍스처를 오파시티(Opacity) 입력에 연결해, 머티리얼의 어느 부분을 표시하고 섀도가 드리워지게 할지 제어할 수 있습니다. 이 프로세스가 익숙하지 않다면 텍스처 마스킹에 대해 자세히 알아보세요.
다음 예제는 반투명 컬러 섀도를 드리운 마스크드 머티리얼을 보여줍니다. 머티리얼 프로퍼티는 변경되지 않았지만 머티리얼 그래프는 아래와 같이 변경되었습니다.

오파시티(Opacity) 스칼라 파라미터를 메인 머티리얼 노드에 직접 연결하지 않고 흑백 텍스처 샘플로 배수를 적용하고 있습니다. 마스크의 검은색 영역은 투명하고, 하얀색 원형 영역은 눈에 보입니다.
다음 이미지는 라이팅을 리빌드한 결과물입니다.

패스 트레이서를 적용한 컬러 섀도
패스 트레이서는 현재 베타 기능이므로, 프로젝트 세팅에서 몇 가지 세팅을 활성화해야 합니다. 패스 트레이서 활성화에 관한 내용은 이 페이지를 참조하세요.
패스 트레이서에서 다이내믹 컬러 섀도를 지원하긴 하지만, 머티리얼에서 얇은 반투명(Thin Translucent) 셰이딩 모델을 사용하는 경우에 한합니다. 다음 단계에 따라 위 머티리얼을 수정하면 패스 트레이서를 사용해 반투명 컬러 섀도를 드리울 수 있습니다.
- 머티리얼 그래프의 배경을 아무 곳이나 클릭해 디테일 패널에 머티리얼 프로퍼티를 표시합니다.
-
셰이딩 모델(Shading Model) 을 얇은 반투명(Thin Translucent)으로 변경합니다.
-
스크롤을 반투명(Translucency) 섹션까지 내린 후 라이팅 모드(Lighting Mode) 를 서피스 포워드 셰이딩(Surface Forward Shading) 으로 변경합니다.
-
우클릭 메뉴 혹은 머티리얼 팔레트에서 '얇은 반투명(Thin Translucent)'을 검색하고 ThinTranslucentMaterialOutput 노드를 그래프에 추가합니다.
-
텍스처 샘플에서 RGB 출력의 두 번째 연결을 얇은 반투명(Thin Translucent) 머티리얼 노드에 있는 투과율 색(Transmittance Color) 입력으로 드래그합니다. 그래프의 나머지 부분은 아래 이미지와 같이 이전 예제와 그대로입니다.
- 머티리얼을 컴파일하고 레벨의 메시에 적용합니다.
다음 비디오는 패스 트레이서를 활성화했을 때 얇은 반투명 스테인드글라스 머티리얼의 결과물을 보여줍니다. 컬러 섀도가 패스 트레이싱 모드에서 완전히 동적으로 적용되며, 평면 혹은 광원이 회전할 경우 즉시 업데이트됩니다. 비디오에서는 또한 머티리얼의 오파시티와 디렉셔널 라이트의 소스 각도가 바뀌면 어떻게 되지도 보여줍니다.