슬라이스 이펙트를 만들려면 우선 이미시브 노드 그래프를 생성하여 단색 머티리얼을 생성한 후 메시 월드 포지션 데이터 및 TransformPosition 머티리얼 노드를 사용하여 메시에서 자를 위치를 결정합니다.
이 머티리얼은 메시 플러시를 반대편으로 튀어나오지 않게 하면서 벽에 배치하고 싶은 경우나 스태틱 메시를 벽 조각으로 사용하여 플레이어를 위한 미로를 생성하려는 경우 등에 효과적입니다.
이미시브 노드 그래프 생성하기
이미 이미시브 그래프를 사용 중인 노드를 복사하여 필요 없는 그래프 부분을 삭제하고 이펙트를 생성하는 데 필요한 노드 구성을 추가할 수 있습니다.
머티리얼 루트 노드를 선택하고 디테일(Details) 패널에서 양면(Two Sided) 옵션에 체크합니다.
블렌드 모드(Blend Mode) 드롭다운 메뉴를 열고 Masked1을 선택합니다.
노드 그래프에서 우클릭하고 지정된 이름을 검색하여 머티리얼에 다음 노드를 추가합니다.
Constant 노드(3)
Constant 3Vector 표현식 노드(2)
Clamp 노드(2)
Append3Vector 노드
WorldPosition 노드
Subtract 노드
Dot Product 노드
Multiply 노드
Linear Interpolate 노드
TwoSidedSign 노드
첫 번째 Constant3Vector 노드를 더블클릭하고 머티리얼에 외부 컬러를 추가합니다.
첫 번째 Constant3Vector 노드에서 흰색 핀을 드래그하여 머티리얼 루트 노드의 베이스 컬러(Base Color) 입력에 연결합니다.
첫 번째 Constant 노드의 핀을 드래그하여 머티리얼 루트 노드의 러프니스(Roughness) 입력에 연결하고 값을 0.75로 변경합니다.
이 환경설정은 머티리얼이 할당된 오브젝트의 베이스 컬러와 라이트에 대한 머티리얼의 반응을 생성합니다. 다음 환경설정은 메시의 내부를 입체로 보이게 해 주는 이미시브 머티리얼을 생성합니다.
TwoSidedSign 노드에서 드래그하여 Clamp 노드에 연결하고 Clamp 노드에서 드래그하여 Lerp 노드의 알파(Alpha) 입력에 연결합니다.
두 번째 Constant3vector 노드를 더블클릭하고 메시 내부에 컬러를 추가합니다. 그런 다음 Constant3Vector 노드의 흰색 핀을 드래그하여 Lerp 노드의 A 입력에 연결합니다.
Lerp 노드를 선택하고 B 입력 값을 0.0으로 설정합니다.
Lerp 노드를 드래그하여 Multiply 노드의 A 입력에 연결합니다.
Multiply 노드를 선택하고 B 입력 값을 0.3으로 변경합니다.
Multiply 노드를 드래그하여 머티리얼 루트 노드의 이미시브 컬러(Emissive Color) 입력에 연결합니다.
이미시브 노드 그래프가 완성되었습니다.
반으로 메시 자르기
다음으로, 메시 위치를 타기팅하는 위치 그래프를 생성하여 프로젝트에서 메시의 부분을 제거합니다.
이 이펙트는 머티리얼의 월드 포지션 데이터를 사용하여 자동으로 메시를 반으로 잘라 생성되며, 지정된 방향 입력에 있는 메시의 머티리얼을 노드 그래프로 변환합니다.
새 머티리얼(Material)을 생성하고 연 후 그래프에 Constant3Vector 머티리얼 노드를 추가합니다. 노드에 컬러를 추가하고 Constant3Vector 노드에서 드래그하여 메인 머티리얼 노드의 베이스 컬러 입력에 연결합니다.
머티리얼 에디터에서 우클릭하고 검색창에 Functions를 입력하여 머티리얼 함수 노드를 생성합니다. MaterialFunctionCall 옵션을 선택합니다. 머티리얼 에디터에 Unspecified Function 노드가 나타납니다.
'머티리얼 에디터'에서는 특정 머티리얼 노드를 검색할 수 없습니다. 그 대신 지정되지 않은 머티리얼 함수를 생성하고 여기에 함수를 할당해야 합니다.
Unspecified Function 노드를 선택하고 디테일 패널의 머티리얼 함수(Material Function) 드롭다운 메뉴에서 ObjectLocalBounds 머티리얼 함수를 할당합니다. 머티리얼 에디터에 Object 머티리얼 함수 노드가 자동으로 나타납니다.
머티리얼 에디터에 다음과 같은 노드를 추가합니다.
WorldPosition 노드
TransformPosition 노드
Constant 노드
Add 노드
Clamp 노드
Component Mask 노드
Multiply 노드
Subtract 노드(2)
WorldPosition 노드를 드래그하여 TransformPosition 노드에 연결합니다.
TransformPosition 노드를 선택하고 머티리얼 표현식 트랜스폼 위치(Material Expression Transform Position) 값을 다음과 같이 변경합니다.
소스(Source) = 절대 월드 스페이스(Absolute World Space)
대상(Destination) = 로컬 스페이스(Local Space)
TransformPosition 노드를 드래그하여 첫 번째 Subtract 노드의 A 입력에 연결합니다.
ObjectLocalBounds 노드의 로컬 바운스 최소(Local Bounds Minimum) 핀을 드래그하여 첫 번째 Subtract 노드의 B 입력에 연결합니다.
첫 번째 Subtract 노드를 드래그하여 Multiply 노드의 A 입력에 연결합니다.
Multiply 노드의 B 입력 값을 -1.0으로 변경합니다.
Multiply 노드에서 드래그하여 Add 노드의 A 입력에 연결합니다.
ObjectLocalBounds 노드의 로컬 바운드 최대(Local Bounds Max) 핀을 드래그하여 Add 노드의 B 입력에 연결합니다.
Add 노드를 드래그하여 두 번째 Subtract 노드의 A 입력에 연결합니다.
Constant 노드를 우클릭하여 Parameter 노드로 변경합니다. Parameter 노드의 이름을 ObjectClip으로 지정합니다.
ObjectClip의 값을 0.0으로 설정합니다.
ObjectClip을 드래그하여 두 번째 Subtract 노드의 B 입력에 연결합니다.
Subtract 노드를 드래그하여 Component Mask 노드에 연결합니다.
Component Mask 노드를 선택하고 디테일 패널에서 머티리얼 표현식 컴포넌트 마스크(Material Expression Component Mask) 값을 G 및 B로 변경합니다.
Mask 노드를 드래그하여 Clamp 노드의 화이트(White) 입력에 연결합니다.
Clamp 노드의 최대(Max) 입력 값을 1.0으로 변경합니다.
Clamp 노드를 드래그하여 오파시티 마스크(Opacity Mask)에 연결합니다.
이미지를 클릭하면 확대됩니다.
적용(Apply)을 클릭합니다.
ObjectClip 노드에서 음수 B 값을 변경하면 오브젝트가 복원되고 양수 값은 오브젝트를 더 많이 제거합니다. 클립의 범위도 정규화되지 않으므로 값은 머티리얼이 할당된 오브젝트의 스케일에 따라 달라집니다.