이번 튜토리얼에서는 Substance Painter에서 Material Preset을 만드는 방법을 살펴보겠습니다. 즉, Base Color, Normal 및 기타 정보 채널에 사용할 Texture를 설정하여 우리만의 Fill Layer를 정의한 다음, 이를 Shelf의 Materials 섹션에 저장하여 다른 Substance 세션에서도 사용할 수 있도록 하는 방법입니다.
이 튜토리얼은 한국어 음성을 제공하지 않습니다. 아래에서 영어 음성으로 된 영상을 한국어, 영어 및 기타 언어의 자막과 함께 시청하실 수 있습니다. 영상 아래에는 한국어로 번역된 스크립트가 있습니다.
영상 자막 텍스트
안녕하세요, 여러분! 이번 튜토리얼에서는 Substance Painter에서 Material Preset을 만드는 방법을 살펴보겠습니다. 즉, Base Color, Normal 및 기타 정보 채널에 사용할 Texture를 설정하여 우리만의 Fill Layer를 정의한 다음, 이를 Shelf의 Materials 섹션에 저장하여 다른 Substance 세션에서도 사용할 수 있도록 하는 방법입니다.
Material Preset을 만드는 이유는 Smart Material처럼 필터, 레이어 또는 텍스처 기반 Generator를 포함한 여러 요소의 그룹이 아니라, 하나의 레이어만 가진 단일 Material 요소를 사용하기 위해서입니다. 목표는 이러한 요소를 만든 뒤 프로젝트의 Layer Stack으로 드래그하여, 오브젝트에 전체적으로 적용하거나 Layer Mask를 통해 부분적으로 적용하는 것입니다.
하지만 그 전에, 처음 보기에는 훨씬 더 유연해 보이는 Smart Material을 사용할 수 있는데도 왜 이런 방식을 사용하는지 잠시 생각해 보겠습니다. 실제로 Smart Material은 여러 개의 Layer와 Material을 포함할 수 있으며, 경우에 따라 Bake 작업이나 기타 도구로 생성된 맵을 기반으로 하는 필터, 레이어 또는 Generator까지 포함할 수 있습니다.
간단한 Material Preset을 만들어야 하는 가장 대표적인 이유는 외부 Texture 이미지로부터 Material을 구성해야 하는 경우입니다. 예를 들어 사진, 스캔 데이터 또는 여러분이나 다른 사람이 직접 제작한 Base Color, Normal, Roughness 이미지가 있을 수 있습니다. 또한 이러한 이미지는 표면에 반복적으로 타일링해도 이음새가 보이지 않는 Seamless Texture일 수도 있습니다.
이런 경우에는 Smart Material을 사용할 필요가 없습니다. 다음과 같이 하면 충분합니다.
File → Import Resources를 통해 Texture를 Substance 세션으로 가져옵니다. 이때 Resource Type은 "Texture"로 지정하고, 가져오기 위치는 "Current Session"으로 설정합니다. 우리는 Material을 저장할 것이므로, 이 파일 자체를 Shelf에 저장할 필요는 없습니다.

빈 Fill Layer를 생성한 다음 Tool Shelf의 "Properties - Fill" 섹션에서 필요한 채널만 활성화합니다. 저는 PBR Metallic 워크플로를 사용하므로 Color, Metal, Roughness, Normal, Height, Opacity를 활성화합니다. 마지막의 Opacity는 이 예제에서 Material이 투명하지 않다는 것을 Substance에 알려주기 위해 사용합니다.

가져온 Texture를 Fill Layer의 해당 슬롯에 드래그하여 배치하거나, 전체 표면에 균일하게 적용될 값을 설정합니다. 예를 들어 저는 Opacity 값을 1로 설정합니다.

그리고 마지막으로, Properties - Fill 패널의 빈 영역을 마우스 오른쪽 버튼으로 클릭한 뒤 나타나는 메뉴에서 "Create Material Preset"을 선택합니다. 완료되었습니다!

이렇게 생성된 Material은 즉시 Shelf의 Materials 섹션에서 사용할 수 있으며, 현재 프로젝트뿐 아니라 이후의 프로젝트에서도 다른 Substance Base Material과 동일하게 사용할 수 있습니다.

