%Description%
Constant
Constant (상수) 머티리얼 표현식은 실수 값 하나를 출력합니다. 입력에서 바라는 채널 수와 상관없이 어떤 입력과도 호환되는 가장 흔한 표현식 중 하나입니다.
예를 들어 3채널 벡터를 기대하는 입력에 상수를 연결하면, 그 상수값이 3 요소 모두에 사용됩니다. 수치값 하나를 줄 때는, 설명 부분의 작은 삼각형 아이콘을 사용하여 노드를 접는 것이 좋습니다.
프로퍼티 | 설명 |
---|---|
R | 표현식이 출력하는 실수 값을 나타냅니다. |
예: 0.7, -0.24, 1.1

머티리얼 에디터의 머티리얼 그래프 영역에서 1 키를 누른 채 클릭하면 Constant 표현식을 빠르게 만들 수 있습니다.
Constant2Vector
Constant2Vector 표현식은 2채널 벡터 값, 다른 말로 상수 둘을 출력하는 표현식입니다.
프로퍼티 | 설명 |
---|---|
R | 표현식이 출력하는 벡터의 빨강 또는 첫 번째 채널의 실수 값을 나타냅니다. |
G | 표현식이 출력하는 벡터의 초록 또는 두 번째 채널의 실수 값을 나타냅니다. |
예: (0.4, 0.6), (1.05, -0.3)
사용 예: Constant2Vector 는 마찬가지로 2채널 값을 사용하는 텍스처 좌표 변경에 좋습니다.

머티리얼 그래프 영역에서 2 키를 누른 채 클릭하면 Constant2Vector 노드를 빠르게 만들 수 있습니다.
Constant3Vector
Constant3Vector 표현식은 3채널 벡터 값, 다른 말로 상수 셋을 출력하는 표현식입니다. 각 채널마다 (빨강, 초록, 파랑) 한 가지씩 색이 할당되는 RGB 컬러를 예로 들 수 있습니다.
프로퍼티 | 설명 |
---|---|
프로퍼티 | |
R | 표현식이 출력하는 벡터의 빨강 또는 첫 번째 채널의 실수 값을 나타냅니다. |
G | 표현식이 출력하는 벡터의 초록 또는 두 번째 채널의 실수 값을 나타냅니다. |
B | 표현식이 출력하는 벡터의 파랑 또는 세 번째 채널의 실수 값을 나타냅니다. |
예: (0.4, 0.6, 0.0), (1.05, -0.3, 0.3)

머티리얼 그래프 영역에서 3 키를 누른 채 클릭하면 Constant3Vector 노드를 빠르게 만들 수 있습니다.
Constant4Vector
Constant4Vector 표현식은 4채널 벡터 값, 다른 말로 상수 넷을 출력하는 표현식입니다. 각 채널마다 (빨강, 초록, 파랑, 알파) 한 가지씩 색이 할당되는 RGBA 컬러를 예로 들 수 있습니다.
프로퍼티 | 설명 |
---|---|
R | 표현식이 출력하는 벡터의 빨강 또는 첫 번째 채널의 실수 값을 나타냅니다. |
G | 표현식이 출력하는 벡터의 초록 또는 두 번째 채널의 실수 값을 나타냅니다. |
B | 표현식이 출력하는 벡터의 파랑 또는 세 번째 채널의 실수 값을 나타냅니다. |
A | 표현식이 출력하는 벡터의 알파 또는 네 번째 채널의 실수 값을 나타냅니다. |
예: (0.4, 0.6, 0.0, 1.0), (1.05, -0.3, 0.3, 0.5)
아래의 예시에서는 Constant4Vector 표현식이 머티리얼의 Base Color 와 Opacity 를 정의하는 데 사용됩니다. 상단 핀은 RGB 색상을 출력하며, 하단 핀은 알파 채널의 값을 출력합니다. 알파 값이 0.5로 설정되면 반투명한 머티리얼이 생성됩니다.

