
今回は、Substance 3D Painter第一回目として、初めてSubstance 3D Painterに触れる人を対象に、難しいことは端において、テクスチャを出力して、一連の流れを体験してもらいます。Autodesk Mayaで作成したオブジェクトに、Substance 3D Painterのプリセットされたマテリアルを設定したうえでテクスチャを書きだし、再度Mayaに戻ってテクスチャが張られたオブジェクトを確認するという流れで、Substance 3D Painterとはどんなソフトで何がすごいのかを体験してもらいます。
※Substance 3D Painterの作業のみ行えるようにモデルデータを用意してありますので、Autodesk Mayaの項は、読み飛ばして頂いてもかまいません。
Substance 3D Painterで何が出来るの?
Substance 3D Painterとは
3Dテクスチャ作成ソフトです。3Dモデルに直接ペイントや質感設定を行い、リアルタイムで結果を確認できる3DCGプロ御用達のツールです。ゲーム開発、映画、テレビ番組のVFX、プロダクトデザインなど、幅広い業界で使用されています。
Substance 3D Painterの主な特徴5つ
- リアルタイムビューポート:
ビューポートの変更をリアルタイムで反映し、高度なレンダリング技術を使用して、作業中の3Dモデルをリアルに表示します。 - 豊富なマテリアルライブラリ:
多種多様なプリセットマテリアルが含まれており、それらを利用して迅速に高品質なテクスチャを作成することができます。 - 高度なペイントツール:
ブラシ、プロジェクション、スタンプ、ステンシルなど、多彩なペイントツールを使用して、細部にわたるテクスチャ作業が可能です。 - 物理ベースレンダリング(PBR)ワークフローのサポート:
PBRワークフローをフルサポートしており、フォトリアルなマテリアルの作成とレンダリングが可能です。 - スマートマテリアルとマスク:
環境に応じた摩耗や汚れなど、複雑なエフェクトを簡単に適用できるスマートマテリアルやマスク機能があります。
Substance 3D Painterを使う4つのメリット
- 高品質なテクスチャ作成:
非常にリアルで詳細なテクスチャを効率的に作成することが可能です。 - 効率的なワークフロー:
豊富なプリセットマテリアルや自動化ツールを使用することで、作業プロセスを大幅に効率化できます。 - クロスプラットフォーム対応:
Autodesk MayaやBlenderやUnrealEngine,Unityといった様々な3Dソフトウェア、ゲームエンジンに対応したテクスチャを瞬時に切り替え出力することができます。 - リアルタイムフィードバック:
リアルタイムビューポートにより、作業中の変更が即座に反映されるため、デザインの試行錯誤を迅速に行うことができます。
とにかく使ってみよう!
STEP1: Mayaでオブジェクトを出力する
Maya(学生版)インストール
Maya(学生版)インストールがまだのかたは以下のページをご参考に。

3Dモデルの確認
今回は企画展”Departure / Arrival”の展示イラスト用画像に使用する壁オブジェクトを実例にします。

壁に穴が開いているだけの単純なオブジェクトです。
上記.fbxファイルは以下よりダウンロードできます。
Substance 3D Painterの作業のみ行いたい場合は
こちらをダウンロードの上STEP 2 : Substance 3D Painterを使うにお進みください。

UV展開
まずはテクスチャを張るための準備としてUV展開を行います。

単純な形状なので特に難しい展開は行いません。
モデリング > UV > 自動 (Modeling > UV > Automatic )

オプションボックスもデフォルトままでokです。
編集>設定のリセット
投影ボタンをクリックします

ビューポート上で投影が確認できました。
モデリング>UV >エディターを開きます。

Substance3D Painterにデータを持っていく前に、展開されたUVに以下の確認をする必要があります。
- UVが全て表の状態か
- UVが重なっていないか
- UVが全て0-1の領域に収まっているか

ポリゴンの表裏が確認できます。青=表 赤=裏
色が濃くなっている箇所はUVが重なった状態なので修正が必要です。

UVの位置が確認できます。
U1V11001内であればOKです。

UVがすべて表(青)、重なっていない状態を確認しました。

少しだけUVの配置を手直しします。
マウスを右押しっぱなしにしてUVシェルで放します。

下の方の壁をクリックして選択します(UVシェルを選択するとUVがつながっている塊を一括選択してくれます)。

