見出し画像

初めてのSubstancePainter フォトリアル編

諸事情あって本格的にSubstancePainterを使うことになりそうなので、Adobe版の簡単な使い方をまとめました。
こちらのモデルがトップバナーのようになります。

画像39

基本的な流れとしては、
1.3Dアプリで色分けやテクスチャを分けたいところを別メッシュにしておく。マテリアルは同じでもOK
2.FBXモデルを読み込む
3.メッシュに対して既存またはアセットから読み込んだマテリアルをドラッグ&ドロップで適用する
4.適用したい部分のみチェックをつけて、マスクをつくる
5.縫い目などはレイヤーを新しく作ってブラシで描く

になります。

フォトリアルなテクスチャマップまとめ

・BaseColor
物体表面の色を描いたテクスチャ
・Normal
凸凹を表現するテクスチャ。SubstancePainterはノーマルマップの凸凹に沿って汚れなどを自動生成できる
・Metallic
金属の度合いを表現するテクスチャ。グレースレールで指定し、0(黒)金属度が低い〜1(白)金属となる
・Roughness
ザラ付き具合を表現するテクスチャ。グレースレールで指定し、0(黒)がツルツル〜1(白)マットとなる
・Ambient Occlusion
より立体的にするために影を強調するテクスチャ
・Curvature
角やフチに白い線が入ることで曲面を表現できるテクスチャ
・Thickness
モノの厚みを表現するテクスチャ。グレースレールで指定し、0(黒)が薄い〜1(白)厚みがある。半透明な物体の光を表現したいときにも使う
・ID
マスクを作りやすくするために、単純な色で塗り分けしたテクスチャ

3DアプリとSubstancePainterの各種名前の関係

・3Dアプリの「マテリアル名」=テクスチャセットのリスト

画像1

画像2

・3Dアプリの「オブジェクト名」=ジオメトリマスクの名前

画像3

画像4

モデルのインポート

1.「ファイル」→「新規」でテンプレートを一応下記を選択する(書き出し時に設定可能なのでとりあえずでOK)

画像5

2.「新規プロジェクト」ウィンドウの中の「ファイル」の横にある「選択」ボタンを押して塗りたいオブジェクトを選択する。FBXかOBJデータを用意しておく

3.「ドキュメントの解像度」を2048以上にする

4.「法線マップ」をUEの場合は「DirectX」、Unity・Maya・Blenderの場合は「OpenGL」にする

5.「フラグメントあたりの接線空間を計算」はUEの場合はチェックを入れて、Unityの場合はチェックを外す

6.「UVタイル設定」をUVを作ってFBXファイルを書き出した場合は下記のような設定にする

画像6

7.BlenderやMayaなどでベイクしたテクスチャを読み込みたい場合はこちらから一緒に読み込む。基本的にここでは設定しなくてもOK

画像7

8.「OK」を押して読み込む

ベイクをする

1.「ウィンドウ」メニュー→「ビュー」→「表示設定」で「表示設定」のウィンドウを出す

2.「環境の回転」を280前後にする

3.「レイヤー」タブの隣にある「テクスチャセットの設定」をクリックする

画像8

4.「サイズ」は作りたいテクスチャのサイズと同じにする

5.「メッシュマップをベイク」をクリックする

画像9

6.「ベイク処理」ウィンドウが出てくるので、まず「Normal」を下記のように設定する

6-1.「共通パラメーター」の「出力サイズ」はテクスチャサイズと同じにする
6-2.「振幅幅」を8にして、「拡散を適用」にチェックを入れる。これはUV外に少しはみ出して塗る場合に有効にする
6-3.ベイクのためにポリゴン数が多いモデルを使う場合は、右上のアイコンをクリックして読み込む。このモデルはUV展開している必要はない。高精細モデルがない場合は警告が出るがそのままでOK

画像10

6-4.あとはデフォルトのままで良いが、「アンチエイリアス」の値を設定すると、ベイクに時間がかかるがキレイになる

7.基本デフォルトのままで良いが、微調整する場合は「ベイク処理」ウィンドウの「Ambient occlusion」の下記の項目を設定する

7-1.「セカンダリレイ」の数値を大きくすると、ベイクに時間がかかるがノイズが減ってキレイになる
7-2.「最大オクルーダー距離」を大きくすると影の領域が大きくなることも
7-3.「拡散角度」の値が大きいとAOが淡い影になり、小さいほどパッキリとした影になる