머티리얼 그래프 영역에 4 키를 누른 채 클릭하면 Constant4Vector 노드를 빠르게 만들 수 있습니다.
Distance Cull Fade
DistanceCullFade 표현식은 검정에서 하양으로 부드럽게 페이드해 들어가는 스칼라 값을 출력하며, Cull Distance 안에 들어온 오브젝트를 페이드 인 시키는 데 사용할 수 있습니다. 이 노드는 스태틱 메시가 컬 디스턴스를 벗어났을 때 가시성 내에서 갑작스럽게 나타나거나 사라지는 것을 막는 데 주로 사용됩니다.
이 예시에서는 3000 유닛의 컬 디스턴스로 CullDistanceVolume 내에 스피어가 배치되어 있습니다. 오른쪽에 보이는 머티리얼이 구체에 적용되었습니다.

에디터에서 레벨을 재생할 때, 카메라가 컬 디스턴스를 벗어나거나 들어올 때 스피어가 부드럽게 사라지거나 나타납니다.
ParticleColor
ParticleColor (파티클 컬러)는 캐스케이드에서 정의된 파티클별 컬러 데이터에 따라 주어진 파티클의 현재 색으로 묶어 들어가는 표현식입니다. (이미시브 컬러 등) 적합한 채널에 꽂아줘야 합니다.
항목 | 설명 |
---|---|
출력 | |
RGB | 결합된 RGB 벡터 데이터를 출력합니다. |
R | R 채널 데이터를 출력합니다. |
G | G 채널 데이터를 출력합니다. |
B | B 채널 데이터를 출력합니다. |
A | A 채널 데이터를 출력합니다. |

이 예제에서는 ParticleColor 표현식이 파티클 시스템 안에 정의된 대로 파티클에 색을 전해주는 부분을 볼 수 있습니다.
ParticleDirection
ParticleDirection (파티클 방향)은 주어진 파티클의 현재 진행 방향을 나타내는 Vector3 (RGB) 데이터를 파티클 단위별로 출력해 주는 표현식입니다.



파티클 변경 디렉션으로 컬러를 변경하는 방법 참고
이 이미지에서는 각 파티클의 현재 진행 방향에 따라 파티클의 색이 어떻게 변화하는지 확인할 수 있습니다.
ParticleMotionBlurFade
ParticleMotionBlurFade (파티클 모션 블러 페이드)는 모션 블러 결과 파티클이 흐려지는 정도를 나타내는 값을 출력합니다. 값이 1 이면 블러링 없음, 검정은 완전 블러링을 나타냅니다.

ParticleRadius
ParticleRadius (파티클 반경)은 각 파티클 개별적으로 반경을 언리얼 유닛으로 출력합니다. 이를 통해 반경이 일정 지점에 도달하면 머티리얼에 어떠한 변화를 준다던가 하는 작업이 가능합니다.

이 이미지에서 파티클의 반경이 7 유닛을 넘어가면서 녹색에서 빨강으로 변화되고 있습니다.
ParticleRelativeTime
ParticleRelativeTime (파티클 상대 시간)은 파티클의 나이를 0 에서 1 사이 상대적 수치로 출력하는 표현식으로, 생성시 0, 사망시 1 이 됩니다.

이 예제에서는 이미시브 컬러에 파티클 상대 시간을 물려준 것을 볼 수 있는데, 출생시 검정이었다가 사망에 이르면서 하얗게 사라져 갑니다.
ParticleSize
Particle Size (파티클 사이즈)는 파티클 스프라이트의 X Y 크기를 출력하는 표현식입니다. 나중에 이 값을 사용해서 머티리얼의 일정한 면을 구동시킬 수 있습니다.

이미지를 클릭하면 원래 크기로 보입니다.
위 예제에서, Particle Size 를 Particle Color 에 곱하고 있습니다. 눈여겨 볼 것은, Y 축 또는 파티클의 길이에 해당하는 초록 채널만 사용하도록 결과에 마스크를 적용하고 있다는 것입니다. 즉 파티클이 늘어나면서 색이 밝아지고, 줄어들면서 어두워진다는 뜻입니다.
ParticleSpeed
ParticleSpeed (파티클 속력)은 각 파티클의 현재 이동 속력을 초당 언리얼 유닛 단위로 출력하는 표현식입니다.

