728x90
이 글은 Class101 -  Russell: 나만의 메타버스 공간 만들기 1 강의를 듣고 정리한 글입니다.

 

목차.

  1. 개요
  2. 머티리얼 만들기
  3. 머티리얼 인스턴스(Material Instance)
  4. 결과

 

개요

 

언리얼 엔진 4(UE4)에서 머티리얼(Material)과 머티리얼 인스턴스(Material Instance)는 그래픽 리소스를 효과적으로 다룰 수 있도록 도와줍니다.

머티리얼은 오브젝트의 재질, 색, 광택 등을 정의하는 것이라고 할 수 있습니다.

 

구체의-기본-머티리얼
구체의 기본 머티리얼

 

이것은 언리얼의 기본적인 구체입니다.

해당 구체를 클릭해 보면

 

 

머티리얼 항목의 엘리먼트로 BasicShapeMaterial이 있는 것을 볼 수 있습니다.

만약 이 머티리얼을 없애면

 

엘리먼트로 DefaultMaterial이 들어가면서 회색의 구체가 됩니다.

 

이번 글에서는 언리얼 엔진에서 머티리얼과 머티리얼 인스턴스를 어떻게 생성하고 활용하는지 살펴보겠습니다.

 

 

머티리얼 만들기

 

새로운 머티리얼을 만들고, 더블 클릭하여 에디터를 엽니다.

 

콘텐츠창 우클릭 ->  머티리얼 클릭

 

생성한 머티리얼을 클릭해 보면

NewMaterial이라는 노드가 하나 보이고 

왼쪽에는 Preview로 현재 머티리얼이 어떤 상태인지 보입니다.

 

머티리얼-에디터-창
머티리얼 에디터 창

 

많이 사용되는 기능 위주로 한번 다뤄보겠습니다.

 

3번을 누른 상태빈 공간을 클릭하면 

0,0,0이라는 상수 노드가 하나 생성됩니다.

 

해당 노드를 베이스 컬러와 연결시켜 주니

왼쪽에 있는 Preview 머티리얼이 지정한 색으로 변경되었습니다.

 

베이스 컬러는 해당 머티리얼의 전반적인 색을 나타내는 것을 알 수 있습니다.

 

머티리얼-베이스-컬러
머티리얼 베이스 컬러

 

1을 누른 상태빈 공간을 클릭하면 상수 노드가 하나 생깁니다.

Value를 1로 변경하고 Matallic에 연결하면

머티리얼이 금속처럼 변경된 것을 볼 수  있습니다.

 

이것을 통해 Metallic은 해당 머티리얼의 표면이 얼마나 금속 같은지를 나타내며,

1은 금속 2는 비금속이라는 것을 알 수 있습니다.

 

머티리얼-메탈릭
머티리얼 메탈릭

 

다시 1번을 누르고 왼쪽 클릭을 해서 상수 노드를 하나 생성하고

 

러프니스에 연결해 주겠습니다.

이번에는 머티리얼이 엄청 반짝거리는데 ,

상수를 1로 설정하면 광택이 전부 사라지는 것을 볼 수 있습니다.

 

이것을 통해 러프니스는 표면의 거친 정도를 나타내는 것을 알 수 있고

1은 거친 표면, 0은 전혀 안거친표면 입니다.

 

머티리얼-러프니스
머티리얼 러프니스

 

한번 제작한 머티리얼을 구체에 적용해 보겠습니다.

드래그 & 드롭으로 구체에 적용해도 되고 머티리얼 엘리먼트 항목에서 직접 적용해도 됩니다.

 

잘 적용이 됐지만 무늬가 없어 조금 심심한 것 같습니다.

이제 해당 머티리얼에 Normal을 적용해 보겠습니다.

 

Normal은 저렇게 텍스쳐와 모양은 같지만 색이 푸른색인 것이 보통 Normal입니다.

머티리얼 창에 드래그 & 드롭을 해서 추가한 뒤, 해당 텍스쳐를 Normal과 연결시켜 주면

 

 

Normal의 모양대로 머티리얼이 변경되었습니다.

 

머티리얼-노멀
머티리얼 노멀

 

머티리얼 인스턴스(Material Instance)

 

만약 100개의 액터들이 있고 각자 조금씩 다른 머티리얼을 적용해야 한다면, 해당 액터들의 머티리얼을 다시 만들기에는 너무 비효율적입니다.

 

이럴 때 기존 머티리얼의 특징을 가져오고 특정 부분은 직접 수정이 가능할 수 있게 하는 것이 머티리얼 인스턴스(Material Instance)입니다.

 

예시를 하나 들자면 나무에 눈이 덮인 머티리얼을 하나 만들고 
이후 머티리얼 인스턴스를 활용해 눈이 덮힌 바위, 눈이 덮힌 집 등 다양한 머티리얼들을 텍스쳐와 노멀 정도만 수정해서 사용이 가능합니다. 

 

작업하던 머티리얼을 우클릭해 보면 머티리얼 인스턴스 생성이라고 있습니다.

 

 

그러면 해당 머티리얼을 부모로 새로운 머티리얼 인스턴스가 생성되는데,

아직은 딱히 수정할 수 있는 부분이 없습니다.

 

머티리얼-인스턴스-에디터
머티리얼 인스턴스 에디터 창

 

그 이유는 지금까지 만든 노드들이 모두 상수이기 때문입니다.

상수는 변경되지 않는 값이라고 보면 됩니다.

 

변경이 되지 않게 만들었기 때문에 인스턴스에서 수정을 할 수 없으니

파라미터로 변경해 주겠습니다.

 

상수노드-파라미터로-변경
상수 노드를 파라미터로 변경


지금까지 만든 상수 노드들을 우클릭해 보면 파라미터로 변환이라는 항목이 있습니다.

모든 노드들을 파라미터로 변환해 줍니다.

 

이제 인스턴스 에디터 창으로 돌아와 보면

 

아까는 없던 파라미터 그룹이 생기고 해당 인스턴스의 파라미터를 직접 수정할 수 있게 되었습니다.

 

한번 3개 정도의 다른 특징을 가진 인스턴스를 만들어주겠습니다.

 

결과

 

머티리얼-인스턴스를-사용해-다양한-머티리얼-생성
하나의 머티리얼을 베이스로 다양한 머티리얼 인스턴스 생성

 

결과적으로 머티리얼을 생성하고 해당 머티리얼을 베이스로 머티리얼을 생성해 봤습니다.

 

언리얼 엔진에서 머티리얼과 머티리얼 인스턴스는 그래픽 디자인과 게임 개발에 핵심적인 역할을 합니다.

머티리얼을 효과적으로 활용하여 게임의 시각적 품질을 향상시키고, 머티리얼 인스턴스를 사용하여 속성을 동적으로 조절할 수 있습니다.

728x90

+ Recent posts