(cache) borndigitalのブログ:Tips:Substance Painterで作成したテクスチャをUnity5.3に適用 - livedoor Blog(ブログ)
2015年12月11日

Tips:Substance Painterで作成したテクスチャをUnity5.3に適用

お疲れ様です。
ボーンデジタルの吉田です。

Unit5.3のリリースにて、AllegorithmicのサイトやUnityのサイトで以下の内容が上がっていたので早速試してみました。

Shaders: Smoothness curve of Standard shader matches Substance Painter and Marmoset Toolbag2 (only when tools are using GGX) very closely now. Your smoothness textures might need an update.

Shaders: To improve visual quality of specular highlight Standard shader is now using GGX distribution function. Previously Blinn-Phong was used.

https://unity3d.com/jp/unity/whats-new/unity-5.3

https://www.allegorithmic.com/blog/unity-53-matching-substance

実際に試してみると・・・

001


以前と違い、確かにSmoothnessの部分がUnity用に調整しなおさなくても、かなり近似してる!!
超便利になったので、この設定を記事にすることにします。

この記事は予告なくクローズし、クローズ後は弊社サポートサイトにて公開します。ご了承ください。

MeshデータはSubstanceShareからGDC FPS Femaleをダウンロードして使用しています。

https://share.allegorithmic.com/libraries/427

含まれているデータがOBJなので、一旦Mayaに読み込んでFBXで再度出力しています。
これは私の単なる知識不足で、複数マテリアルを持ったOBJをUnityに読み込んだ時に、そのままマテリアルをロードする方法がわからなかったからです・・・。OBJから複数マテリアルのままUnityに持ち込めるのであればFBXに変換する必要はありません。

まずは、SubstancePainterでテクスチャを作成して下さい。

002


SubstancePainterでのテクスチャ作成はこちらのムービーをご参照ください。


テクスチャが完成したら、Exportウィンドウを開きます。

Configurationタブにて、Unity5 (Standard Metallic)を選択して、Output Mapsを確認します。
UnityはMetallicとSmoothnessが1データ内に収められている必要があるので、MetallicShoothnessというOutputmapがあります。
私はAOも一緒に出力したかったのでAOのOutput mapsを設定しています。

Exportタブに戻り、ConfigでUnity 5(Standard Metallic)を選択し、出力先、拡張子を決めて出力します。

004


これで必要なテクスチャを取得することができました。
Unityを起動します。

大分前にUnityの小林様に教えて頂いた内容を復習して今回なんとかゴールにたどり着きました。。
日々勉強ですね。

Edit>Project Settings>Playerを開き、Color SpaceをLinearにします。

001


Asset内に環境に使用するHDRマップを読み込んで、下記のように設定を変更し、Applyで適用します。

002


Materialを作成し、ShaderタイプをSkybox/Cubemapに変更します。(ここではindustrialという名前)
そして、先ほど変換したマップをCubemap(HDR)に適用します。

003


Window>Lightingを選択してウィンドウを開きます。

Skyboxに今作成した、industrialマテリアルを適用し、Reflection SourceをCustomに変更、Cubemapに自分で読み込んだHDRのCubemapを適用します。

001


次に、シーンにReflection Probeを作成します。

002


とりあえずシーンセットアップができたので、モデルデータとテクスチャをUnityに読み込みます。

テクスチャでノーマルマップだけは、設定を変える必要があります。
Texture TypeをNormalMapに変更、Create from Grayscaleをオフにして、Applyを押してください。

002


これを全てのNormalMapに行います。

マテリアルのオプションを開きます。

ShaderはStandardに変更し、Albedo、Metallic(Smoothnes含む)、Normal Map、Occlusionマップをそれぞれ適用します。Albedoの横にあるカラーは白にしてください。

002


モデルデータがReflection Probeのボックスの中に配置されている場合・・

001


Substance PainterのビューポートとUnityのビューポートを比較するとかなり近似していることがわかります。

002


004


002


Reflection Probeの中にきちんと設定されていないとSmoothnessが適切に設定されずつやつやになっちゃうのでご注意ください。

001

Reflection Probeなしでつやつや過ぎる失敗例。

ご参考になれば幸いです。

あと、来月終わりにAdobe Fuse & mixamoとSubstanceのセミナーをやろうとAdobe担当と調整中です。あと、Substance Designerのセミナー第2回も来月末予定しています。セミナーサイトに近日中にアップしますのでぜひチェックしていただければ幸いです。

吉田

borndigital at|17:29│
twitterでつぶやく