Substance Designerでプロシージャルなテクスチャを作ってパラメータを設定すれば、Unityでランタイムでそのパラメータをいじってテクスチャを生成できると聞いて、そのワークフローを確認してみた。
##1.新規PBR用テクスチャ
まずは新規作成でPhysically Based (Metallic/Roughness)を選択。その下のPhysically Based (Specular/Glossiness)でもいいらしいけど、Metallic/Roughnessの方がテクスチャの意味がわかりやすいらしい。
Physically Based(Metallic/Roughness)を選ぶと、4つのアウトプットが現れる。このうちUnityで使われるのはBase ColorとNormalとMetallic。Roughnessは、UnityではMetallicマップのアルファチャンネルで設定する。またUnityではRoughnessではなくSmoothnessと言われる。なので、Substanceで扱われるRoughnessマップをInverseしてMetallicのアルファチャンネルにつなげる。
##3.マテリアル作成
適当にノードをつないでマテリアルを作る(図はLynda.comのUp and Running Substance Designerのサンプルマテリアル)
##4.マテリアルのエクスポート
Explorerのなかにある.sbsを右クリックしてPublishを選択しsbsarファイルをエクスポートする。Publishオプションはデフォルトのままで。
##5.Unityにエクスポートしたsbsarファイルをインポート
sbsarファイルをUnityにドラッグ&ドロップでインポート。無事各アウトプットがUnityのStandardシェーダーの各スロットに適用されている。
Occulusionマップなどを追加したい場合は、Substance DesignerでOutputを追加して、Usageにそのマップに応じたアイテムを追加する(OcculusionであればambientOcclusion)