또한 Smart Material로부터 Material을 생성할 수도 있습니다. 이 경우 이미지 편집 소프트웨어에서 여러 레이어를 하나의 레이어로 병합하는 것처럼, Smart Material의 "평탄화된" 버전이 만들어집니다. 이는 매우 복잡한 장면을 다룰 때 프로젝트 파일의 연산 자원 사용량과 디스크 공간 사용량을 줄이는 데 유용할 수 있습니다. 이것이 이번 튜토리얼에서 다룰 두 번째 이유이며, 이를 설명하기 위해 조금 더 고급 예제를 사용하겠습니다.
여러 개의 개별 3D 오브젝트가 있고, 각각이 하나 이상의 Material과 Smart Material을 포함한 자체 Substance 프로젝트를 가지고 있다고 가정해 보겠습니다. 그리고 이 모든 것을 하나의 오브젝트와 하나의 Texture Set으로 통합하고 싶다고 해보죠. 저는 실시간 애플리케이션에서 자원 사용량을 줄이기 위해 여러 Asset을 하나의 요소로 결합하거나, 최소한 하나의 Texture Set을 사용하는 Asset으로 통합하는 작업을 여러 번 수행해 왔습니다.

이 경우 저는 먼저 3D 그래픽 프로그램에서 작업을 시작합니다. 제 경우에는 Blender를 사용하며, 다음 작업을 수행합니다.
모든 3D 모델을 Blender 씬에 배치한 뒤 기존 Material을 모두 제거하고, 모든 오브젝트에 동일한 공유 Material을 새로 할당합니다.

다음으로, 각 오브젝트의 UV Island를 이동하고 스케일 조정하여 서로 겹치지 않으면서 하나의 UV 공간 안에 모두 들어가도록 배치합니다. 이 단계에서는 각 UV 맵의 크기를 씬 내 오브젝트 크기에 비례하도록 조정하는 것이 좋습니다. 예를 들어 펜은 테이블보다 훨씬 작은 UV 영역을 차지할 수 있습니다.

내보내기 전에 모든 오브젝트를 하나의 오브젝트로 병합할지, 아니면 동일한 UV 공간과 동일한 Material을 공유하면서 별개의 오브젝트로 유지할지 결정합니다. 이 선택은 해당 오브젝트 집합이 어떻게 사용될지에 따라 달라집니다. 예를 들어 전체 세트가 최종 애플리케이션의 배경에만 존재하고 개별 요소를 따로 이동, 회전 또는 제거할 필요가 없다면 모든 것을 하나의 Object로 병합합니다. 그렇지 않다면 오브젝트를 분리된 상태로 유지합니다.

마지막으로 모든 데이터를 FBX 형식으로 디스크에 내보냅니다.

이제 Substance Painter로 돌아와 여러 단계에 걸쳐 작업해야 합니다. 먼저 이번 튜토리얼의 첫 번째 예제에서 보여준 방식으로 각 개별 오브젝트용 Material을 생성해야 합니다. 그런 다음 이 Material들을 새 프로젝트에 배치하고 새로운 UV Layout에 맞게 변형합니다.

첫 번째 단계는 다소 번거로울 수 있습니다. 각 Substance 프로젝트를 하나씩 열어 PBR Metallic Texture 세트를 이미지 파일로 임시 폴더에 내보내야 하기 때문입니다. 이 작업은 모든 프로젝트에 대해 수행해야 합니다. 하지만 좋은 소식이 있습니다. 일단 해당 Texture들로 Material Preset을 생성하면 이후에는 라이브러리에서 계속 사용할 수 있습니다. 실제로 이 작업은 라이브러리의 각 Asset에 대해 한 번만 수행하면 됩니다.

필요한 내보내기가 모두 완료되면, 텍스처링할 Asset을 사용하여 새로운 Substance 프로젝트를 생성할 수 있습니다. 이 프로젝트에는 하나의 Material만 포함되며, 여러 Material을 특정 UV Layout 영역에 배치하고 스케일과 위치를 조정한 뒤, Properties - Fill 패널에서 UV Wrap을 비활성화하여 구성합니다.

원래 개별 오브젝트에 사용되었던 Material의 레이어와 효과는 더 이상 사용할 수 없지만, 이러한 Fill Layer에는 여전히 필터와 기타 효과를 추가할 수 있습니다. 최종적으로는 전체 Texture Set을 내보내어 단일 Material을 사용하는 모델과 Texture 이미지를 얻을 수 있습니다.

자, 이번 튜토리얼은 여기까지입니다! 다음 시간에 또 만나요!