이 예제에서는 파티클 속력을 파티클의 컬러에 물려주고 있는데, 이걸 10 으로 나눠 좀 더 유의미한 결과를 내고 있습니다. 파티클은 속력이 낮아지면서 까매집니다.
PerInstanceFadeAmount
PerInstanceFadeAmount 표현식은 폴리지와 같은 인스턴스화된 스태틱 메시에 적용된 컬 디스턴스에 기반하여 0부터 1까지의 float 값을 출력합니다. 이 값은 상수이지만 각각의 메시 인스턴스마다 다를 수 있습니다. 이 노드는 주로 InstancedFoliageActor의 컬 디스턴스에 도달했을 때 폴리지와 같은 지형이 갑작스럽게 화면 안팎에서 나타내거나 사라지는 대신 부드럽게 사라지거나 나타나게 하는 데 사용됩니다.
이 바위 머티리얼은 Translucent 블렌드 모드를 사용하며, PerInstanceFadeAmount 표현식이 Opacity 입력에 연결되어 있습니다. InstancedFoliageActor의 *컬 디스턴스(Cull Distances)** 는 각각 1000과 2500으로 설정되어 있습니다.

카메라가 씬을 지나갈 때 바위 인스턴스들이 거리에 따라서 사라지는 것을 주목하세요. 이로써 많은 양의 폴리지가 있는 레벨에서 성능이 향상됩니다.
이 표현식은 InstancedStaticMesh 액터나 InstancedStaticMeshComponents 를 활용하는 다른 액터에 적용되었을 때만 작동합니다.
PerInstanceRandom
PerInstanceRandom은 머티리얼이 적용된 스태틱 메시 인스턴스마다 다른 랜덤 float 값을 출력하는 표현식입니다. InstancedStaticMeshComponent는 각 인스턴스마다 랜덤한 float 값을 설정하며, 이 값은 원하는 대로 사용할 수 있도록 노출됩니다(예를 들어 창문 뒤의 랜덤한 라이트 레벨). 이 값은 메시 각각의 인스턴스마다 상수이지만 다릅니다.
출력 값은 타깃 플랫폼의 0부터 RAND_MAX까지의 정수입니다. 이 머티리얼은 PerInstanceRandom 표현식을 사용하여 각 인스턴스마다 랜덤한 이미시브 값을 제공합니다.

머티리얼이 스피어에 적용되고 폴리지 시스템에서 인스턴스화되면 스피어의 각 인스턴스마다 다른 이미시브 값을 갖게 됩니다.
이 표현식은 InstancedStaticMeshComponents를 활용하는 액터나 InstancedStaticMesh 액터에 적용되었을 때만 작동합니다.
Time
Time 노드는 Panner, Cosine 이나 다른 시간 의존 연산을 하는 머티리얼에 시간의 흐름을 더하는 데 사용됩니다.
프로퍼티 | 설명 |
---|---|
Ignore Pause | true 면 게임이 일시정지되어도 시간은 계속 흘러갑니다. |
Period | true 면 이 기간만큼 구간 반복합니다. 모바일 머티리얼에서는 CPU 에서 최대 정밀도로 Period 계산을 하는 반면, GPU 에서는 절반 정밀도로 계산합니다 (1 분 이상의 긴 기간에 문제가 있을 수 있습니다). |

위 이미지에 설명된 머티리얼 네트워크는 시간의 흐름에 따라 흑백 사이를 사인 곡선같은 모양으로 전환되는 머티리얼을 만들어 줍니다. Period 옵션을 켠 경우, 0 으로 설정하면 사실상 전환이 중지되고, 1 이 되면 Period 가 False 인 효과가 납니다. 수치를 0 에 가깝게 설정하면 머티리얼이 보다 빠른 속도로 변화하게 됩니다. 그래프 결과는 아래 영상에 표시됩니다.
TwoSidedSign
TwoSidedSign 는 양면 커스텀 라이팅 머티리얼 뒷면의 노멀을 뒤집어 Phong 셰이딩과 같은 기능을 내도록 하기에 좋은 표현식입니다. 양면 머티리얼의 앞면은 +1, 뒷면은 -1 입니다.
이 그래프에서 노멀 맵은 TwoSidedSign 표현식과 곱해집니다.

아래 비교 이미지는 TwoSidedSign 표현식을 사용한 경우와 그렇지 않은 경우의 머티리얼 양면을 보여줍니다.

