학습내용
액터의 표면을 디자인할 수 있는 Material(머테리얼) 알아보기.
Material(머테리얼)
- 머테리얼은 텍스쳐(Texture) + 코딩 조합으로 만들 수 있다.
- 텍스쳐(사진, 이미지)를 가지고 머테리얼을 만드는 것.
- 언리얼에서 이미지를 뷰포트에 넣으면 텍스쳐를 자동으로 만들어 주기도 한다.
머테리얼 만들기
- 콘텐츠 브라우저에서 Material(파일명 : MyFirstMetarial) 생성 후 더블클릭.
- 머테리얼은 블루프린트와 매우 유사한데, 차이점은 머테리얼의 경우 종착점(목적지)가 있다.
- 종착점(목적지)의 종류
- Base Color : 기본적인 색상을 연결.
- Texture Sample 검색하여 생성.
- Details 창에서 사용할 Texture 이미지를 선택해도 되고, 콘텐츠 브라우저에서 드래그&드롭 해도 된다.
- Texture Sample RGB 값을 Base Color에 연결.
- 좌측 프리뷰에서 적용된 모습을 확인할 수 있다.
- 머테리얼을 다 만들면 상단의 Apply를 클릭하면 머테리얼이 생성된다.
- 하나의 액터에 여러개의 머테리얼이 들어갈 수 있다.
Base Color : 머테리얼에 색상 넣기
- 배치해둔 Prop에 시작할 때 생성한 MyFirstMetarial을 입힌다.
- MyFirstMetarial 창을 연다.
- 흑백 사이의 색을 넣을 때 constant(상수)를 사용한다.
- 검은색은 0.0(0%), 흰색은 1.0(100%)이다.
- constant 단축키는 키보드 숫자 1 + 왼쪽 마우스 클릭.
- constant(2,3,4)Vector 도 마찬가지 키보드 숫자 (2,3,4) + 왼쪽마우스 클릭.
- RGB 색을 넣을 때는 Constatn3Vector를 사용한다.(R = 1, G = 1, B = 1 총 3개)
- Details 창에서 원하는 RGB 값을 각각 넣어주고 apply 하면 색상이 적용된다.
Metallic : 머테리얼에 메탈 속성을 넣기
- 0.0(0%)~1.0(100%) 사이의 값을 넣고 얼마나 메탈에 가까운지를 표현.(1은 완전히 메탈)
Roughness : 머테리얼 재질감 조정하기
- 0.0(0%)~1.0(100%) 사이의 값을 넣고 매끈한지, 거친지를 표현.(1은 완전히 메탈)
- 값이 1에 가까워지면 빛이 들어와도 표면이 거칠기에 난반사를 한다. 따라서 투박해짐.
Normal : 노멀이라는 값을 가지고 있는 텍스쳐를 사용하는 것
- 노멀 값을 가진 Texture는 빛을 어떻게 반사하는 지 값을 계산하는 Texture.
- 파란색(기준 값)은 평평함을 나타내고, 빨강은 상하로 얼마나 튀어나오고 들어갔는지, 녹색은 좌우로 얼마나 튀어나오고 들어갔는지를 나타낸다. 이를 이용해 음각과 양각을 표현한다.
- Texture Sample을 사용해서 노멀 값을 가진 Texture를 적용하면 울퉁불퉁함을 표현할 수 있다.
- 노멀 텍스쳐의 노멀 맵은 포토샵이나 노멀값을 추출할 수 있는 프로그램을 사용해서 만든다.
Base Color 심화 : 색상 섞기
- 색을 더하고(Add : 단축키 A), 곱하고(Multiply : 단축키 M), 선택적으로 섞는(LI : Linear Interporlation)방법이 있다.
- Contant3Vector, Add를 사용하여 빨강, 파랑을 더하고 Base Color에 연결하면 보라색이 나온다.
- Contant3Vector, Multiply를 사용하여 빨강, 파랑을 곱하고 Base Color에 연결하면 검은색이 나온다.
- 빨강 값은(1, 0, 0), 파랑 값은(0, 0, 1)이다. (각 위치의 값을 연산)
- 두개를 더하면 보라색의 값인 (1, 0, 1)이 생성된다.
- 두개를 곱하면 검은색의 값인 (0, 0, 0)이 생성된다.
- 주로 사용되는 것은 Multiply이다.
- Add를 사용할 경우 값이 각 값이 1을 초과하는 경우가 발생해 색상이 밝아지는, 희미해지는 경우가 많다.
- 반면, Multiply를 사용할 경우 1을 초과할 수 없기에 어둡게 표현되며, 원하는 색의 바운더리를 벗어나지 않는다.
Linear Interporlation(선형보간)
- 내가 선택한 값끼리 더한다는 말.
- 단축키는 L이며 Lerp라고 주로 부른다.
- A의 값과, B의 값을 연결한 다음에 Alpha 값에 의해서 선택하게 하는 것.
Alpha 값 | A | B |
0.0 | 100% | 0% |
0.2 | 80% | 20% |
0.5 | 50% | 50% |
1.0 | 0% | 100% |
GraySacle 을 사용하여 Linear Interporlation(선형보간) 해보기
- GraySacle을 머테리얼 창에 가지고 오고 Alpha 값에 연결.
- Alpha 값이 검은색 0, 회색 0.5, 흰색 1이기에 이 수치가 적용된다.
- 색상 뿐만 아니라 다른 texture에도 동일하게 적용된다.
Static Mesh에 파랑, 빨강 체크 무늬 입히기
- 기본 재질을 나무로 설정하고 시작
- 우드 텍스쳐를 texture sample로 가지고 와서 base color에 연결.
- 노말 우드 텍스쳐를 texture sample로 가지고 와서 base color에 연결.
- Roughness 값 0.8로 설정.
- Metalic 값 0으로 설정.
- 빨파 격자무늬 넣기
- T_Ceramic_Tile_M을 사용해서 RGB 값이 얼마나 들어있는지 확인(흰색은 100%, 검은색은 0%)
- Blue 채널이 체크무늬로 만들어져 있기에 이를 사용해서 체크무늬 만들기.
- T_Ceramic_Tile_M을 texture sample로 가지고 와서 Blue 채널을 Lerp Alpha에 연결.
- Constant3Vector를 사용해 빨강(1,0,0)을 A에 파랑(0,0,1)을 B에 연결.
- 기존 우드 텍스쳐와 base color 연결을 끊고, Lerp를 base color에 연결.
- 줄무늬 넣기
- T_Ceramic_Tile_M의 Red 채널을 보면 줄 부분에 레드값이 0인 것을 확인할 수 있다.
- T_Ceramic_Tile_M을 texture sample로 가지고 오고, Lerp 생성.
- Red 채널을 Lerp Alpha에 연결.
- Constant를 사용하여 0값(검은색)을 A에 연결.
- 격자무늬를 만들었던 Lerp와 base color 연결을 끊고 해당 Lerp를 B에 연결.
- 새로 만든 Lerp를 base color에 연결하면 격자무늬 사이에 검은 줄이 만들어 짐.
줄무늬를 빛나게 만들기(Emissive Color : 1은 발광, 0은 발광하지 않음)
- 줄무늬 넣을 때와 똑같이 T_Ceramic_Tile_M의 Red 채널을 사용하지만 반대로 사용해야한다.
- Red 채널은 무늬 부분의 값이 1(흰색)이고 줄무늬 부분이 0(검정)이다.
- 하지만 Emissive Color는 값이 1일 때 발광함으로, 기존 Red 채널에서 1을 0으로, 0을 1으로 만들어야한다.
- 빼기, 더하기를 사용해서 값을 만들어 줄 수 있다.
- 흰색 줄무늬 만들기
- T_Ceramic_Tile_M의 texture sample에서 R을 One minus(1-x)에 연결하여 Red 채널 값을 수정.
- 1-x를 Emissive Color에 연결.
- 노란 줄무늬 만들기
- Constant3Vector를 사용하여 노란색을 생성. Multiply 생성.
- 1-x 는 A에 연결, 노란색(Constant3Vector)은 B에 연결한 뒤 Emissive Color에 연결.
- 줄무늬가 빛나게 만들기
- Multiply를 하나 더 생성. 기존의 Multiply를 신규 생성한 Multiply A에 연결.
- 신규 생성한 Multiply B 값을 50으로 수정.
- 값이 100배 곱해지면서 밝아지는 효과가 생기며 빛나는 줄무늬가 만들어 짐.
최종 완성된 Material
메모
- tga(타가) 파일 : 압축하지 않은 고화질의 사진 파일
- 머테리얼에 빛이 얼마나 반사되는냐(Specular)
- 머테리얼이 빛을 얼마나 발광하느냐(Emissive Color)
'언리얼엔진' 카테고리의 다른 글
[언리얼 엔진4] 7. 인공지능(Ai) 구현하기, 배열(Array) (0) | 2021.10.06 |
---|---|
[언리얼 엔진4] 6. Cast, Custom Event, Blue Print (0) | 2021.09.29 |
[언리얼 엔진4] 4. 시한폭탄 만들기, Variable (0) | 2021.09.15 |
[언리얼 엔진4] 3. Blueprint, Class, 고장난 전등 만들기 (0) | 2021.09.15 |
[언리얼 엔진4] 2. Coillision, Cinemaitcs, Sequencer (0) | 2021.09.08 |
댓글