Substance Painter自分用メモ
はじめに
Substance Painterを使い始めたので、 Substance Painterについて自分用のメモをまとめました。
Substance Painterとは
Substance Painterは3Dペイント用ソフトウェアです。 特にPBR用のテクスチャを作るのに向いています。 1つのレイヤーに複数のチャンネルを持たせることができるので、 PBR向けのテクスチャセットを容易につくれます。
プロジェクトの作成
最初にプロジェクトの作成についてまとめます。
最初にプロジェクト作成のダイアログからペイントする3Dモデルを指定します。 このモデルはUV情報を持っている必要があります。
モデルが読み込まれました。
モデルを読み込んだらできるだけ早いうちにベイクを行います。 ペイントを始める前にベイクするとよいでしょう。
「TEXTURE SET SETTINGS」タブから「Bake Mesh Maps」ボタンを押します。
ベイクが完了するとベイクしたテクスチャが表示されます。
ベイクしたテクスチャはペイントのときに参照されるデータとなります。 たとえば曲率マップはエッジ部分の汚れなどに使われます。
こういったさまざまな機能を使うためにもペイントを始める前にベイクすることをお勧めします。
画面構成
Substance Painterの画面は次のようになっています。
上部のドロップダウンメニューで3Dビューのみ表示したり 2Dビューのみ表示したりといったこともできます。
右側にはレイヤーの情報や、ブラシ、マテリアルの情報などがまとまっています。
2D/3Dビューの操作
マウスホイールで拡大縮小できます。 Alt-中ボタンドラッグで平行移動できます。 Alt-左ドラッグでビューの回転ができます。 Alt-Shift-左ドラッグで回転のスナップができます。 Shift-右ドラッグでライトを回転できます。 Fキーで画面中央に収めます。
Cキーで各チャンネルを表示できます。 Bキーでベイクしたテクスチャを表示できます。 Mキーでマテリアルを表示できます。
ライトには環境マップを利用しています。 環境マップは右側Display SettingsのEnvironment Mapから指定できます。
環境マップを表示させることもできます。 Environment Opacityで表示の透明度を指定できて、 Environment Blurで表示する環境マップのぼかし具合を指定できます。
レイヤー
Substance PainterではPhotoshop等と同じようにレイヤーを追加して作業を進めていきます。
レイヤーは下から順番に積み重なっていきます。
このレイヤーでは複数のチャンネルを扱っています。 特定のチャンネルのサムネイルを表示するには上部のドロップダウンメニューから選びます。
2D/3Dビュー上でCキーを押すことで各チャンネルを表示できます。
レイヤーは各チャンネルごとに合成モードが設定されています。 右側のドロップダウンメニューから合成モードを選べます。
fillレイヤー
塗りつぶしのレイヤーです。 バケツのボタンから追加できます。
MATERIALタブでは塗りつぶしたいチャンネルを個別にオン・オフできます。
オンにしたチャンネルへ単色を指定できます。
また、テクスチャを指定することもできます。
Substance Designerで作られたsbsarのパターンを プロシージャルテクスチャとして使うこともできます。 その場合パラメータを設定できます。
テクスチャのマッピング方法を指定できます。 デフォルトではUVにテクスチャをそのまま投影する方法になっています。
テクスチャのスケールや回転、平行移動を調整できます。
テクスチャのリピートの指定もできます。
Tri-Planarを選ぶと三面から投影してブレンドする形でマテリアルを貼り付けてくれます。 UVマッピングだと継ぎ目が出てしまうようなものでもきれいにマッピングできたりします。 このスザンヌのモデルはUVを自動展開したもので細切れになっているので UVのマッピングだときれいに模様が出ません。 Tri-Planarだと模様が細切れにならずきちんと出てくれます。
自分で作成したテクスチャをプロジェクトに読み込むこともできます。 テクスチャとして登録したい画像をSubstance Painterのシェルフ上にドラッグ&ドロップします。 追加する画像の用途と追加する範囲を設定して追加します。 今回はテクスチャとしてプロジェクトへ追加することにしました。 グローバルに追加すれば別のプロジェクトでも利用できるようになります。
テクスチャのリピートをオフにすることでfillレイヤーをデカールとして使えます。
例はカラーのチャンネルで説明しましたが、他のチャンネルも同様にテクスチャなどを指定できます。
複数チャンネルの設定をまとめたマテリアルというものがあります。 「Material mode」ボタンからマテリアルの選択ができます。
マテリアルには上記設定のプリセットのものと、Substance Designerで作られたような sbsar形式のマテリアルとの二種類があるようです。
ただのプリセットとしてのマテリアルは、読み込むとそのプリセットが設定されます。
sbsar形式のマテリアルを読み込むと、それぞれのチャンネルに個別にテクスチャを設定した場合とは 違った形になります。
sbsar形式のマテリアルは、読み込むと自動でチャンネルのマッピングがなされます。 チャンネルのマッピングを変更もできます。
sbsarのパラメータを指定できます。
Substance Painterにはプリセットや sbsarのマテリアルがたくさん用意されています。 自分でマテリアルをいろいろ設定しなくても、用意されたマテリアルを選択するだけでも作業できます。
シェルフ内のマテリアルは「Material mode」ボタンから選択する他に、 レイヤーへドラッグ&ドロップすることで新しいfillレイヤーとして追加されます。
Paintレイヤー
Paintレイヤーというブラシで描くことのできるレイヤーがあります。 レイヤーの上部のボタンから追加できます。
マテリアル設定
マテリアルについてはfillレイヤーと同じです。
ブラシ設定
ペイントするブラシにもいろいろな設定があります。
Photoshopのブラシと同じような感じで、 Alphaで指定した形状を先端形状としたブラシになります。
Alphaにはインポート時にalphaとしたテクスチャを割り当てられます。 次の画像は自分で作ったテクスチャをアルファとして割り当てたものです。
Jitterをすべて0にすることでスタンプのようなブラシが作れます。
Alignmentでブラシの投影方法を変更できます。
「Camera」だとブラシはカメラの平面と平行になります。 曲がった部分は引き伸ばされます。
「Tangent|Wrap」だとブラシが描画するオブジェクトの表面と平行になります。 ペイントされる模様は包むような形になるので引き伸ばされません。
「Tangent|Planar」はブラシが描画するオブジェクトの表面と平行になります。 「Camera」のときと同じで投影されるので引き伸ばされます。
「UV」ではUVマップに基づいてペイントされます。
Cameraなどで描画した場合にはUV上の離れた部分にも描画されますが、 UVではUV上の離れた部分には描画されません。
ブラシはシェルフにたくさんのプリセットが用意されています。 プリセットをベースに調整して使えば自分で最初からブラシを作らなくてもよいですね。
次にいくつかブラシを使う上で便利なショートカットをあげておきます。
Ctrl-右ドラッグ水平移動でブラシサイズを変更します。 Ctrl-左ドラッグ水平移動でフローを変更します。 Ctrl-左ドラッグ垂直でブラシの回転を変更します。
F5で3Dビューを透視投影に変更、F6で3Dビューを平行投影に変更します。
DキーでLazy Mouseをオン・オフできます。 なめらかな線を描画したいときに使えます。
パーティクルブラシ
Substance Painterにはパーティクルブラシという特殊なブラシがあります。 からパーティクルブラシを使えます。
パーティクルブラシはその名のとおりパーティクルを使って描画する特殊なブラシです。 炎で焼けたようなものだったりガラスのひび割れだったり 液体が垂れたような模様などが簡単に描けます。
こちらもプリセットが用意されているので、最初はそれを使ってみるとよいでしょう。
レイヤーマスク
レイヤーにはマスクを与えられます。
ホワイトマスクとブラックマスク
LAYERSの上部のドロップダウンメニューから「Add white mask」で ホワイトマスクの追加ができます。 「Add black mask」でブラックマスクの追加ができます。
レイヤーの右側のサムネイルがマスクのサムネイルです。
fillマスク
fillレイヤーと似たfillマスクというのもあります。 レイヤーのマスクの方を選択した状態で右クリックのメニューから 「Add fill」を選びます。
fillマスクでグレースケールのテクスチャをマスクとして使ってみます。
マスクは複数重ねていくことも可能です。
合成モードを適切に指定すると複数のマスクの和集合や積集合などをマスクとすることもできます。
ペイントマスク
マスクを選択した状態で 右クリックのメニューから「Add paint」でペイントマスクの追加ができます。
ペイントレイヤーでは模様のあるマテリアルをペイントするのが難しいです。
fillレイヤーとペイントマスクを使うとうまくいきます。
Xキーで描画ツールのグレースケールを反転できます。
ジェネレータ
マスクを選択した状態で 右クリックのメニューから「Add generator」でジェネレータによるマスクを追加できます。
「Generator」ボタンからジェネレータを選びます。 今回はDirtを選びました。
ジェネレータはベイクしたテクスチャの情報を有効に使ってくれるようです。 よい感じに凹んだ部分が汚れているマスクを作ってくれました。
このようにペイントを使って手作業で塗らなくてもジェネレータで十分な場合も多いです。
ジェネレータのプリセットはSmart masksにいくつも用意されています。
ジェネレータで作成したマスクにペイントレイヤーを重ねて微修正してみます。 次のようにしてパーティクルブラシで汚れを追加してみました。
よい感じの汚れになりました。
ジェネレータをSubstance Designerで作成することもできるそうです。
カラーマスク
マスクを選択して右クリックから「Add color selection」でカラーマスクを作成できます。
カラーマスクはIDマップと組み合わせて使うとよいです。
次の画像はIDマップを表示してみたものです。
IDマップの作成
BlenderでIDマップの作成をしてみます。
材質ごとに異なるマテリアルを割り当てます。 マテリアルのDiffuseカラーを全部異なる色にしておきます。
UV展開して新しくテクスチャを作成します。
ベイクモードを「Texture」にしてベイクします。
マテリアルのカラーがテクスチャにベイクされました。
BlenderのTexToolsというアドオンを使うとIDマップ作成の作業が楽になります。 マテリアルを割り当ててTexToolsでMaterial IDをベイクします。 マテリアルにわざわざ違う色を割り当てていかなくても、 マテリアルごとに固有の色を割り振ってくれます。
作成したテクスチャを名前をつけて保存します。
TexToolsではマテリアルIDの他にMeshIDをベイクできます。 構造上分離したメッシュごとに別のIDを割り振ってくれます。 場合によってはこちらをIDマップとして使うこともできるかもしれません。
Substance Painterでも頂点色やメッシュごとにIDマップを作成してベイクできるようです。
IDマップの利用
fillレイヤーでマテリアルの塗りつぶしレイヤーを用意して、 カラーマスクで色を選択します。
マテリアルを割り当てるのが簡単にできます。
Substance Painterといいながら手作業でペイントせずにテクスチャを作成できます。 IDマップとfillレイヤーでマテリアルを割り当てて、 generatorで汚れなどを与えるだけで十分なクオリティのものが作れたりします。 ペイント作業は微妙な手直しなどだけで十分なことも多いです。
フィルター
右クリックのメニューから「Add filter」でマスクにフィルターを重ねられます。
IDマップの選択範囲にぼかしをかけるなどといったことが可能になります。
フォルダレイヤー
レイヤーに階層構造を作れます。
フォルダ自体にマスクを付けられます。
アンカー
ある時点でのレイヤーをその後のレイヤーでテクスチャとして使える機能です。
使用例として色の指定をアンカーでまとめてみます。
まずは単色のfillレイヤーを用意します。
右クリックのメニューからアンカーを追加します。
アルミニウムのマテリアルを割り当ててベースカラーをアンカーから選びます。
追加で布のマテリアルを割り当てて同様に色をアンカーから選択します。
アンカーをつけたfillレイヤーの色を変更すると全体が変更されます。
他の用途としてはジェネレータのエッジのサビにノーマルマップを対応させたりもできるようです。
スマートマテリアル
複数のレイヤーをまとめてひとつのマテリアルとしてプリセットにしたものです。 プリセットのマテリアルをレイヤーにドラッグ&ドロップしたら レイヤーフォルダーが追加されます。
スマートマテリアルは自分で作ることもできるようです。
レイヤーフォルダーにマスクを付けられるので、 スマートマテリアル自体にもマスクを掛けられます。 ちょっとリッチなマテリアルという感覚で使っていけます。
テクスチャの書き出し
ペイントしたものはテクスチャとして書き出せます。 メニューから「Export Textures」を選択します。
今回はUnity向けに書き出してみます。
Unityで使ってみました。
おわりに
Substance Painterについてまとめました。 Substance Painterはあっという間にそれらしいマテリアルが作れるので 触っていて楽しいですね。