今回はSubstance Designerでテクスチャを出力するまでの大まかな流れについて記事にしてみようと思います。
前回と同様、初心者の勉強を兼ねた覚え書きです。
もっと基本的な内容は画面の見方や使い方の記事にまとめていますのでそちらも併せてご覧ください!
もくじ
グラフ画面の使い方
まずは最初に知っていたら特に便利だと思うツールをピックアップしてみました。他のものについては活用方法がよく分かっていないものもあるのですが、分かったら追記しようと思います。

①選択しているノード部分を拡大表示します。
②ノードを全体を画面のサイズに合わせて縮小表示します。
③出力関係のメニューはこのスパナアイコンに入っています。
④選択したノードを縦に整列・横に整列します。(※キーボードショートカットのhとvでそれぞれ同じ操作になります!)
⑤ノードをグリッドに沿って配置し直します。
⑥選択したノードをグループにして名前や説明文をつけられます。
⑦グラフの空いたところにコメントを書くことができます。
ノードの使い方
ノードには、「始点になるノード」「中間になるノード」「終点になるノード」があります。

始点(スロットが右のみ)

中間(スロットが左右)

終点(スロットが左)
※「出力」ノードのみ
始点になるノードは置くだけでOKですが、中間になるノードは必要なスロットを正しく接続してから値を調整する必要があります。
またノードの入出力は全てカラーかグレースケールのどちらかになっています。スロットが黄色ならカラー、灰色ならグレースケールで同じもの同士でしか接続できません。黄色と灰色の2色になっている場合はどちらでも接続できます。
また入力(左側)のスロットの中に一つだけ黒丸がついているものがありますが、ここに接続されたノードのベースパラメーターを継承するようになっています。
最初にやっておくと便利な設定
ノードはカラー同士・グレースケール同士でしか接続できないため、種類が違うものを接続したい場合は間にカラー⇔グレースケールの変換をするノードを使って変換してからつなげることになります。


カラー→グレースケールは「グレースケール変換」、グレースケール→カラーは「グラデーションマップ」を使うのですが、よくある作業なのでかなり面倒です。
変換ノードが自動的に挿入されるようにする設定があるので、面倒な人はオンにしておくのがオススメです。
「編集」→「環境設定」→「グラフ」から「カラー/グレースケール変換ノードを自動的に挿入」にチェックをつけます。

↓変換用のグラデーションマップが挿入されました。通常のグラデーションマップとは違って名前だけの表示になっています。

テクスチャを画像として出力する
試しにテクスチャを画像として出力し、Unityのシェーダーに設定してみます。(実際はSubstance Designerから出力したテクスチャをそのままオブジェクトに貼ることは少ないと思いますが…)
UnityのURPのLitシェーダー用で、Albedo・Metallic・Smoothness・NormalMap・HeightMapを指定しようと思います。
※URPのLitシェーダーに持っていく際は注意点がいくつかあります!
①Smoothnessのデータ格納先
MetallicもしくはAlbedoのアルファにするようになっているようです。(カラーの画像はRGBAの4つのデータを持っていて、透明度のパラメーターを使っていなければAのチャンネルが空いているのでグレースケール1枚分のデータを格納するのに使えます)
今回はAlpha Mergeというノードを使ってMetallicのAにSmoothnessを入れてみました。
②SmoothnessとRoughnessの違い
UnityのSmoothnessはSubstance Desighnerでの粗さ(Roughness)の逆になっています。Unityに持っていく際にはInvertノードを使って階調を反転させる必要があります。
今回はテスト用にこんなテクスチャを作ってみました。

ノードの画像を単体で2Dビューから保存する方法や.sbsar(Subtanceアーカイブ形式)のファイルを出力する方法もありますが、今回は出力ノードを使って画像で出力します。
ツールバーの「出力」ノードを接続するとそのノードが出力できるようになります。

プロパティの「識別子」でエクスプローラーウインドウの表示名とファイル出力時の名前、「ラベル」でノードの名前を変更できます。


出力ノードは複数配置することで全部の画像ファイルをまとめて出力できるので、出力したいすべてのノードに接続して名前をつけておきます。

出力するにはツールバーのスパナアイコンから「出力をエクスポート」を選びます。

保存先は好きな場所を指定します。形式については、Unityに持っていくのであればpngで大丈夫だと思います(Unity側で他の形式も色々読み込めますがとりあえずpngで問題ないです)。
パターンというのは保存時のファイル名で、下記だとグラフ名_識別子となっていますが使いやすいものに指定すると良いです。

実際のモデルに反映させてみる
UnityにインポートしてLitシェーダーを作り、Planeのオブジェクトに貼り付けてみました。

Unityの方でもパラメーターはいろいろ調整できるのですが、やはりSubstance Designerとはそれなりに表現が違います…。これはこれで独特の雰囲気がありますが。時々テスト用のものをUnityに入れて見た目を確認しながら作業を進めるとよさそうですね。
次回からはノードについての勉強の記事を書いていこうと思います!
どうぞよろしくお願いします。