8.「ベイク処理」ウィンドウの「Position」は髪の毛で下の色を変えたいときや 空気遠近法のように遠くになるほど青みがかる塗りをするときなどにオンにする

9.「テクスチャをベイク」をクリックしてベイクする

マテリアルを適用する

使いたいマテリアルが一覧にない場合はCreateve Cloudのページから「Substance 3D Assets」をクリックしてダウンロード、アセットの「+」から読み込みます。その際「未定義」になっているところは「basematerial」にして読み込みます。

画像11

1.使いたいマテリアルを画面左の「アセット」から探す

画像13

2.使いたいマテリアルを適用したい箇所にドラッグ&ドロップする。今回はこのオブジェクトのリボン以外のところに「Fabric Denim Base」を適用して、デニム的な帽子にする

画像13

画像14

画像15

3.ディテールは近いものの色が元のデニムなので、もう少しかわいい色に変更する。「塗りつぶしレイヤー」をクリックして追加する

画像16

4.Photoshopの「乗算」「スクリーン」などの描画モードのように、レイヤーを重ねる方法を変えることができる。ここでは「Ldge」と書いてあるところで変更している。その下の「100」は不透明度を変更できる

画像17

5.「フォルダ」をクリックし、「Fabric Denim Base」レイヤーと「塗りつぶしレイヤー」をドラッグ&ドロップして下記のようにまとめる

画像18


マスクをつくる(適用したいメッシュのみマテリアルを適用する)

ここでは同じマテリアルでも、メッシュを分けることでマスクを作る方法を実行しています。IDマップ(3Dアプリによる色分け)でマスクを作る場合は記事の最後をご参考ください。

リボンのところまでデニムとピンクの塗りつぶしが適用されているので、マスクを適用します。今回の帽子オブジェクトのIDマップ(色分けやマテリアル分けなど)は下記のようにしています。

画像19

1.レイヤーウィンドウにある「フォルダー1」の横にある点線の□(「2」と表示されているところ)をクリックし、マスクタイプを「メッシュ名」にする

画像21

画像21

2.マテリアルを適用したくないところのみチェックを外す

画像22

3.レイヤーウィンドウの「フォルダー」の左の□をクリックすると、このような状態になる

画像23

4.帽子の帯リボンの部分にコットンレースのマテリアルを適用する場合は、
4-1.コットンレースのマテリアルを帽子にドラッグ&ドロップし、青い□の部分をクリックする

画像24

4-2.「ジオメトリマスク」の「マスクタイプ」を「メッシュ名」にして、帯リボン部分のメッシュのみチェックを入れる

画像25

4-3.このようになる。レース模様のサイズが大きい場合は「UV変形」→「拡大・縮小」で模様を調整する

画像26

画像28

5.リボンにマテリアルを適用する。「テクスチャセットのリスト」からリボン用のマテリアルを選択する(UVの関係から今回はマテリアルを分けました)

画像27

6.リボンのオブジェクトにマテリアルをドラッグ&ドロップする。各マテリアルの色を変える場合は「Color」のパラメータを調整する。ない場合は塗りつぶしレイヤーを追加する

縫い目を追加する

1.「テクスチャセットのリスト」で、帽子本体の方のマテリアル名をクリックする

画像29

2.その状態で「レイヤー」のブラシアイコンをクリックしてレイヤーを追加する

3.左のツールから「ペイント」をクリックし、ブラシアイコンを選択する。そして検索欄に「Stitch」と入力して「Stitches Straight」を選択する

画像33

画像34

4.プロパティの「マテリアル」タブを選択し、「Base Color」の色を白に変更する

画像35

5.Photoshopのブラシ設定のようにサイズなどを調整する

画像34

6.シンメトリーアイコンをクリックし、左右対称で描けるようにする(片方に描いたらもう片方も自動的に描き込まれる)。実際に描くとこのようになる

画像35

画像35

テクスチャ書き出し

1.「ファイル」メニュー→「テクスチャを書き出し」を選択する

