컬렉션 파라미터
컬렉션 파라미터 표현식은 머티리얼 파라미터 컬렉션(Material Parameter Collection) 에셋을 참조하는 데 사용됩니다. 이 표현식은 머티리얼, 블루프린트 등 다양한 에셋에서 손쉽게 재사용할 수 있는 파라미터 그룹으로,
파라미터 컬렉션에서 글로벌 값을 한 번에 수정하고 해당 컬렉션을 참조하는 다수의 머티리얼로 전파할 수 있습니다. 자세한 내용은 머티리얼 파라미터 컬렉션 문서를 참조하세요.
머티리얼은 최대 2개의 서로 다른 머티리얼 파라미터 컬렉션을 참조할 수 있습니다. 하나는 게임 전체에 적용되는 값에 일반적으로 사용되는 반면, 다른 하나는 레벨별 파라미터에 사용할 수 있습니다. 컬렉션에는 최대 1024개의 스칼라 파라미터와 1024개의 벡터 파라미터를 저장할 수 있습니다.
DynamicParameter
DynamicParameter 표현식은 파티클 이미터가 어떤 식으로든 사용할 값 최대 4개를 머티리얼에 전달하는 컨듀잇을 제공합니다. 이 값은 이미터에 배치된 ParameterDynamic 모듈에 의해 나이아가라에서 설정됩니다.
| Property | Description |
|---|---|
파라미터 이름(Param Names) | 파라미터 이름의 배열입니다. 이 값은 머티리얼 에디터에서 표현식 출력에 표시되는 텍스트를 결정하며, 나이아가라의 ParameterDynamic 모듈에 있는 파라미터를 참조하는 데 사용되는 이름이 됩니다. |
디폴트 값(Default Value) | 파라미터가 출력하는 초기 값을 지정합니다(Vector4). |
| 출력 | |
Param1 | 파라미터 이름 프로퍼티의 첫 번째 파라미터 값을 출력합니다. 이 출력의 이름은 파라미터 이름 프로퍼티의 값에 따라 변경될 수 있습니다. |
Param2 | 파라미터 이름 프로퍼티의 두 번째 파라미터 값을 출력합니다. 이 출력의 이름은 파라미터 이름 프로퍼티의 값에 따라 변경될 수 있습니다. |
Param3 | 파라미터 이름 프로퍼티의 세 번째 파라미터 값을 출력합니다. 이 출력의 이름은 파라미터 이름 프로퍼티의 값에 따라 변경될 수 있습니다. |
Param4 | 파라미터 이름 프로퍼티의 네 번째 파라미터 값을 출력합니다. 이 출력의 이름은 파라미터 이름 프로퍼티의 값에 따라 변경될 수 있습니다. |
FontSampleParameter
FontSampleParameter 표현식은 여러 인스턴스에서 다른 폰트를 쉽게 사용할 수 있도록 머티리얼 인스턴스 상수에서 폰트 기반 파라미터를 노출하는 방법을 제공합니다. 폰트의 알파 채널에는 폰트 외곽선 값이 포함됩니다. 유효한 폰트 페이지만 지정할 수 있습니다.
| 아이템 | Description |
|---|---|
| 프로퍼티 | |
파라미터 이름(Parameter Name) | 머티리얼 인스턴스에서 그리고 코드를 통해 파라미터를 식별하는 데 사용되는 이름을 지정합니다. |
그룹(Group) | MaterialInstanceConstant 내에서 파라미터 이름을 그룹이나 카테고리로 정리하는 방법을 제공합니다. 그룹 프로퍼티 이름이 동일한 머티리얼 내 모든 파라미터는 인스턴스 에디터의 해당 카테고리 아래에 나열됩니다. |
폰트(Font) | 콘텐츠 브라우저의 디폴트 폰트 에셋을 표현식 내에 보유합니다. |
폰트 텍스처 페이지(Font Texture Page) | 텍스처의 일부로 사용할 현재 폰트 텍스처 페이지입니다. |
ScalarParameter
ScalarParameter 표현식은 머티리얼 인스턴스에서 액세스하여 변경하거나 블루프린트 또는 코드로 즉석에서 변경할 수 있는 단일 플로트 값(constant)을 출력합니다.
| Property | Description |
|---|---|
파라미터 이름(Parameter Name) | 머티리얼 인스턴스에서 그리고 코드를 통해 파라미터를 식별하는 데 사용되는 이름을 지정합니다. |
그룹(Group) | MaterialInstanceConstant 내에서 파라미터 이름을 그룹이나 카테고리로 정리하는 방법을 제공합니다. 그룹 프로퍼티 이름이 동일한 머티리얼 내 모든 파라미터는 인스턴스 에디터의 해당 카테고리 아래에 나열됩니다. |
디폴트 값(Default Value) | constant가 가져오는 초기 값을 지정합니다. |
스칼라 파라미터의 값을 업데이트하여, 머티리얼을 다시 컴파일하지 않고 결과를 즉시 확인할 수 있습니다.
0에서 10까지 업데이트되는 스칼라 파라미터
스태틱 스위치 파라미터
StaticSwitchParameter 표현식은 2개의 입력을 받아 파라미터 값이 true면 첫 번째 입력을 출력하고, 그렇지 않으면 두 번째 입력을 출력합니다.
이 파라미터는 런타임에 변경되지 않고 머티리얼 인스턴스 에디터에서만 설정할 수 있기 때문에 이름이 고정되어 있습니다. 스태틱 스위치는 런타임이 아니라 컴파일 시간에 적용됩니다. 즉, 머티리얼의 어떤 분기가 드롭되었더라도 실행되지 않으므로 스태틱 스위치는 런타임에 사실상 사용되지 않습니다. 반면 새 버전의 머티리얼은 머티리얼에서 사용되는 스태틱 파라미터 조합마다 컴파일되어야 하므로, 남용하는 경우 셰이더 순열이 대폭 증가할 수 있습니다. 머티리얼의 스태틱 파라미터 수, 그리고 이러한 스태틱 파라미터에서 실제로 사용되는 순열의 수를 최소화하는 것이 좋습니다.
| Property | Description |
|---|---|
파라미터 이름(Parameter Name) | 머티리얼 인스턴스에서 그리고 코드를 통해 파라미터를 식별하는 데 사용되는 이름을 지정합니다. |
그룹(Group) | MaterialInstanceConstant 내에서 파라미터 이름을 그룹이나 카테고리로 정리하는 방법을 제공합니다. 그룹 프로퍼티 이름이 동일한 머티리얼 내 모든 파라미터는 인스턴스 에디터의 해당 카테고리 아래에 나열됩니다. |
디폴트 값(Default Value) | true인 경우 첫 번째 입력이 출력됩니다. 그렇지 않으면 두 번째 입력이 출력됩니다. |
확장된 캡션 디스플레이(Extended Caption Display) | true인 경우 표현식의 타이틀 바에 표현식 값이 표시됩니다. |
| 입력 | |
A | 채널 수와 관계없이 값을 받습니다. |
B | 채널 수와 관계없이 값을 받습니다. |
사용 예시: 스태틱 스위치를 사용하여 런타임 비용 없이 머티리얼의 전체 분기를 제거할 수 있습니다. 머티리얼 인스턴스가 다양한 값을 가질 수 있으므로, 퍼포먼스 손실 없이 템플릿 지정된 셰이더를 구성할 수 있습니다.
True에서 False로 업데이트되는 스태틱 스위치
StaticBoolParameter
StaticBoolParameter는 StaticSwitchParameter와 비슷하게 작동하지만, 부울 파라미터만 생성하고 스위치는 구현하지 않는다는 점이 다릅니다. StaticBoolParameter를 사용하여 디폴트 값을 머티리얼 함수의 부울 입력으로 전달할 수 있습니다.
| Property | Description |
|---|---|
파라미터 이름(Parameter Name) | 머티리얼 인스턴스에서 그리고 코드를 통해 파라미터를 식별하는 데 사용되는 이름을 지정합니다. |
그룹(Group) | MaterialInstanceConstant 내에서 파라미터 이름을 그룹이나 카테고리로 정리하는 방법을 제공합니다. 그룹 프로퍼티 이름이 동일한 머티리얼 내 모든 파라미터는 인스턴스 에디터의 해당 카테고리 아래에 나열됩니다. |
디폴트 값(Default Value) | 파라미터의 디폴트 부울 값으로, 옵션은 True(체크) 또는 False입니다. |
스태틱 스위치는 런타임이 아닌 컴파일 시간에 적용됩니다. 즉, 머티리얼 인스턴스 에디터에서 파라미터를 오버라이드할 수 있지만 게임플레이 중에는 변경할 수 없습니다. 머티리얼의 어떤 분기가 드롭되었더라도 실행되지 않으므로 스태틱 스위치는 런타임에 사실상 사용되지 않습니다. 반면 새 버전의 머티리얼은 머티리얼에서 사용되는 스태틱 파라미터 조합마다 컴파일되어야 하므로, 남용하는 경우 셰이더 순열이 대폭 증가할 수 있습니다. 머티리얼의 스태틱 파라미터 수, 그리고 이러한 스태틱 파라미터에서 실제로 사용되는 순열의 수를 최소화하는 것이 좋습니다.
이 노드는 MaterialFunctions와 함께 사용됩니다.
스태틱 컴포넌트 마스크 파라미터
StaticComponentMaskParameter 표현식은 평범한 컴포넌트 마스크처럼 작동하지만, 머티리얼 인스턴스에서 마스크 값을 오버라이드할 수 있다는 점이 다릅니다.
이 파라미터는 런타임에 변경되지 않고 머티리얼 인스턴스 에디터에서만 설정할 수 있기 때문에 이름이 고정되어 있습니다. 스태틱 스위치는 런타임이 아니라 컴파일 시간에 적용됩니다. 즉, 머티리얼의 어떤 분기가 드롭되었더라도 실행되지 않으므로 스태틱 스위치는 런타임에 사실상 사용되지 않습니다. 반면 새 버전의 머티리얼은 머티리얼에서 사용되는 스태틱 파라미터 조합마다 컴파일되어야 하므로, 남용하는 경우 셰이더 순열이 대폭 증가할 수 있습니다. 머티리얼의 스태틱 파라미터 수, 그리고 이러한 스태틱 파라미터에서 실제로 사용되는 순열의 수를 최소화하는 것이 좋습니다.
| Property | Description |
|---|---|
파라미터 이름(Parameter Name) | 머티리얼 인스턴스에서 그리고 코드를 통해 파라미터를 식별하는 데 사용되는 이름을 지정합니다. |
그룹(Group) | MaterialInstanceConstant 내에서 파라미터 이름을 그룹이나 카테고리로 정리하는 방법을 제공합니다. 그룹 프로퍼티 이름이 동일한 머티리얼 내 모든 파라미터는 인스턴스 에디터의 해당 카테고리 아래에 나열됩니다. |
디폴트 R(Default R) | 체크하면 입력값의 레드(첫 번째) 채널이 출력으로 통과됩니다. |
디폴트 G(Default G) | 체크하면 입력값의 그린(두 번째) 채널이 출력으로 통과됩니다. |
디폴트 B(Default B) | 체크하면 입력값의 블루(세 번째) 채널이 출력으로 통과됩니다. |
디폴트 A(Default A) | 체크하면 입력값의 알파(네 번째) 채널이 출력으로 통과됩니다. |
사용 예시: 스태틱 컴포넌트 마스크를 사용하여 마스크 텍스처의 어떤 채널을 사용할지 인스턴스에서 지정할 수 있습니다. 마스크가 (런타임에 변경할 필요 없는) 스태틱인 경우, 채널에 마스크를 적용하기 위해 텍스처 룩업에 벡터 파라미터를 곱하는 대신 이 접근법을 항상 사용해야 합니다. 그렇지 않으면 텍스처 대역폭과 셰이더 인스트럭션이 낭비되기 때문입니다.
체크한 채널은 출력으로 통과하는 반면, 체크하지 않은 채널은 버려집니다.
VectorParameter
VectorParameter 표현식은 머티리얼 인스턴스에서 수정하거나 코드를 통해 수정할 수 있는 파라미터라는 점을 제외하면 Constant4Vector와 동일합니다. VectorParameter의 장점 중 하나는 색 선택 툴을 사용하여 값을 설정할 수 있다는 것입니다.
| 아이템 | Description |
|---|---|
| 프로퍼티 | |
파라미터 이름(Parameter Name) | 머티리얼 인스턴스에서 그리고 코드를 통해 파라미터를 식별하는 데 사용되는 이름을 지정합니다. |
그룹(Group) | MaterialInstanceConstant 내에서 파라미터 이름을 그룹이나 카테고리로 정리하는 방법을 제공합니다. 그룹 프로퍼티 이름이 동일한 머티리얼 내 모든 파라미터는 인스턴스 에디터의 해당 카테고리 아래에 나열됩니다. |
디폴트 값(Default Value)
| 머티리얼 인스턴스 상수로 오버라이드하지 않는 한 기본적으로 출력되는 벡터입니다.
|
VertexColor는 제한된 보간 툴로 인해 Transform 노드와 상호 배타적입니다. Transform 노드와 VertexColor를 둘 다 사용하는 경우 VertexColor가 전부 흰색으로 표시됩니다.
프로그래머: 스프라이트 파티클의 경우 컬러가 버텍스당 셰이더로 전달되는 반면, 메시 파티클의 컬러는 셰이더 상수로 설정됩니다.
TextureObjectParameter
TextureObjectParameter 표현식은 텍스처 파라미터를 정의하고 텍스처 오브젝트를 출력합니다. 이 표현식은 텍스처 파라미터를 텍스처 입력이 있는 머티리얼 함수로 전달하는 데 자주 사용됩니다. 머티리얼 함수 노드의 텍스처 입력은 TextureSample 2D 노드의 Float3 데이터와 호환되지 않으므로 텍스처 오브젝트(T2d)가 필요합니다. 이 노드는 실제로 텍스처를 샘플링하지 않으므로 TextureSample 노드와 함께 사용해야 합니다.
| Property | Description |
|---|---|
파라미터 이름(Parameter Name) | 머티리얼 인스턴스에서 그리고 코드를 통해 파라미터를 식별하는 데 사용되는 이름을 지정합니다. |
그룹(Group) | MaterialInstanceConstant 내에서 파라미터 이름을 그룹이나 카테고리로 정리하는 방법을 제공합니다. 그룹 프로퍼티 이름이 동일한 머티리얼 내 모든 파라미터는 인스턴스 에디터의 해당 카테고리 아래에 나열됩니다. |
텍스처(Texture) | 표현식으로 샘플링되는 텍스처를 지정합니다. |
샘플러 타입(Sampler Type) | 노드에서 샘플링 및 출력될 데이터 타입입니다. |
밉 값 모드(MipValueMode) | 샘플의 밉 레벨 또는 디폴트 하드웨어에서 계산된 도함수의 커스터마이징 방식을 선택합니다. 룩과 퍼포먼스에 영향을 미칩니다. |
이 노드는 MaterialFunctions와 함께 사용됩니다.
TextureSampleParameter2D
TextureSampleParameter2D 표현식은 머티리얼 인스턴스에서 수정하거나 블루프린트 또는 코드를 통해 수정할 수 있는 파라미터라는 점을 제외하면 TextureSample과 동일합니다.
| Property | Description |
|---|---|
파라미터 이름(Parameter Name) | 머티리얼 인스턴스에서 그리고 코드를 통해 파라미터를 식별하는 데 사용되는 이름을 지정합니다. |
그룹(Group) | MaterialInstanceConstant 내에서 파라미터 이름을 그룹이나 카테고리로 정리하는 방법을 제공합니다. 그룹 프로퍼티 이름이 동일한 머티리얼 내 모든 파라미터는 인스턴스 에디터의 해당 카테고리 아래에 나열됩니다. |
텍스처(Texture) | 표현식으로 샘플링되는 텍스처를 지정합니다. |
샘플러 타입(Sampler Type) | 노드에서 샘플링 및 출력될 데이터 타입입니다. |
밉 값 모드(MipValueMode) | 샘플의 밉 레벨 또는 디폴트 하드웨어에서 계산된 도함수의 커스터마이징 방식을 선택합니다. 룩과 퍼포먼스에 영향을 미칩니다. |
| 입력 | |
UV | 텍스처에 사용할 UV 텍스처 좌표를 받습니다. UV에 입력되는 값이 없으면 머티리얼이 적용된 메시의 텍스처 좌표가 사용됩니다. |
| 출력 | |
RGB | 컬러의 3채널 RGB 벡터 값을 출력합니다. |
R | 컬러의 레드 채널을 출력합니다. |
G | 컬러의 그린 채널을 출력합니다. |
B | 컬러의 블루 채널을 출력합니다. |
A | 컬러의 알파 채널을 출력합니다. 텍스처에 알파 채널이 포함되지 않는 경우, '알파' 채널을 어딘가에 연결하면 기술적으로 잘못되지는 않지만 결과는 항상 0(블랙)이 됩니다. |
TextureSampleParameterSubUV
TextureSampleParameterSubUV 표현식은 머티리얼 인스턴스에서 수정하거나 코드를 통해 수정할 수 있는 파라미터라는 점을 제외하면 ParticleSubUV와 동일합니다.
| 아이템 | Description |
|---|---|
| 프로퍼티 | |
파라미터 이름(Parameter Name) | 머티리얼 인스턴스에서 그리고 코드를 통해 파라미터를 식별하는 데 사용되는 이름을 지정합니다. |
그룹(Group) | MaterialInstanceConstant 내에서 파라미터 이름을 그룹이나 카테고리로 정리하는 방법을 제공합니다. 그룹 프로퍼티 이름이 동일한 머티리얼 내 모든 파라미터는 인스턴스 에디터의 해당 카테고리 아래에 나열됩니다. |
블렌드(Blend) | 한 프레임에서 다음 프레임으로 즉시 '팝핑'하는 대신 SubUV 스프라이트 레이아웃의 각 프레임을 블렌딩합니다. |
텍스처(Texture) | 표현식으로 샘플링되는 텍스처를 지정합니다. |
샘플러 타입(Sampler Type) | 노드에서 샘플링 및 출력될 데이터 타입입니다. |
밉 값 모드(MipValueMode) | 샘플의 밉 레벨 또는 디폴트 하드웨어에서 계산된 도함수의 커스터마이징 방식을 선택합니다. 룩과 퍼포먼스에 영향을 미칩니다. |
| 입력 | |
UV | UV 입력은 무시되고 아무 작업도 수행하지 않습니다. |
| 출력 | |
RGB | 컬러의 3채널 RGB 벡터 값을 출력합니다. |
R | 컬러의 레드 채널을 출력합니다. |
G | 컬러의 그린 채널을 출력합니다. |
B | 컬러의 블루 채널을 출력합니다. |
A | 컬러의 알파 채널을 출력합니다. 텍스처에 알파 채널이 포함되지 않는 경우, '알파' 채널을 어딘가에 연결하면 기술적으로 잘못되지는 않지만 결과는 항상 0(블랙)이 됩니다. |
TextureSampleParameterCube
TextureSampleParameterCube 표현식은 큐브 맵만 수락한다는 점과 머티리얼 인스턴스에서 수정하거나 코드를 통해 수정할 수 있는 파라미터라는 점을 제외하면 TextureSample과 동일합니다.
| Property | Description |
|---|---|
파라미터 이름(Parameter Name) | 머티리얼 인스턴스에서 그리고 코드를 통해 파라미터를 식별하는 데 사용되는 이름을 지정합니다. |
그룹(Group) | MaterialInstanceConstant 내에서 파라미터 이름을 그룹이나 카테고리로 정리하는 방법을 제공합니다. 그룹 프로퍼티 이름이 동일한 머티리얼 내 모든 파라미터는 인스턴스 에디터의 해당 카테고리 아래에 나열됩니다. |
텍스처(Texture) | 표현식으로 샘플링되는 텍스처를 지정합니다. |
샘플러 타입(Sampler Type) | 노드에서 샘플링 및 출력될 데이터 타입입니다. |
밉 값 모드(MipValueMode) | 샘플의 밉 레벨 또는 디폴트 하드웨어에서 계산된 도함수의 커스터마이징 방식을 선택합니다. 룩과 퍼포먼스에 영향을 미칩니다. |
| 입력 | |
UV | 텍스처에 사용할 UV 텍스처 좌표를 받습니다. UV에 입력되는 값이 없으면 머티리얼이 적용된 메시의 텍스처 좌표가 사용됩니다. 이 입력은 2채널 벡터 값을 수락합니다. |
| 출력 | |
RGB | 컬러의 3채널 RGB 벡터 값을 출력합니다. |
R | 컬러의 레드 채널을 출력합니다. |
G | 컬러의 그린 채널을 출력합니다. |
B | 컬러의 블루 채널을 출력합니다. |
A | 컬러의 알파 채널을 출력합니다. 텍스처에 알파 채널이 포함되지 않는 경우, '알파' 채널을 어딘가에 연결하면 기술적으로 유효하지 않은 것은 아니지만 결과는 항상 0(블랙)이 됩니다. |
TextureSampleParameterMovie
TextureSampleParameterMovie 표현식은 무비 텍스처(Bink 무비)만 수락한다는 점과 머티리얼 인스턴스에서 수정하거나 코드를 통해 수정할 수 있는 파라미터라는 점을 제외하면 TextureSample과 동일합니다.
| Property | Description |
|---|---|
파라미터 이름(Parameter Name) | 머티리얼 인스턴스에서 그리고 코드를 통해 파라미터를 식별하는 데 사용되는 이름을 지정합니다. |
그룹(Group) | MaterialInstanceConstant 내에서 파라미터 이름을 그룹이나 카테고리로 정리하는 방법을 제공합니다. 그룹 프로퍼티 이름이 동일한 머티리얼 내 모든 파라미터는 인스턴스 에디터의 해당 카테고리 아래에 나열됩니다. |
텍스처(Texture) | 표현식으로 샘플링되는 텍스처를 지정합니다. |
샘플러 타입(Sampler Type) | 노드에서 샘플링 및 출력될 데이터 타입입니다. |
밉 값 모드(MipValueMode) | 샘플의 밉 레벨 또는 디폴트 하드웨어에서 계산된 도함수의 커스터마이징 방식을 선택합니다. 룩과 퍼포먼스에 영향을 미칩니다. |
| 입력 | |
UV | 텍스처에 사용할 UV 텍스처 좌표를 받습니다. UV에 입력되는 값이 없으면 머티리얼이 적용된 메시의 텍스처 좌표가 사용됩니다. |
| 출력 | |
RGB | 컬러의 3채널 RGB 벡터 값을 출력합니다. |
R | 컬러의 레드 채널을 출력합니다. |
G | 컬러의 그린 채널을 출력합니다. |
B | 컬러의 블루 채널을 출력합니다. |
A | 컬러의 알파 채널을 출력합니다. 텍스처에 알파 채널이 포함되지 않는 경우, '알파' 채널을 어딘가에 연결하면 기술적으로 잘못되지는 않지만 결과는 항상 0(블랙)이 됩니다. |