UVツールキット >トランスフォーム > 回転
のボタンを押して壁の向きを揃えます。

位置も修正しました。これでUVはOKです。
マテリアルの適応
テクスチャを作成する前段階ではありますが、ここでマテリアルを適応します。理由は、ここで適応したマテリアルの名前が、Substance 3D Painterが出力するテクスチャの名前に紐づくためです(デフォルトの出力設定の場合)。

ハイパーシェードを開きます。

ブラウザにカーソルを置きTABキーを押し[aist]と入力します。
予測変換で「aiStandardSurface」が見つかりますのでクリックします。

aiStandardSurface1(名前の箇所をクリックして名前を変更します。

”M_set0_wall”としました。マテリアルの名前であることを認識しやすいようにするため、先頭にM_を付けました。以前は語尾に”_mtl”とつけていました。

上記マテリアルをオブジェクトに適応します。方法は多数ありますが、今回はオブジェクトを選択した状態で”M_set0_wall”の上にカーソルを置き
マウス右クリック > マテリアルをビューポート選択に割り当て
>マウスのボタンを放します
オブジェクトの書き出し


ファイル名:Wall_sample_End.fbx
ファイルの種類:FBX export
選択項目の書き出し
を押します。
STEP 2 : Substance 3D Painterを使う
お待たせしました。本題のSubstance 3D Painterです。

Substance 3D Painter学生版のインストール

Substance 3D Painter学生版のインストールがまだのかたはこちらを参考にインストールしてください。
Substance 3D Painter起動

Substance 3D Painterを起動します。

ホーム画面です。初心者向けに使い方の説明やフォーラムサイトへのリンクなどがあります。上記はヘルプのタブからも見ることが出来ます。慣れてきたら表示OFFにチェックを入れます。
レイアウトの名称と役割

アセット(Assets)
アセットパネルは、マテリアル、ブラシ、アルファ、テクスチャ、プロジェクションツールなど、ペイント作業に使用するリソースにアクセスします。ここからアセットを選択し、3Dオブジェクトに適用します。
2Dビュー(2D View)
2Dビューは、UVマップやテクスチャを平面的に表示します。これにより、テクスチャがUVレイアウトにどのようにマッピングされているかを正確に把握し、細かいテクスチャの編集や修正を行うことができます。
3Dビュー(3D View)
3Dビューは、モデルを3次元空間内で視覚化し、リアルタイムでペイント作業を行うメインの作業スペースです。ユーザーはここでオブジェクトをさまざまな角度から確認して、ペイントやマテリアルの適用を行います。
テクスチャセットのリスト(Texture Set List)
テクスチャセットのリストは、インポートされた3Dモデルに含まれる異なるテクスチャセットを表示します。これにより、ユーザーは特定のテクスチャセットを選択して作業を行うことができ、複数のマテリアルやテクスチャレイヤーを管理することが可能になります。
レイヤー(Layers)
レイヤーパネルは、Photoshopのように、テクスチャリングプロセス中に作成されたレイヤーやエフェクトを管理します。各レイヤーは独立して編集でき、マスク調整などの機能を使って、複雑なテクスチャやマテリアルを作成できます。
プロパティ(Properties)
プロパティパネルは、選択されたツール、ブラシ、レイヤー、またはアセットの詳細設定を表示します。ブラシのサイズや形状、マテリアルのパラメーター、レイヤーのオプションなどを細かく調整できます。
プロジェクトを作成する

ファイル>新規
を選択します。

テンプレート:今回はArnold用のマテリアルで読み込むため
PBR-Metaric Roughness Alpha-blend(shader_assets)を選択します。
ファイル:Mayaから書き出したWall_sample_End.fbxを選択します。
ドキュメントの解像度:2048(ご自身のPCのグラフィックボードの性能と相談しましょう)

Mayaから書き出した壁オブジェクトが読み込めました。
3Dビューの操作方法
Mayaと同じです。
ALT+左ドラッグ | タンブル(回転) |
ALT+右ドラッグ | ドリー(前後) |
ALT+中ドラッグ | パン(平行移動) |
プリセットの質感を適応する

その中からConcrete Coarseを3Dビューにドラッグ&ドロップします。
Concrete Coarseがモデルに適応されました。

個別のテクスチャ要素の確認
キーボードのショートカットcキーを押すことでテクスチャの個別要素を切り替えながら確認することが出来ます。






※Emissive(自己発光)は使われていない為アルファで抜かれたチェック表示になっています。

ショートカットmキーで全てのテクスチャ要素+ライティングの状態に戻ります。
ライティング(HDRI)の確認
すみません、ライティングの説明を忘れていました。Substance 3D Painterの3Dビューの表示画面はとてもきれいに質感を出してくれます。その理由は、ライトとして予め天球画像が設定されているためです。
天球画像の表示

右上のディスプレイのアイコンをクリックすると表示設定のウィンドウが現れます。

「環境の不透明度」を上げ、「環境ブラー」を下げます。
隠れていた天球画像が確認できました。
表示オブジェクトと表示テクスチャは常時このライティングの影響を受けています。
天球画像の回転
「環境の回転」で天球画像が回転して、光源の位置を変更できます。
ショートカットキーはShift+ マウス右クリックです。
天球画像の変更

天球ライトは変更が可能です。森の天球に変更すると壁が周囲の光を受けて緑色に変化したのが分かります。
ご自身が配置する環境に近い天球画像を用意して完成イメージを近づけることが制作の近道になります。
タイリングの調整
この後、質感を追い込んでいく工程が一番大事なのですが、今回は流れをつかむことが目的なので、
繰り返し回数(タイリング)のみを変更します
プロパティ > 塗りつぶし > UV変形 > タイリング
スライダーバー、または数値入力で 1→3 に変更します。

2Dビューの枠が縮小し、テクスチャの繰り返し回数が増え、密度感が出ました。
テクスチャの書き出し
今回はこれで質感完成として、テクスチャを出力します。

ファイル > テクスチャを書き出し
を選択します。

設定画面が表示されます。
一番大事な箇所は「出力テンプレート」です。
レンダラーやゲームエンジンなどの出力先を設定することでそれぞれの最適化されたテクスチャを描きだします。
今回はArnold(AiStandard)に設定します。
ファイルの種類はArnoldのようなプリレンダラーの場合、高画質のexrかTiff形式が良いとされていますが、今回は容量の少ないPNG形式を選択しました。

書き出しボタンをクリックすると一括でテクスチャが出力されます。
正常に書き出し完了した模様です。
出力したテクスチャの確認
6枚のテクスチャが同時に出力されました。
この内容と数は「出力テンプレート」によって変わります。
カスタマイズも可能です。

それぞれのテクスチャの役割
Base Color: ベースカラーテクスチャ。sRGBカラーで色を表現します。
Metalness: メタリックテクスチャ。金属部分を表現します。黒が非金属、白が金属です。
Roughness: ラフネステクスチャ。マテリアルの光の散乱度を制御します。黒がつるつる、白がざらざらです。
Normal Map: 法線マップテクスチャ。表面の凸凹を疑似的に表現します。
Height Map: 高さマップテクスチャ。メッシュに凹凸をつける際に使用されます。白黒です。
Emission: 発光テクスチャ。RGBカラーでマテリアルの発光する場所を表します。
プロジェクトファイルの保存
ファイルメニューから「保存」または「名前を付けて保存」を選択します。
プロジェクトファイル(.spp)として保存します。
Substance 3D Painterの作業は以上で終了です。おつかれさまでした。
STEP 3 : Maya(Arnold)でのテクスチャ読み込み
「接続する」作業は初心者には難しいところです。
背景アセットなど、大量のテクスチャをつなぐ場合は、自動化するケースがほとんどです。
おそらく今後は3Dモデルとテクスチャデータを一括で読み込むVRM形式のようなフォーマットが主流になると思うのですが、皆さんはそれぞれのテクスチャの意味を理解することで質感を追い込むタイミングが必ず来ると思います。
地味な作業ですが繋ぎながら、質感の変化を確認していきましょう。
MayaのPBRマテリアルの接続の知識をお持ちの方、ショートカットしたい方はプラグインの使用をお勧めします。

aiStandardSurfaceへのつなぎ方
MayaのArnoldレンダラーで確認するため、aiStandardSurfaceに繋げていきます。


出力した6枚のテクスチャをaiStandardSurfaceに上記のように繋ぎます。最重要テクスチャは
質感を決定する
・Base Color
・Metalness
・Roughness
表面の凹凸を表現する
・Normal Map
の4種類です。
BaseColorテクスチャのつなぎ方

「プロパティエディタ」,または「アトリビュートエディタ」の
Base > Color右側のチェッカーのアイコンをクリックします。
余談:Mayaの「プロパティエディタ」と「アトリビュートエディタ」
マテリアルを調整するウィンドウはハイパーシェードの中の「プロパティエディタ」とCtrl+Aで呼び出す「アトリビュートエディタの2種類があり、どちらを調整しても結果は同じなのですが、アトリビュートエディタにあってプロパティエディタにないパラメーターが存在します。プロパティエディタで探しても見つからない場合はアトリビュートエディタを開くか、早い段階でアトリビュートエディターを使う癖をつけておくことをお勧めします。


ウィンドウが開きますので「ファイル」をクリックします。

「イメージの名前」でBaseColorテクスチャを選択します。
Metalness、Roughnessテクスチャのつなぎ方
「プロパティエディタ」,または「アトリビュートエディタ」の
【Metalness】
Base > Metalness 右側のチェッカーのアイコンをクリックします。
【Roughness】
Specular > Roughness 右側のチェッカーのアイコンをクリックします。

「イメージの名前」でそれぞれMetalness、Roughnessテクスチャを選択します。
☑カラースペースのファイル ルールを無視
カラースペース RAW
を選択します。
カラースペースが変更できない場合
カラースペースの項目がグレーの状態で変更できない場合は、
ウィンドウ > 設定/プリファレンス > プリファレンス
ウィンドウタブのカラー管理 > カラー管理プリファレンス
☑カラー管理を有効化
チェックを入れてください。

normalマップテクスチャのつなぎ方

GeometryタブのBump Mapping 右側のチェックマークをクリックします。

ファイルをクリックします。

・バンプ深度:1だとちょっと凸凹が強いので少なめに調整します。
・使用対象:接線空間法線(Tangent Space Normals)
を選択することでnormalマップに対応します。
・バンプ値 右側のでFileノードに移動し、テクスチャを設定します。 ボタン

「イメージの名前」でNormalテクスチャを選択します。
☑カラースペースのファイル ルールを無視
カラースペース RAW
を選択します。
ハイト(Height)マップテクスチャのつなぎ方
ハイト(Height)マップは高さ情報を担うため、256段階しかない8Bitテクスチャよりもダイナミックレンジが必要です。従って、通常は.exr形式のファイルを使用します(今回は説明の為pngファイルを使用しました)。
ハイパーシェードからaiStandardSurfaceの上流(右側)にある〇〇〇〇SGという(シェーディンググループ)ノードを選択します。
ディスプレイスメントマテリアル右側のチェッカーアイコンをクリックします。


ファイルをクリックします。

ディスプレイスメント 右側のでFileノードに移動し、テクスチャを設定します。 ボタン

「イメージの名前」でNormalテクスチャを選択します。
☑カラースペースのファイル ルールを無視
カラースペース RAW
を選択します。
Arnold用ライトを設定
Arnold初期状態はライトがないのでとりあえず設定します。

Arnold > Lights > Physical Sky
疑似的な屋外環境ライトが作成されます。今回はテクスチャの確認だけなので一旦これでOKです。
レンダリング
Arnoldでレンダリング結果を確認します。

Arnold > Render
Render Previewウィンドウを開きます。

▶ボタンを押して結果を確認します。
光量が足りない時はPhysical SkyのIntensityを上げて調節してみて下さい。
Substance 3D Painterのプリセットの質感をドラッグ&ドロップしただけで、フォトリアルな壁の質感のテクスチャを得られることが出来ました。
まとめ
今回は、Substance 3D Painter第一回目として、初めてSubstance 3D Painterに触れる人を対象に、
Autodesk Mayaでオブジェクトを出力
Substance3D Painterでテクスチャ作成
Mayaでテクスチャをオブジェクトに張り付け
という、一連の流れを体験してもらいました。
このページの内容が
「Substance 3D Painterがすごいらしいけれど、どこから手を付ければいいのかわからない」
という初心者の方が最初の一歩を踏み出す一助になれば幸いです。