2.「出力テンプレート」タブでオブジェクトを使いたい先の環境を選択する。UnityはHDRPなどはあるが、VRChatなどのUnityの3D用テンプレートがないので、UnityのURPテンプレートをコピーして使用する。
今回は「Unity Universal Render Pipeline (Metallic Standard)」をクリックし、書類アイコンをコピーしてテンプレートを複製する

画像37


3.左側の「Unity Universal Render Pipeline (Metallic Standard)_copy」をクリックし、「VRChat」などに名前を変えておく

4.このように「Normal」を変更する

画像38

5.「設定」タブをクリックし、保存場所とプリセットを選択する

画像39

6.「書き出し」を押して書き出す

7.UnityやUEなど各種環境で読み込む

追記 : IDマップによるマスク作成 BlenderでIDマップをつくる

テクスチャや色などマスクを塗り分けるものとして、3DアプリでIDマップを作成します。この場合はメッシュを分けなくて済むので、容量を気にする場合はこちらの方がベターです。
下記はBlenderで頂点カラーを使ったやり方をメモしておきます。

Blenderの場合はこちらのアドオンを使った方が簡単かもしれません。ひとまずこのアドオンを使わない方法をメモします。

1.Blenderで「ファイル」メニュー→「インポート」からFBXファイルを読み込む

2.画面右上の「オプション」の下のアイコンをクリックし、下記のように設定する

画像40

3.メッシュを選択して「編集モード」にし、「面選択」アイコンをクリックして最初に塗り分けたい面を選択する

画像41

画像42

4.モードを「頂点ペイント」に変更し、その隣の「ペイントマスク」をクリックして選択面だけに色が塗られるようにする

画像43

5.色を設定する。できるだけ濃い色がベター

画像44

6.「ペイント」→「頂点カラーを指定」で塗りつぶす

画像45

7.同じように帽子のリボンのところとリボンを塗りつぶす

画像46

8.UV展開済みであることを前提として、「UV Editing」タブをクリックする

9.「+新規」をクリックして、テクスチャの名前をつける。サイズはサブスタで扱うテクスチャのサイズにしてOKを押す

画像47

10.オブジェクトモードにして、「レンダープロパティ」アイコン(カメラっぽいアイコン)をクリックする

11.「レンダーエンジン」を「Cycles」にして「▶︎ベイク」をクリックして開く

画像49

12.「ベイクタイプ」を「ディフューズ」にし、「影響」を下記のようにする

画像49

13.左下の時計アイコンをクリックし、「シェーダーエディター」を選択する

画像50

14.「追加」メニュー→「テクスチャ」→「画像テクスチャ」を選択して追加する。下記のように「ノーマル」にノーマルマップのノードがついている場合は、右クリックして「削除」で削除しておく

画像55

15.画像のアイコンをクリックし、9.で作成したファイル名を選択する

画像51

16.マテリアルプロパティをクリックし、「ベースカラー」を「頂点カラー」にする。さらにその下のアイコンをクリックし、「Col」を選択する

画像53

17.このノードを選択してから、頂点カラーが適用されたメッシュをクリックした状態で「ベイク」ボタンを押してベイクする

画像52

18.「UV Editing」タブをクリックし、「画像」→「名前をつけて保存」で頂点カラーをベイクした画像を保存する

画像54


追記: IDマップによるマスク作成 SubstancePainterでマスクを作って塗る

上記でIDマップテクスチャを作成することができたので、それを今度はSubstancePainterに適用してマスクを作成します。

1.新規プロジェクトを作成し、Unity・Blender・Mayaに最終的に持っていく場合は下記のようにする。UEの場合は法線マップ形式を「DirectX」にし、「フラグメントあたりの接線空間を計算」にチェックを入れる

画像56

2.「すべてのマテリアルのメッシュ法線マップとベイク済みマップを読み込み」の「追加」をクリックして、Blenderで書き出したIDマップを選択する(複数OK)

画像57

3.「OK」を押して新規プロジェクトを作成する

4.「表示設定」タブから「環境の回転」を280前後にする

5.「レイヤー」タブの隣にある「テクスチャセットの設定」をクリックし、「サイズ」を作りたいテクスチャのサイズと同じにする

6.「メッシュマップをベイク」をクリックする

画像58

7.「ベイク処理」ウィンドウが出てくるので、まず「Normal」を下記のように設定する

