243's 게임&애니메이션 Archive

unreal engine

언리얼 학습일지-10-머티리얼

243 2021. 5. 25. 16:58

머티리얼 인스턴스란 !! 

 

머티리얼 인스턴스는 셰이더 리컴파일 없이 편하게 바리에이션을 만들 수 있는 기능이다.

머티리얼 인스턴스를 우클릭하면 머티리얼 인스턴스 생성을 선택할 수 있다.

클릭하면 자식 머티리얼이 생긴다. 노드를 이용해 색을 바꾼다던지 할 수 있음

부모 머티리얼을 수정하면 자식들도 같이 따라간다.





--------------------------------





메가스캔에서 에셋을 다운받아서 텍스처를 이용해 인스턴스 활용이 가능한 머티리얼을 만들어 보자 !! 즉 노드를 이용해 인스턴스를 만들었을 때 파라미터 조절이 가능한 다양한 옵션을 만들어주는 것이다.




 

Albedo 텍스처를 끌어다놓고 Desaturation 노드를 생성해 연결한다. 

채도를 조절하는 노드이다.

빈공간에 1키 누르면서 마우스 좌클릭을 하면 (0) 노드가 생긴다. 

(2누르면 (0,0), 3누르면 (0,0,0))
이 노드를 우클릭 하면 파라미터로 변환할 수 있는데 이름을 변경하고 디폴트 수치를 변경해서 사용하면 된다. 디폴트 수치는 기본 텍스처와 똑같이 나와야 하기 때문에 0인지 1인지 잘 생각하고 설정한다.




 

multiply 노드로 밝기를 조절할 수 있다.

똑같이 상수 노드를 생성해 이름과 디폴트 값을 변경한다.

이번엔 1로 해줘야한다. (Multiply 단축키 m키+마우스 좌클릭)




 

콘트라스트를 조절할 수 있는 Power 노드와 틴트를 조절할 수 있는 Multiply도 연결해준다.

Tint 상수는 3vector (0,0,0)로 만들어준다. 그래야 색을 지정할 수 있다. 

디폴트는 흰색, 즉 1,1,1로 해준다.



 

다음으로 넘어가서, 러프니스 텍스처를 드래그한다.

콘트라스트 파라미터만 만들어준다. Power 노드는 x의 1승, 2승 이런 식으로 연결된 상수를 제곱으로 사용하기 때문에 디폴트를 1로 설정해준다. 




 

마지막으로 노말 텍스처를 드래그해서 노멀 인텐시티 파라미터를 만들어준다.

노멀맵의 파라미터를 변경할 때는 웬만하면 R,G,B 모두 같은 값을 입력해준다.

 

베이스컬러, 러프니스, 노멀맵도 파라미터로 변경하면 인스턴스에서 맵도 변경할 수 있다.



 

저렇게만 해도 충분하지만 나머지 친구들도 만들어보자..~

Specular는 사실 모든 물체가 거의 비슷한 값을 가지고 있기 때문에 변경하지 않는 것이 좋다(고 한다).

 

 

여태까지 한 게 적용된 모습.

 이렇게 만들어놓은 마스터 머티리얼 하나를 이용하면 여러개 만들 필요 없이 그때그때 맵만 꽂아주면 되니까 짱편하다.



 

드래그+c키 로 코멘트 기능 사용해 깔끔하게 정리&네이밍 하기~~



 

노말은 저렇게 해도 되지만… 이렇게 하는 게 좀 더 편한 것 같다.

이것도 Desaturation과 같이 기본이 0이고 +될수록 노말 수치가 약해지는 것이다.









---------------------------------------





섭스턴스 페인터에서 텍스처를 뽑아서 언리얼에서 머티리얼을 만들 때도 인스턴스를 만들어놓으면 편하다.

위의 과정과 다른 점은 언리얼로 가져갈 때는 Export할 때 Output template를  Unreal Engine 4 (Packed) 를 선택해서 뽑게 되는데 그럼 저렇게 러프니스 등등이 따로 뽑히는 게 아니라 Occlusion, Roughness, Metalic이 한 맵에 합체돼서 한 장에 뽑힌다.

 

이게 어떻게 가능하냐면 이 셋은 어짜피 Greyscale만 사용하기 때문에 각각 R,G,B 채널을 하나씩 사용해서 하나로 합친 것이기 때문이다.

효율적이고 덜 귀찮음 ㅇㅇ 이것을 ORM 맵이라고 부른다.

 

그래서 이 점만 좀 다르고 나머지는 비슷하다.



 

설명한 것 처럼 각각 담당하는 채널을 뽑아서 해당하는 종착역에 연결해준다.

 

여기서 아까와는 다르게 Add라는 노드를 추가했는데 이 노드는 얼핏 Power노드와 비슷하게 생각하기 쉽지만 다르다. 

Power는 즉 Contrast이기 때문에 대비를 강하게, 혹은 약하게 조절할 수 있지만 

(“대비”이기 때문에 균일하게 변하는 게 아니라 맵에서 강한 부분은 더 강해지고 약한 부분은 더 약해지는 식으로 변하는 것이다.)

 

Add는 맵 전체의 Grayscale을 조절하는 것이기 때문에 전체적으로 러프니스를 강하게, 혹은 약하게 조절할 수 있는 것이다. 그래서 두개 다 만들어보았다.



 

이렇게 마스터 머티리얼을 완성했으니 이것을 가지고 쉽게 텍스처만 갈아끼울 수 있는 자식 머티리얼들을 만들 수 있다.




 

쨘~오늘의 실험체






+++++





 

좀 더 깔끔하게 정리할 수 있는 방법..





머티리얼 에디터에서 노드를 선택하고 디테일 창의 Material Expression탭에서 그룹을 바꿔줄 수 있다. 그룹 이름 설정하고 파라미터 노드들을 만든 그룹에 넣어준다.




 

그럼 쨘 ! 이렇게 깔끔하게 파라미터 그룹이 정리된당 ~

 

요약하면 저 파라미터들이 비활성화된 기본 상태가 마스터 머티리얼, 즉 디폴트 상태이고 필요한 파라미터를 체크하고 수치를 조절하면서 머티리얼 인스턴스를 손쉽게 제작할 수 있다는 것 ~





-------------------------------------





길었ㄷㅏ...오늘….

 

잠 얼마 못자서 너무너무너무 피곤하지만 장 봐서 닭볶음탕을 해먹을 것이다 !!!!!!

 

후욱후욱

 

그럼 개쓰레기요일 D+1요일 힘내서 마무리합시다잇