- Top row - TwoSidedSign 노드를 사용하지 않은 경우, 뒷면의 노멀(normal)이 반전되어 브릭이 잘못 렌더링됩니다. 하이라이트가 각 브릭의 왼쪽 상단이 아닌 오른쪽 하단에 표시됩니다.
- Bottom row - 위 그래프에서 보듯이 노말 맵에 TwoSidedSign 표현식을 곱한 경우, 뒷면의 노멀이 올바르게 적용되며 벽돌이 정면과 동일하게 렌더링됩니다.
VertexColor
VertexColor 머티리얼이 적용된 스태틱 메시로부터 버텍스 컬러 데이터를 활용할 수 있게 해줍니다.
항목 | 설명 |
---|---|
RGB | 색의 3채널 RGB 벡터 값 출력입니다. |
R | 색의 빨강 채널 출력입니다. |
G | 색의 초록 채널 출력입니다. |
B | 색의 파랑 채널 출력입니다. |
A | 색의 알파 채널 출력입니다. |
VertexColor 노드는 종종 메시 페인트 모드에서 두 개 이상의 텍스처 간을 블렌딩하는 알파 마스크로 사용됩니다.

이 네트워크는 버텍스 컬러의 빨강 채널을 사용하여 두 개의 텍스처 샘플 간에 Lerp(선형 보간) 작업을 수행합니다. 메시 페인트 모드 에서 빨강 채널에 페인팅할 때, 자갈 텍스처가 나타납니다.
View Property
ViewProperty 필드 오브 뷰나 렌더 타깃 크기와 같은 뷰에 따라 달라지는 상수 프로퍼티를 출력합니다. 해당 노드를 선택하고 디테일 패널에서 드롭다운 메뉴를 사용하여 액세스할 뷰 프로퍼티를 구성할 수 있습니다.

출력의 데이터 유형은 디테일 패널에서 선택한 속성에 따라 달라집니다. 예를 들어 View Size가 선택된 경우, 해당 노드는 뷰포트의 너비와 높이를 픽셀로 나타내는 두 채널 벡터를 출력합니다. 이는 DebugFloat2Values 머티리얼 함수를 통해 출력을 전달하여 아래에서 설명됩니다. 미리보기 뷰포트에 뷰포트의 너비와 높이가 표시됩니다.

Precomputed AO Mask
PrecomputedAOMask (프리컴퓨티드 AO 마스크) 노드는 머티리얼에서 라이트매스 계산된 앰비언트 오클루전(AO)에 접근할 수 있도록 해 줍니다. 자동 텍스처링이나 영역 내 시간에 따라 서서히 쌓여가는 먼지 및 노화 이펙트를 추가하는 데 좋습니다.
프리컴퓨티드 AO 마스크는 베이킹된 라이팅과 함께 동작합니다. 프리컴퓨티드 AO 마스크 결과 확인을 위해서는, 라이트매스를 사용하여 작업 중인 레벨의 라이팅을 빌드해야 합니다.

위 스크린샷은 AO 마스크를 사용하여 먼지 레이어를 배경 구석에 자동으로 블렌딩해 줍니다. AO 마스크를 사용하려면, 월드 세팅 -> 라이트매스 세팅 아래 Use Ambient Occlusion 과 Generate Ambient Occlusion Material Mask 옵션을 둘 다 켜준 뒤 라이팅을 빌드해야 합니다. Max Occlusion Distance 같은 다른 AO 컨트롤은 AO 모습 트윅 작업에 좋습니다. 또 한 가지 Direct / Indirect Occlusion Fraction 둘 다 0 으로 설정하여, 이 AO 가 실제 레벨 라이팅에 영향을 끼치지 않도록 해 주십시오.

PrecomputedAOMask 머티리얼 표현식 노드를 사용하면 어떤 머티리얼의 AO 든 접근할 수 있습니다. PrecomputedAOMask 는 0-1 범위 마스크처럼 작동하는데, AO 에 영향받은 영역은 1, 받지 않은 영역은 0 입니다. 아래 그림에서 Precomputed AO Mask 를 사용하는 머티리얼 구성법을 살펴볼 수 있습니다.
Click image to enlarge.