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
実際に試してみると・・・

以前と違い、確かにSmoothnessの部分がUnity用に調整しなおさなくても、かなり近似してる!!
超便利になったので、この設定を記事にすることにします。
この記事は予告なくクローズし、クローズ後は弊社サポートサイトにて公開します。ご了承ください。
MeshデータはSubstanceShareからGDC FPS Femaleをダウンロードして使用しています。
https://share.allegorithmic.com/libraries/427
含まれているデータがOBJなので、一旦Mayaに読み込んでFBXで再度出力しています。
これは私の単なる知識不足で、複数マテリアルを持ったOBJをUnityに読み込んだ時に、そのままマテリアルをロードする方法がわからなかったからです・・・。OBJから複数マテリアルのままUnityに持ち込めるのであればFBXに変換する必要はありません。
まずは、SubstancePainterでテクスチャを作成して下さい。

SubstancePainterでのテクスチャ作成はこちらのムービーをご参照ください。
テクスチャが完成したら、Exportウィンドウを開きます。
Configurationタブにて、Unity5 (Standard Metallic)を選択して、Output Mapsを確認します。
UnityはMetallicとSmoothnessが1データ内に収められている必要があるので、MetallicShoothnessというOutputmapがあります。
私はAOも一緒に出力したかったのでAOのOutput mapsを設定しています。
Exportタブに戻り、ConfigでUnity 5(Standard Metallic)を選択し、出力先、拡張子を決めて出力します。

これで必要なテクスチャを取得することができました。
Unityを起動します。
大分前にUnityの小林様に教えて頂いた内容を復習して今回なんとかゴールにたどり着きました。。
日々勉強ですね。
Edit>Project Settings>Playerを開き、Color SpaceをLinearにします。

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

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

Window>Lightingを選択してウィンドウを開きます。
Skyboxに今作成した、industrialマテリアルを適用し、Reflection SourceをCustomに変更、Cubemapに自分で読み込んだHDRのCubemapを適用します。

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

とりあえずシーンセットアップができたので、モデルデータとテクスチャをUnityに読み込みます。
テクスチャでノーマルマップだけは、設定を変える必要があります。
Texture TypeをNormalMapに変更、Create from Grayscaleをオフにして、Applyを押してください。

これを全てのNormalMapに行います。
マテリアルのオプションを開きます。
ShaderはStandardに変更し、Albedo、Metallic(Smoothnes含む)、Normal Map、Occlusionマップをそれぞれ適用します。Albedoの横にあるカラーは白にしてください。

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

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



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

Reflection Probeなしでつやつや過ぎる失敗例。
ご参考になれば幸いです。
あと、来月終わりにAdobe Fuse & mixamoとSubstanceのセミナーをやろうとAdobe担当と調整中です。あと、Substance Designerのセミナー第2回も来月末予定しています。セミナーサイトに近日中にアップしますのでぜひチェックしていただければ幸いです。
吉田
ボーンデジタルの吉田です。
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
実際に試してみると・・・
以前と違い、確かにSmoothnessの部分がUnity用に調整しなおさなくても、かなり近似してる!!
超便利になったので、この設定を記事にすることにします。
この記事は予告なくクローズし、クローズ後は弊社サポートサイトにて公開します。ご了承ください。
MeshデータはSubstanceShareからGDC FPS Femaleをダウンロードして使用しています。
https://share.allegorithmic.com/libraries/427
含まれているデータがOBJなので、一旦Mayaに読み込んでFBXで再度出力しています。
これは私の単なる知識不足で、複数マテリアルを持ったOBJをUnityに読み込んだ時に、そのままマテリアルをロードする方法がわからなかったからです・・・。OBJから複数マテリアルのままUnityに持ち込めるのであればFBXに変換する必要はありません。
まずは、SubstancePainterでテクスチャを作成して下さい。
SubstancePainterでのテクスチャ作成はこちらのムービーをご参照ください。
テクスチャが完成したら、Exportウィンドウを開きます。
Configurationタブにて、Unity5 (Standard Metallic)を選択して、Output Mapsを確認します。
UnityはMetallicとSmoothnessが1データ内に収められている必要があるので、MetallicShoothnessというOutputmapがあります。
私はAOも一緒に出力したかったのでAOのOutput mapsを設定しています。
Exportタブに戻り、ConfigでUnity 5(Standard Metallic)を選択し、出力先、拡張子を決めて出力します。
これで必要なテクスチャを取得することができました。
Unityを起動します。
大分前にUnityの小林様に教えて頂いた内容を復習して今回なんとかゴールにたどり着きました。。
日々勉強ですね。
Edit>Project Settings>Playerを開き、Color SpaceをLinearにします。
Asset内に環境に使用するHDRマップを読み込んで、下記のように設定を変更し、Applyで適用します。
Materialを作成し、ShaderタイプをSkybox/Cubemapに変更します。(ここではindustrialという名前)
そして、先ほど変換したマップをCubemap(HDR)に適用します。
Window>Lightingを選択してウィンドウを開きます。
Skyboxに今作成した、industrialマテリアルを適用し、Reflection SourceをCustomに変更、Cubemapに自分で読み込んだHDRのCubemapを適用します。
次に、シーンにReflection Probeを作成します。
とりあえずシーンセットアップができたので、モデルデータとテクスチャをUnityに読み込みます。
テクスチャでノーマルマップだけは、設定を変える必要があります。
Texture TypeをNormalMapに変更、Create from Grayscaleをオフにして、Applyを押してください。
これを全てのNormalMapに行います。
マテリアルのオプションを開きます。
ShaderはStandardに変更し、Albedo、Metallic(Smoothnes含む)、Normal Map、Occlusionマップをそれぞれ適用します。Albedoの横にあるカラーは白にしてください。
モデルデータがReflection Probeのボックスの中に配置されている場合・・
Substance PainterのビューポートとUnityのビューポートを比較するとかなり近似していることがわかります。
Reflection Probeの中にきちんと設定されていないとSmoothnessが適切に設定されずつやつやになっちゃうのでご注意ください。
Reflection Probeなしでつやつや過ぎる失敗例。
ご参考になれば幸いです。
あと、来月終わりにAdobe Fuse & mixamoとSubstanceのセミナーをやろうとAdobe担当と調整中です。あと、Substance Designerのセミナー第2回も来月末予定しています。セミナーサイトに近日中にアップしますのでぜひチェックしていただければ幸いです。
吉田
borndigital at|17:29│