본문 바로가기

언리얼/머티리얼

2024 언리얼 엔진 실무 기반 교육 과정 12일차

  • Decal
  • Mask Alpha값을 이용한 Grass
  • 움직임 (Grass)
  • 특정 방향에만 머티리얼이 보일 수 있도록 하는 방법
  • Tex Coord - Multiply와 Add 차이
  • Layerd - old
  • Layerd - new
  • 동적 머티리얼 인스턴스
  • 노드

<Decal>

- 화살표 방향으로 칠해진다

- 머티리얼 생성 후 머티리얼 도메인을 Deferred Decal로 바꿔주기

- 블렌드 모드를 Translucent로 변경하면 노드들이 활성화됨

- 텍스처를 불러와 베이스컬러에 연결하고 알파값을 오퍼시티에 연결한 모습

 

* Inst 파일 네이밍 (MI_파일명_숫자) > 뒤에 숫자를 붙이면 _Inst가 붙지 않는다.

 

- 오브젝트의 영역이 아닌곳은 잘리고, 옆면에선 밀려보인다.

- 보통 오브젝트보다 크게 사용하지 않고 오브젝트보다 작게 사용

 

Channel Mask를 사용하여 RGB값에 따른 opasity의 값을 가지게 하는 노드 연결

- Inst의 opasity를 원하는 텍스처로 바꿔줄 수 있다.

- power노드로 강도 변경 가능

 

* 퀵셀브릿지 데칼

 

Sort

- 해당 숫자에 따라 겹침 우선도 순서를 바꿀 수 있다.

 

데칼 위에 오브젝트 올리는법

- 오브젝트 클릭 > decal 검색 > 데칼 수신 끄기


<Mask로 Grass만들기>

- 알파값을 사용하여 특정 부분만 잘라내고 싶을때

머티리얼 > 블렌드모드 > Masked사용 

 

양면

- 텍스쳐가 양쪽 다 렌더링 되도록 해주는 설정

off

on


<움직임>

 

- sine에 1을 더하고 0.5를 곱해서 -와 +의 값의 시간을 같게 만들어줌

- G 10과 -10을 Lerp로 연결하고 시간을 Alpha값에 연결한 뒤 월드 포지션 오프셋에 연결

월드 포지션 오프셋

     > 여기에 연결된 모든 값은 위치값에 영향을 준다.

= 풀이 좌우로 움직인다

 

- Texcoord에 mask G를 곱해 월드 포지션 오프셋에 연결

    > 풀이 위는 고정되고 아래만 흔들림

- one minus를 연결해 mask를 뒤집어준다.

- power를 곱해 원하는 높이까지만 움직이도록 적용해준다.

- multiply를 추가해 바람의 세기를 정해줄 수 있는 파라미터 연결

 

inst를만들었을때 바람의 세기를 조절할 수 있음

 

노드 프리뷰

- 노드가 어떻게 변하는지 미리 보여주는 기능


<머티리얼 함수> (material Function)

- MF_이름

- 함수를 정해두고 원할때 꺼내쓸 수 있음

 

<위에만 특정 머티리얼이 보일 수 있도록 하기>

- 눈이 온 설산 등의 하나하나 머티리얼 처리를 할 수 없을때 사용 

R - X

G - Y

B - Z

- B값이 z임으로 폴리곤의 상단이 1, 하단이 -1이 된다.

- power에 연결

- multiply로 5를 곱해준다

- clamp 연결해서 수치 정리를 해준다. > output Result 연결

- 라이브러리에 노출 체크

 

- 함수를 저장하고, 새 머티리얼 제작 후 검색하면 검색이 된다.

적용된 모습

- Power와 Multiply에 각각 input노드를 연결

 

- 노드에 연결할 수 있는 곳이 늘어난다.

 

- Lerp에 연결

 

* 함수 input에  정렬 우선순위에 따라 노드에서의 위치가 바뀜

 

<결과물>


<머티리얼 파라미터 컬렉션>

파일명 - MPC_이름

- 모든 노드들을 하나하나 바꿀 수 없을때 이 함수가 들어간 오브젝트들에게 모두 영향을 줄 수 있도록 만드는 것

- +버튼을 눌러 인덱스 추가 가능

 

- grass에 돌아가서 base color를 밝게해줄 노드들을 설치

- collection param에 머티리얼 파라미터를 연결

- 파라미터 연결 후, 머티리얼 파라미터에 가서 color를 지정해준다

- RGB 값에 연결되어 Alpha값이 없으므로 mask A로 연결

    > collection Param은 RGBA노드임

 

Wind 연결


<Tex Coord Multiply와 Add 차이 >

- multiply의 값을 바꾸면 텍스처가 곱해지고 add의 값을 바꾸면 확대가 된다. (0~1)

 

- 오브젝트의 수치값은 고정인데 +됨에 따라 수치값들이 더이상 0이 아니게 되어 확대


