목차
먼저 섭스턴스 페인터로 파일을 내보내기 전에 블렌더에서 어떻게 파일을 정리하고 내보내야 할지를 정리
모델 준비하기
먼저 블렌더 내에서 모델링한 파일을 불러와준다.
이제 이 모델을 섭스턴스 페인터에서 쉽게 작업할 수 있도록 3가지 방법으로 묶어줄 수 있다.
Textrue Sets, Geometry Masks, ID Maps
모델을 정리하는 3가지 방법
Texture Sets
- 블렌더에서 섭스턴스 페인터로 파일을 불러오면 블렌더 내에서 지정한 재질에 기반해서 섭스턴스 페인터에서 자동으로 Texture Set들을 생성해준다.
- 블렌더 내 재질 이름이 섭스턴스 페인터 내 Texture Set의 이름으로 지정된다.
- Substance Painter에서 모델을 정리하는 주요한 방법으로 사용된다.
- Texture Set는 각각 여러 레이어를 가진 텍스쳐로 사용되고, 내보낼 때도 각 Texture Set별로 Diffuse,Normal,Height맵등이 따로 저장된다.
- 각 Texture Set별로 UV를 따로 정리해주는 게 좋다.(재질별로 따로따로 한 UV 평면에 저장)
Geometry Masks
- 블렌더 내에서 각 부분으로 나뉘어 있는 부분을 Geometry Mask로 활용할 수 있다.
- 여러 부분으로 나뉜 모델이 있으면 한 레이어에서 부분들을 묶어서 한꺼번에 Paint할 수 있다.
ID Maps
- ID Map은 베이크된 텍스쳐로, 각 재질을 더 쉽게 할당할 수 있도록 도와준다.
- 모델링 프로그램에서 각각 부분별로 다른 Vertex Color를 지정해주거나, 하이폴리 메시에 각 색을 지정해 Bake하는 방식으로 생성할 수 있다.
섭스턴스 페인터의 자동 UV Unwrap 기능
섭스턴스 페인터에서 자동으로 UV Unwrap을 해주는 기능을 제공해주기 때문에 굳이 모델링 프로그램에서 UV Unwrap을 해서 넘기지 않아도 된다. 섭스턴스 페인터에서는 ① UV Seam을 자르고, ②UV Island들을 평평하게 만들고, ③UV Island들을 효율적으로 Pack하는 과정을 통해 자동으로 UV Unwrap해준다. 3D 프로그램에서 각 과정을 (Seam을 지정하거나, UV를 평평하게 만들거나, Pack하는 과정) 거친 뒤에 모델을 Import해도 섭스턴스 페인터에서 그 데이터를 활용할 수 있다.
예를 들어, 3d 프로그램에서 모든 재질의 UV를 한 평면에 Pack한 뒤 섭스턴스 페인터에서 모델을 불러와도, 섭스턴스 페인터가 자동으로 재질별로 UV Island들을 Pack해줄 수 있다.
Texture Set을 이용해 블렌더에서 파일 내보내기
각 부위별로 다른 재질 적용하기
만약 블렌더에서 각 모델이 부위별로 분리되 어 있다면, 부위별로 Paint할 재질을 다르게 지정해 주면 된다.
Solid Viewport상에서 재질별로 색상을 다르게 표시하고 싶다면 Material Properties > Viewport Display에서 원하는 색으로 바꿔주면 된다.
UV맵 Pack하기
블렌더에서 UV맵 Pack 하기
- 전체 메쉬 선택 후 Tab을 눌러 Edit Mode 켜기
- (UV 정리를 안했을경우) A를 눌러 전체 선택 후 3D Viewport에 커서를 두고 U > Smart UV Project 클릭
- UV 편집 패널에서 전체 선택 후 UV > Pack UV Island를 선택하면 UV들을 Pack할 수 있다.
섭스턴스 페인터에서 UV맵 Pack하기
- Blender에서 메쉬를 FBX 파일로 내보내기
- Substance Painter를 열고, 새 프로젝트 생성하기
- 파일 선택 후 자동 언랩핑 우측에 [옵션] 버튼 클릭
- 시퀀스 언랩에서 원하는 옵션 조절
(Seam부터 다시 계산해서 Unwrap하고 싶으면 이음새를 모두 다시 계산, Seam은 두고 UV 아일랜드만 다시 펴고 싶으면 UV 아일랜드부터 다시 계산 선택, 패킹도 마찬가지) - 나머지 옵션 선택 후 확인 누르기
블렌더 VS 섭스턴스 페인터 UV 패킹 비교
섭스턴스 페인터와 블렌더의 UV 패킹 결과물이 같은지 궁금해서,
- Smart UV Project로 UV를 편 뒤, Substance Painter 불러오기
- 자동 언랩핑 > 패킹에서 누락된 데이터만 생성 vs 모두 다시 계산
2가지로 나눠 테스트해봤다.
패킹 > 누락된 데이터만 생성한 경우
패킹된 Texture Set끼리 겹치는 부분이 생겼다.
한 UV Atlas 안에 모든 Texture Set를 넣다 보니 한 Texture당 낭비되는 공간이 많았다.
패킹 > 모두 다시 계산한 경우
한 Texture Set의 UV 공간을 잘 활용했고, 각 오브젝트의 크기에 맞게 UV들이 Pack되었다.
ID Map을 이용해 블렌더에서 파일 내보내기
한 Texture Set안에 여러 재질을 적용하고 싶다면 ID Map을 이용해 모델을 내보내야 한다.
이 경우, 블렌더의 Vertex Color를 이용하면 된다.
예를 들어, 내가 만든 캐릭터의 피부에 한 재질을 적용했는데, 피부 재질이 적용된 부분들 중 머리는 따로 분리해서 재질을 넣고 싶다면, 원하는 부위에 Vertex Color를 입혀주면 된다.
- 모델 선택 > Edit Mode로 들어가기
- Edit Mode에서 원하는 부위 선택
- Ctrl+Tab을 눌러 모드를 Vertex Paint 모드로 변경
- 좌측 상단의 Vertex Paint 모드 버튼 오른쪽에 있는 Paint Mask 옵션 활성화
- 좌측 상단에서 원하는 색상 지정 후 Paint>Set Vertex Color(단축키Shift+K)를 눌러 해당 부위의 Vertex Color 지정
원하는 대로 Vertex Color 지정 후 FBX 파일로 내보내고 섭스턴스 페인터에서 불러온다.
텍스쳐 세트 설정의 메시 맵 베이킹 버튼을 누르고, ID > 색상 소스를 꼭짓점 색상(vertex Color)로 선택해준 뒤 Bake 하면 된다.
Geometry를 이용해 Substance Painter의 Mask 생성하기
필요한 재질별로 메쉬가 나뉘어 있다면 그대로 FBX로 내보내고, 그렇지 않은 경우에는
- 분리할 메쉬 선택 후 Tab을 눌러 Edit Mode 들어가기
- 분리할 메쉬 선택(여러 메쉬가 합쳐져 있을 경우 한 점 선택 후 Ctrl+L을 눌러 연결된 메쉬 한꺼번에 선택 가능) 후 P를 눌러 선택한 메쉬를 분리해준다.
- 재질별로 Mesh 들을 분리해준 뒤 FBX 형식으로 Export한다.
섭스턴스 페인터에서 메쉬를 불러오면, 분리한 메쉬별로 레이어가 생성된다.
'SubstancePainter > STUDY' 카테고리의 다른 글
[SubstancePainter] 블렌더에서 내보낸 텍스쳐 적용하기 (0) | 2023.11.13 |
---|---|
[Substance Painter] TextureSetCombiner를 이용한 텍스쳐 합치기 (0) | 2023.11.10 |
[Substance Painter] Material과 Smart Material 비교 (2) | 2023.10.26 |
[Substance Painter] Blender에서 작업한 UV가 제대로 보이지 않을 때 (6) | 2023.10.20 |
[Substance Painter] UV Unwrap 개념 정리 (0) | 2023.10.12 |