7-1.「共通パラメーター」の「出力サイズ」はテクスチャサイズと同じにする
7-2.「振幅幅」を8にして、「拡散を適用」にチェックを入れる。これはUV外に少しはみ出して塗る場合に有効にする
7-3.ベイクのためにポリゴン数が多いモデルを使う場合は右上のアイコンをクリックして読み込む。このモデルはUV展開している必要はない

8.IDのみチェックを外し、あとはデフォルトのまま「テクスチャをベイク」をクリックする

9.「メッシュマップ」の「idマップを選択」で、マテリアルごと(テクスチャセットのリストごと)にBlenderで作成したIDマップを選択する

画像59

画像60

10.帽子部分に適当なマテリアルを適用する。これは後から変更可能

画像61

11.適用してできたレイヤーを右クリックし、「黒のマスクを追加」を選ぶ

画像62

12.下記のようにレイヤーのマスクを選択した状態で、

画像63

「エフェクトを追加」アイコン(魔法の杖?みたいなアイコン)を選択し、「カラー選択を追加」を選ぶ

画像64

13.プロパティにIDマスクが表示されていることを確認し、「カラーを選択」ボタンを押す

画像65

14.そうするとBlenderで頂点カラーで塗りつぶしたのと同じ状態になるので、青い帽子の部分をクリックする

画像66

15.そうすると上記の青の部分のみ適用される

画像67

16.テクスチャを変えたい場合は青い□をクリックして

画像68

変更したいアセットを「Substance マテリアルモード」と書いてあるところにドラッグ&ドロップする

画像69

デニムに変更するとこのようになる。

画像70

画像71


追記 : IDマップによるマスク作成 MayaでIDマップをつくる

BlenderではなくMayaでIDマップを作成する方法です。IDマップテクスチャ書き出し後のSubstancePainterへの適用方法は、上記の「IDマップによるマスク作成 SubstancePainterでマスクを作って塗る」と同じです。

1.MayaでUV展開済みのオブジェクトを読み込み、頂点カラー1色を適用したい面を選択する

2.「メッシュ表示」→「カラーの適用」→「□」を選択し、下記のように設定する

画像72

画像73

3.「カラー値」で塗りつぶしたい色を選択し、「適用」をクリックする

画像74

4.他のメッシュも2.3の方法と同じように行い、塗り分けをする

画像75

5.同じマテリアルを適用したオブジェクトを選択し(メッシュが別になっているようだったら結合しておく)、「メッシュ表示」→「頂点カラーペイントツール」→「□」をクリックする

画像76

6.「アトリビュートマップ」の「▶︎書き出し」をクリックし、下記のように設定する。なおXY方向のマップをSubstancePainterで書き出したいテクスチャと同じサイズにする

画像77

7.マップ名の「書き出し」をクリックし、名前をつけて保存する

MayaでIDマップを作る その2

ひとつのオブジェクトの別々のメッシュに頂点カラーを適用すると、色が混ざってしまう。その場合はメッシュごとに仮のマテリアルを適用し、色を設定する

1.IDマップでマスクを作りたいメッシュを選択し、マテリアルを適用する。マスクごとにメッシュを選択→新しいマテリアルを適用する。この場合は6面のメッシュに対してそれぞれマテリアルを適用している

画像84

2.1.を複製する

6.セットメニューを「レンダリングモード」に変更する

画像82

7.「ライティング/シェーディング」→「ベイク処理」→「マップの転写」を選ぶ

画像83

8.「ターゲットメッシュ」の「選択項目の除去」を選ぶ

画像84

9.転写したいオブジェクト(複製したオブジェクト)を選択し、「ターゲットメッシュ」→「選択項目の追加」をクリックする

10.転写もとのオブジェクト(複製もとのオブジェクト)を選択し、「ソースメッシュ」→「選択項目の追加」をクリックする

11.「出力マップ」→「拡散」をクリックする

画像85

12.「拡散カラーマップ」の横のフォルダをクリックし、保存先を選ぶ

13.「出力マップの接続」の「マップをシェーダに接続」のチェックを外す

画像87

14.「Maya共通出力」でサイズを設定し、「転写方法」を「UV空間」にする

画像88

15.「ベイク処理をして閉じる」をクリックしてIDマップを書き出す

この記事が気に入ったらサポートをしてみませんか?