SubstanceDesinger6からunity2017にマテリアルを持っていく際にちょこちょこハマったので解決策を
フローはこちらの記事を参考にしました
Substance Designer 5からUnity 5へPBRマテリアルをもっていくワークフロー
unityが.sbsarファイルをうまく読み込まない
.sbsファイルがunityでうまく読み込まれず,以下のようなエラーが出ました
Failed to retrieve a single SBSASM file in the archive... Did you use the Substance cooker to generated the archive ?
UnityEditorInternal.InternalEditorUtility:ProjectWindowDrag(HierarchyProperty, Boolean)
こちらに書いてありました(エラーログとは関係のないところが問題のようでした)
Substance Designer 6 Sbars not working with Unity
どうやらunity5ではSubstanceDesigner5までしか完全に対応しておらず,6から新しく追加されたノードは使えないようです
(試してみましたが,unity2017もSubstanceDesigner6からのノードには対応していないようでした)
解決策ですが,まず[編集]⇒[プリファレンス]でプリファレンスウィンドウを開き,[Projects]タブの[Configuration]の項目の[Compatibility Mode]を[Substance Engine v5]に変えておきます
これで,SubstanceDesigner6のノードを使ってしまった場合に黄色の枠でハイライトしてくれるようになります
この枠が表示されるノードを使わないようにすれば読み込まれるようになりました
(ちなみに,画像の法線というノードはグレースケールをノーマルマップに変換するために使用したかったのですが,SubstanceDesigner5までのNormalSobelというノードで置き換えることができました)
スムースネスマップが反映されない
SubstanceDesignerではこのようにスムースネス(ラフネス)マップが反映されていたマテリアルが
unityにもっていくと輝きを失ってしまいました
参考にした記事には
Roughnessは、UnityではMetallicマップのアルファチャンネルで設定する。またUnityではRoughnessではなくSmoothnessと言われる。なので、Substanceで扱われるRoughnessマップをInverseしてMetallicのアルファチャンネルにつなげる。
と書いてあるのですが,それらしいことをしてみてもうまくいかずよくわかりません
いろいろ試しているとうまくいきました
Roughnessの入力がカラー(線がオレンジ色)だったのがまずかったみたいです
そこでRoughnessに入力する前にグレースケール変換を挟むとうまくいきました
(Metallicに何も入力しなくても大丈夫でした)
輝きを取り戻したマテリアル
ハマってて大変でしたがMaterialDesigner楽しいですね