본문 바로가기

Unreal Engine

240418 언리얼 엔진 - 메터리얼 3


Decal

- 데칼을 적용해주기 위해선 메터리얼 생성 후 메터리얼 도메인을 surface-> Deferred Decal로 변경한다.

- 블렌드 모드를 opauqe에서 translucent로 변경

- 텍스쳐를 불러온 뒤 베이스 컬러와 오퍼시티에 연결해준다. 

- 데칼액터를 꺼내서 메터리얼 적용 

- 이런식으로 오브젝트에 달라붙음. 

- 텍스쳐를 파라미터화 시켜주고 텍스쳐와 오퍼시티를 변경하기 위해 각각 나눠줌.

- 인스턴스 생성

- 인스턴스를 통해 손쉽게 데칼의 메터리얼 변경.

데칼은 오브젝트에 착 달라붙는 형식. 오브젝트크기랑 텍스쳐크기가 안맞으면 늘어난다.

- 이런식으로 데칼을 활용해 녹슨 텍스쳐를 느끼게 할 수 도 있음.

- 일부 채널을 이용하기 위해선 channel mask parameter(혹은 component mask parameter)를 활용한다.

상단처럼 노드를 가져오고 특정 채널을 빼내서 만들 수 있다. 오퍼시티 강도를 조절할 수 있도록 상수를 꺼내 파라미터화 시켜주고 power를 연결해준다.

- 이런 식으로 인스턴스에서 오퍼시티의 이미지르 변환해주면 해당 채널값만 빼와서 데칼을 적용가능.

- 퀵셀 브릿지-데칼 항목에 많은 데칼 이미지가 있음. 

- 이런식으로 데칼에 활용하여 벽화를 연출 가능.

- 여러가지 데칼을 적용할 때 정렬 순서를 챙겨주면 먼저 써졌으면 하는 부분을 챙길 수 있다.

- 데칼은 오브젝트에 붙는 성질을 가지고 있기 때문에 이를 수신하지 않게 하고 싶으면 디테일 항목에서 데칼 수신이라는 항목을 비활성화 시켜주도록 한다.


grass 재질 만들기

- grass_obj 를 임포트

- 풀 재질을 바로 넣어주면 투명도가 없기 때문에 블렌드 모드를 masked로 바꿔준 뒤,

오파시티 마스크에 알파값을 연결한다.

- 풀을 움직이게 하려면 Time노드랑 sine노드를 활용하여 시간 노드를 먼저 만들어준다.

월드 포지션 오프셋은 버텍스의 위치에 관여. 해당 노드를 연결하면 풀이 움직임.

- 풀 전체의 메터리얼이 움직이고 있기 때문에 texcoord노드를 활용하여 mask component를 연결시켜준다.

 

- 풀을 고정하기 위해서 mask노드를 연결함. 검은색 부분이 고정되기 때문에 mask 컴포넌트 노드에

1-x를 시켜 값을 리버스 시켜준다. 그리고 더 확실한 움직임을 보기 위해 power노드를 연결해줌.


Material Function 활용

- 메터리얼에 들어가 메터리얼 펑션(함수)를 만들어줌.

- vertex normal WS노드로 인풋 데이터를 해주고, MASK 컴포넌트 연결.

- 해당 노드를 이렇게 만들어준뒤 라이브러리에 노출을 클릭해준다.

- 이후 탭을 누르면 만들엇던 메터리얼 함수가 뜨기 시작함. 

- input 값을 첨가해줌

- 이후 메터리얼을 만들어서 두 텍스쳐를 가져오고, 거기에 방금 만들었던 MF노드를 가져온다. 그러면 인풋으로 넣었던 contrast와 size가 추가되어 있음. 러프 활용하여 알파값에 넣어준다. 

- 함수 인풋값에 벡터상수를 넣어주고 파라미터로 변환.

이후 인스턴스를 만들어주고 재질을 넣어주면 사이즈랑 콘트라스트를 쉽게 변환하며

위쪽에 있는 메터리얼을 손쉽게 변형할 수 있는 메터리얼을 만들 수 있게 된다. 

MFC = 전역변수?


Material Layer Blend 활용 노드

- 한 물체에 여러 메터리얼을 섞는 방법은 메터리얼 레이어를 블렌드 시켜야 한다. 

 

- 기존에 사용하던 방법(UE4)는 이런 식으로 각 채널의값을 빼내서 섞는 방법

- 하지만 UE5부턴 메터리얼 레이어블렌드를 사용하여 이런식으로 메터리얼을 넣을 수도 있다.

- 메터리얼 레이어 블렌드를 사용한 모습


동적인 메터리얼 만들기

- 캐릭터가 일정한 구간에 들어가면 (collision) 의자의 색이 바뀜

- 이는 블루프린트 클래스를 활용한 것

- 블루프린트-액터 를 만들고 액터와 콜리전을 추가해줌 

- 그다음 스크립트에 들어가서 get 함수랑 set 함수 활용해서 만들어줌

- chair를 누르고 컴포넌트 오버랩 시작시를 누르면 이벤트 그래프로 창이 옮겨진다.

- 이벤트 그래프에서 이렇게 노드를 연결해준다.


과제물 제작 : 동적 파라미터 메터리얼 3개 만들기