Substance Designerのチュートリアルでお勉強その1 ベースマテリアルの作成パート2後編


Substance Designer Getting Started: 01 - Creating a base material part Two

Getting Started 01: Creating a base material part Two
入門01 ベースマテリアルの作成パート2

中編はこちら

www.hildsoft.com

Roughnessの調整

修正方針

f:id:hildsoft:20170816050157p:plain

パート1で作成したRoughnessでは、金属表面の粗さ(ザラつき)としては適していますが、 錆はもっとザラザラとしているものなので、このテクスチャでは合いません。


f:id:hildsoft:20170816050623p:plain

錆が付いている部分のRoughnessを調整するので、前回作成した錆の部位を示すマスクを使用して異なるRoughnessの値をブレンドします。

金属部分のRoughnessのテクスチャはすでにありますので、錆のRoughnessテクスチャを作成します。


錆のRoughnessテクスチャを作成

f:id:hildsoft:20170816052200p:plain

錆の形状の元となったWarp(ワープ)ノードからHistogramScanノードを使ってテクスチャを作ります。

錆の表面はザラザラで、Roughnessの値としてはほぼ1(白)に近い値になります。

これをHistogramScanノードでコントラストを調整して、ほぼ白で少しだけ黒に近い部分をもつテクスチャにします。


錆のRoughnessテクスチャをブレンド

f:id:hildsoft:20170816053002p:plain

Roughnessのテクスチャを2枚用意したら、あとはブレンドするだけです。

Foreground(フォアグラウンド)に錆のRoughnessを、Background(バックグラウンド)に金属のRoughnessを、 そしてOpacity(不透明度)には前回作成した錆の部位を示すマスクを使用します。

あとはノードの配置を見やすいように移動して終了です。


錆のSaturation(彩度)を調整

f:id:hildsoft:20170816053856p:plain

少し彩度が高いので、調整します。

GradientMap(グラデーションマップ)の後にHSL(Hue, Saturation and Lightness)ノードを追加します。


f:id:hildsoft:20170816054956p:plain

Hue(色相)、Saturation(彩度)、Lightness(明度)を調整して、錆に近い色にします。

今回はSaturation(彩度)の調整だけで良さそうです。


錆の範囲を変更

f:id:hildsoft:20170816055515p:plain

マスクを1か所にまとめたので、Histogram ScanのPositionを変更するだけで錆の範囲を調整できるようになりました。

これで一通りの設定は終わりましたが、最後に一つだけすることがあります。


Ambient occlusionの追加

カラー、ノーマル、メタリック、ラフネスの4つを作成するマテリアルになりましたが、あと一つアンビエントオクルージョンを作成します。


追加ノードの設定

f:id:hildsoft:20170816060008p:plain

グラフ内でスペースキーを押して、Output(出力)ノードを作成します。


f:id:hildsoft:20170816060339p:plain

Output(出力)ノードを選択します。

Usage(用途)のAddItem(項目を追加)をクリックして、項目を追加します。


f:id:hildsoft:20170816060624p:plain

ambientOcclusionを選択します。


f:id:hildsoft:20170816061249p:plain

出力ノードの名前が初期値でoutputなので、これを修正します。

マテリアルを外部のアプリから使用するときに、この名前が重要になりますので正しく設定してください。

先ほど設定したUsage(用途)の欄は文字列をコピーすることができますので、これをコピーペストするのが簡単です。


f:id:hildsoft:20170816061845p:plain

グラフの何もないところをダブルクリックしてグラフのプロパティを開くと、OutputImagesのところに設定した名前が追加されています。


f:id:hildsoft:20170816062118p:plain

OutputノードにLabelも設定しておきます。

こうするとグラフ内で見やすくなりますので、可読性のために設定しておきましょう。


Ambient occlusionのノードに接続

Ambient occlusionの作成はNormalマップから2ステップで行います。


f:id:hildsoft:20170816062619p:plain

Normal to Heightノードを追加します。

これはノーマルマップをハイトマップに変換します。


f:id:hildsoft:20170816063102p:plain

作成されたハイトマップは、ハイトマップのテクスチャとして出力することも可能です。


f:id:hildsoft:20170816063423p:plain

ノードはどんどん増えていきますので、自身が作業を手早く進めるためにも、そして他のアーティストにも分かりやすくノードを配置することが大切です。


f:id:hildsoft:20170816063716p:plain

Ambient Occlusionノードを追加します。


f:id:hildsoft:20170816064344p:plain

Normal to HeightノードとAmbient Occlusionノードを接続し、Ambient Occlusionノードのパラメータを調整します。


f:id:hildsoft:20170816065609p:plain

最後にAmbientOcclusionの出力ノードと接続して、3Dビューで確認します。

AmbientOcclusionノードのSpreadingを調整すると、陰の濃さを調整できます。


f:id:hildsoft:20170816065623p:plain

高さ情報を作成しているので、必要ならばAmbientOcclusinを追加した手順と同様にHeightマップも出力できます。


Heightマップの効果

デフォルトマテリアル

f:id:hildsoft:20170816070552p:plain

デフォルト設定では、3DビューでPhysically Metallic Roughnessのマテリアルを使っています。

これはParallax Occlusion Mapping(視差マッピング)を使用していますので、Heightマップが有効になります。


f:id:hildsoft:20170816071535p:plain

マテリアルをEditします。


f:id:hildsoft:20170816071608p:plain

Material:HeightのSacleを調整することで、視差マップがどのような物か体験できます。

動画の例では、outputノードの作成後に3Dビューを更新し損ねたために、heightマップが有効になっていません。


最後の調整

ノーマルマップのアルファ除去

f:id:hildsoft:20170816072153p:plain

作成したマテリアルデータは、ノーマルマップにアルファ値を含んでいます。

Substance Designer上では問題ないのですが、テクスチャとして出力した場合に他の環境では問題になることがありますので、これを除去します。


f:id:hildsoft:20170816072655p:plain

ノーマルマップ出力の前にレベルノードを追加し、アルファチャンネルの値を固定で1(不透明)にします。

こうすれば、アルファ値の点で問題が発生しなくなります。


パート3前編はこちら

www.hildsoft.com