<Layerd>

 

머티리얼 어트리뷰트
- 결과 노드 디테일 > 머티리얼 어트리뷰트 체크

- 재질을 레이어드로 쌓아서 만드는 방식의 노드

- 기존에 만들어둔 재질의 세부설정을 바꾸는것이 아닌 아예 완성된 재질을 갈아끼울 수 있음


old layer

 

- Make Material Attributes에 텍스처 연결

wood

chrome

 

plastic

- 추후 색 조절을 위해 input노드를 끼고 base color 만들기

 

* 함수로 생성된 노드들 

    > layer table 머티리얼창에 드래그앤드랍으로 넣을 수 있음

 

- 이들을 섞기위해 Blend Material Attributes 노드 생성

 

- Layer Blend AO노드를 생성하고 AO mask 텍스처 연결 

 

적용 모습

 

* 재질 3개 응용 노드 (언리얼 4시절 사용하던 노드방식 / 아직까지 사용중인 것이 있음))


new layer

 

<머티리얼 레이어>

ML_이름

레이어 생성 기본 노드

- base color, Metallic, Specular, Roughness 연결

 

레이어 인스턴스

MLI_이름_숫자

 

- 베이스 역할용 머티리얼 생성, 머티리얼 어트리뷰트 체크

 

- Material Attribute Layer 생성 후 어트리뷰트와 연결

- Material Attribute Layer의 디폴트 레이어 > +누르면 레이어 생성

- 추후 인스턴스를 만들었을때 레이어 파라미터창이 생김

    > +버튼으로 레이어 추가 가능

 

머티리얼 레이어 블렌드

MLB_이름

- 기본 노드

- RGB에서 뽑고 Append에 A를 추가 연결해도 RBGA가된다.

- 기본 노드 알파값에 연결

 

머티리얼 레이어 인스턴스에 가서 블렌드 에셋에 블렌드 넣을 수 있다.

   > RGBA값을 골라 머티리얼을 적용시킬 수 있음 

적용 모습


< new layer + noise >

- 머티리얼과 머티리얼 레이어, 머티리얼 레이어 블랜드 생성

- 머티리얼 레이어 노드 생성

 

* 노말이 들어가야 하는곳이 튀어나오면

   텍스쳐창 > 디테일 > 텍스쳐 > 고급> 그린채널플립 활성화

 

- 머티리얼 레이어 인스턴트를 만들어 세개 질감 만들기

 

- MLB에 noise 텍스쳐를 넣고 Alpha에 이어주기

 

- MLB 인스턴스를 만들어 노이즈 텍스쳐 바꿔주기

 

- 머티리얼 들어가서 어트리뷰트 사용 누르고 Material Attribute Layer생성

레이어 두개 생성

 

- 머티리얼 인스턴스 생성 후 레이어 파라미터에 만들어둔 레이어 인스턴스들 넣어주기 

 

- 마스크 인스턴스 2-1, 2-2 넣은것도 각각 넣어주기

* 파라미터해둔 텍스쳐들을 다 수정할 수 있음

 

샘플러 소스

- From Texture asset : 16개 제한

- Shared : 128개의 제한이 있음. 샘플러 슬롯을 잡아먹지 않는다.

- 오류를 해결할 수 있음


<동적 머티리얼 인스턴스>

블루프린트 클래스 생성 > 액터 > 추가 눌러 스태틱 메시 컴포넌트  추가 > 스태틱 메쉬 의자 넣기

- 박스 콜리전 생성

 

- Construction 스크립트에 들어가 Create Dynamic Maerial Instance(Chair) 가져오기

- Create Dynamic Material Instance의 Return Value를 변수로 승격시켜준다.

- New Var의 이름을 Dynamic Matirial로 바꿔주기

 

- 컴포넌트창 > 변수 > 박스 클릭 > 컴포넌트 오버랩 시작시 선택

 

- Dynamic Matirial 변수를 꺼내 거기서 Set Vector Parameter Value on Materials 생성

- Chair 머티리얼에 들어가 바꾸고 싶은 색상의 파라미터 이름을 복사

- Set Vector Parameter Value의 Parameter Name에 붙여넣기 해줌

- Value에 바꾸고싶은 색상 넣어주기

 

박스 안에 들어가면 색상이 바뀜


<노드>

 

VertexNormal WS

WS - 월드 스페이스

- 버텍스 노말을 가져오는 노드

 

Function Input

 

Mask

Mask - RGBA중 여러개 가능

Channel Mask - 하나만 선택 가능

Collection Param

- 컬렉션에서 파라미터 컬렉션 사용 가능

Make Material Attributes

- 머티리얼 함수에서 자주 사용

 

Blend Material Attributes

- 콘스탄트, 백터 모두 들어감

- 함수 전용 Lerp 

 

Layer Blend AO

 

Material Attribute Layer

- +버튼으로 레이어 추가 가능