클로킹 이펙트 튜토리얼 첫 번째는 일명 Dissolve이펙트로 발밑부터 머리끝방향으로 사라지는 것을 구현해보겠습니다.
기본 세팅
우선 새 마테리얼을 생성한 후 Blend Mode를 Masked로 설정합니다,
Masked는 다른 명칭으로 CutOut이라고 하며 위 결과물 처럼 텍스처를 잘라 낼때 사용 합니다.
Opacity Mask
TexCoord에서 G채널만 가져온 채로 if문으로 위 처럼 노드를 구현했습니다.
그 결과 위 처럼 오파시티 마스크를 사용하는 것을 확인 할 수 있습니다, 하지만 마네킹모델에 마테리얼을 적용하면 원하는 결과가 나오지 않습니다, 그 이유는 TexCoord로 UV좌표를 사용하기 때문에 모델의 UV를 핀 기준으로 마스킹되기 때문입니다.
그래서 모델의 UV기준이 아닌 월드 좌표 기준으로 UV를 사용하게 만들어야 합니다.
월드 좌표 기준 UV
이 기능은 따로 마테리얼 펑션으로 제작해 보겠습니다, 신규추가 -> 머티리얼 & 텍스처 -> 머티리얼펑션을 생성합니다.
위 처럼 절대 월드 위치 노드를 생성합니다.
절대 월드 위치 노드의 디테일 설정에서 Shader Offset 설정을 Excluding Material Shader로 설정합니다.
TransformPosition 노드를 생성합니다.
디테일 설정에서 Absolute World Space로 설정합니다.
위 노드는 월드 좌표계를 로컬 좌표계로 변경하는 역할을 합니다.
Custom 노드를 생성합니다.
디테일 설정은 일단 Output Type을 Float3로 하고 Description은 해당 노드 이름입니다,
GetPrimitiveData(Parameters.PrimitiveId).LocalObjectBoundsMin.xyz
코드는 위 한 줄입니다, 오브젝트 바운드의 최소값(하단) 좌표를 출력합니다.
커스텀 노드를 하나 더 생성하고 코드 제외하고 위와 똑같이 세팅합니다.
GetPrimitiveData(Parameters.PrimitiveId).LocalObjectBoundsMax.xyz
이번 노드에 들어가는 코드입니다, 이전 코드와 비슷하지만 최대값(상단) 좌표를 출력합니다.
만든 노드들을 위 사진과 같이 세팅합니다,
Transform Position노드까지 작업이 로컬 좌표를 가져오는 작업이고 이 좌표를 오브젝트의 중앙을 기준으로 합니다,
그래서 Min값을 빼서 발밑(하단)으로 좌표를 맞춘다음에 Min, Max값을 뺀 값을 나눠서 월드 기준 UV값을 제작합니다.
Float3 출력값중 Z축을 출력한 결과 입니다.
아까 TexCoord노드 대신 새로 만든 마테리얼 펑션을 설치했습니다.
그 결과 원하는 데로 오파시티 마스크가 잘려나가는 것을 만들었습니다.
Dissolve 효과 만들기 - 띠 만들기
모델을 잘리게 만드는 것은 완성했으나 이번엔 멋있데 잘리게 만들어야합니다, 위 처럼 잘리는 부분에 특수한 효과를 넣어 보겠습니다.
우선 위 처럼 뺄셈으로 간단하게 프로그래스 기능을 만듭니다.
Power를 통해 소스의 강도를 조절 할 수 있게 만들어 주고 Clamp를 통해 값을 0~1로 고정합니다.
이전에 만든 노드를 똑같이 한개 더 만들고 Amount 값과 차이나는 변수를 하나 만들어서 두 소스를 빼서 띠형태의 소스를 만듭니다, 이제 저 띠 값에 Dissolve효과를 내는 텍스처와 합성해서 효과를 완성할 것 입니다.
모델에 적용한 모습.
아래 정렬된 노드를 마스크 핀으로, 뺀값을 이미시브 컬러 핀으로 세팅합니다.
Dissolve 효과 만들기 - 텍스처 효과 추가
텍스처는 위 두 개를 사용했습니다.
노드는 위와 같이 작성했고 우측에 Add이후에 이어진 곳은 원래 Mask(B)와 연결되어 있던 곳에 연결합니다.
이제 그럴듯하게 쉐이더가 표현되고 있습니다.
Dissolve 효과 만들기 - 다듬기
Amount 값이 0인데도 불구하고 Emission의 Glow효과가 위로 올라오고 있습니다,
Power노드를 이용해서 낮은 값을 제거 죽여줍니다.
이미시브 컬러를 설정할 수 있게 float4를 곱하는 노드를 추가합니다,
베이스 컬러에 아무 색이나 넣었습니다.
마테리얼 인스턴스로 쉽게 수정 가능하게 변수 세팅하면 끝입니다.
'Unreal > Shader & VFX' 카테고리의 다른 글
[Tutorial] Cloaking Effect 4장 : 파티클 및 후처리 Part - 1 (0) | 2019.07.31 |
---|---|
[Tutorial] Cloaking Effect 3장 : Scripting (0) | 2019.07.30 |
[Tutorial] Cloaking Effect 2장 : Refraction 효과 (0) | 2019.07.29 |
Cloaking Effect - 은신 이펙트 (0) | 2019.07.26 |
UE4 Cel Shading : 카툰렌더링 (6) | 2019.06.01 |
WRITTEN BY
- CatDarkGame
Technical Artist dhwlgn12@gmail.com