티스토리 뷰

Masking Material에 대해 알아보자. 원하는 결과물을 정하고 그 결과가 나오도록 공부하면 이해하기가 쉬운데, 서서히 화면에서 사라지는 효과를 만들면서 기본적인 원리와 사용법에 대해 알아볼 수 있다. 기본적으로 제공되는 Material 종류중에 Traslucent를 사용하면 Opacity값을 조정해서 서서히 안보이게 할 수 있지만 이렇게 할 경우 Normal Map도 쓸 수 없고 Emissive Color밖에 못쓰기떄문에 별로인것 같다.

 

Translucent Material의 모습. Normal이나 Specular 등 입력이 막혀있다.

 

그래서 Masked Material을 사용하는데, 이 material을 선택하면 Opacity Mask라는 입력이 활성화되는것을 알 수 있다. 이건 어떤 값을 입력해야할까? 먼저 상수값을 입력해서 어떻게 보이는지 테스트해보자.

 

0을 입력하면 투명해지고 1을 입력하면 불투명해진다.

 

아 0.3부터는 안보이고 그보다 작은값이면 보이는것을 알 수 있다. 왜 0.3일까 이 값은 어디서 정하는건지 찾아보자. 결과 노드를 선택하고 Details 패널을 보면 Mask Clip Value라는 값을 찾을 수 있다. 기본적으로 0.3333으로 초기화되어있는데 이 값을 조정해서 어떤 값부터 화면에 보이게할지 정할 수 있다. 이 수치는 입력한 값을 포함해서 clip value보다 크거나 같으면 화면에 보이고 작으면 화면에 안보이게 mask한다.

 

입력값을 색으로 나타내면 0(검은색)부터 1(흰색)으로 볼 수 있다.

 

그럼 이 값을 texture와 적용시켜보자. opacity mask는 pixel마다 계산하는 값이기 때문에 texture를 입력하면 해당 pixel의 투명도를 결정할 수 있다. 그래서 mask map을 만들어야 하는데 0~1값만 있으면 되기때문에 greyscale texture를 준비한다.

 

mask texture를 적용시키면 texture의 색에 따라 보이지않는 영역을 설정할 수 있다. (texture를 뚫고 손을 올릴수는 없다.)

 

서서히 저 영역이 넓어지게 하려면 어떻게해야할까? 먼저 rate값을 추가하고 변수로 만든다. 이 값은 0~1 값을 가지며 texture value에서 rate를 빼서 최종 opacity mask value로 입력할것이다. 이렇게하면 rate가 커질수록 보이지않는 영역이 더 많아지게 된다.

 

입력받는 Rate의 크기에 따라 보이않는 영역이 점점 많아지면서 결국 사라진다.

 

이 material을 실제로 적용할 actor를 만든다. 이벤트가 발생하면 rate를 0부터 1까지 증가시키는 일을 하는데 이 때 증가하는 curve를 줘서 더 다양한 효과를 줄 수 있게 만든다. 나는 카메라를 가리는 벽을 사라지게 만들고싶으니까 벽 모양 mesh도 준비하고 적절히 이벤트를 호출할 수 있도록 만든다.

 

mask texture를 흰색을 하이라이트로 만들어서 1-x 노드로 값을 반전시켜주고 민감도 변수를 추가했다.

 

결과물

'Programming > UnrealEngine' 카테고리의 다른 글

UE4 Expert | 벽 뒤에있는 오브젝트 그리기 Custom Depth  (3) 2020.11.10
UE4 Beginner | Save/Load  (0) 2020.09.24
UE4 Beginner | Level  (0) 2020.08.06
Z-Depth Fog 만들기  (0) 2020.05.28
UE4 Tip - 렌더링 상태 보기  (0) 2018.08.15
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함