背景アーティストのぶろぐ

UE4やら、Substanceやら、Zbrushやらいろんなソフトを触ったことについて色々書く。

【SD】自作フィルターのInputとOutputとUsageについて

最近はSubstancePainterで使えるフィルターを自作する方法について調べてます。

シンプルなものの作り方自体は公式の動画にチュートリアルがあります。

基本的な作り方はこの動画を通してやればわかるのですが、英語の理解不足のせいかいまいち応用が効かない部分もあり…。

個人的に詰まったのはどういうフィルタによってUsageをどう設定すればよいかというtところで、とりあえず調べてわかったのでまとめます。

 

フィルターの基本的なInputとOutput

フィルターを作成するとき情報を受取り、書き出すためにInputとOutoutのノードを置きますが、何も設定はいらなかったりします。

試しに図のように、InputとOutput、処理は上記動画で作成したLevelの中間点だけを調整できる処理を作成し、SPのフィルターにあててみます。

この時のInputとOutputは何も設定はせず、作成した時のままです。

f:id:sinocof:20170224080925p:plain

SPではこのような感じで処理されます。すこしわかりにくさはありますが、baseColor、Roughnessは影響を受けてるのがわかるかと思います。

GIFでHeight,Metallic,Normalに変化が無いのは、チャンネルに情報がなかったり、真っ黒や真っ白のように補正の影響が出ないなどが理由です。

f:id:sinocof:20170224081114g:plain

このようにInputとOutoutだけで全チャンネルに影響を与えるフィルターを作成することができます。

SP側でチャンネルの有効無効を設定すればいいので基本はこの形なのかなと。

Maskに影響するフィルター

では、Maskに影響するフィルターはどうすればいいのでしょうか?

このようにFillレイヤーを重ねて、Maskに対してフィルターをセットしてみました。

f:id:sinocof:20170224082215p:plain

結果はこのような感じ。

f:id:sinocof:20170224082626g:plain

InputとOutputだけであれば全チャンネルとMaskに使えることがわかります。

 

特定のチャンネルに影響を与える

全チャンネル同じ処理を行うとは限らないので、BaseColorとRoughnessは異なる処理をかけたいケースがあると思います。

そういう時に使用するのがUsage(用途)です。

上記動画で設定していたようにBaseColorの色をHeightをマスクにして変更する。
と言う場合に使えます。

InputとOutputに図のように設定を入れることで、特定のチャンネルだけ影響するように作成することができます。

f:id:sinocof:20170223220224p:plain

ここのUsageの内容はSPのChannnelと対応しているので、同じ名前を見つけてセットすれば、AmbientOcclusionなどに影響を与えることも可能です。

f:id:sinocof:20170224083157p:plain

ただ、SD側から見るとここにはない項目も多くあったりするので、そういうのはSD専用かなと察してます…。

f:id:sinocof:20170224083358p:plain