Substance Painter用フィルタの作り方(基礎編)

今回の記事はSubstance Painter用のフィルタをSubstance Designerで作成する基礎的はお話です。
ちょっと前にTwitterで流したやつの作り方をやる前に、まず基本的な部分を押さえておきましょう、ということです。
チュートリアルは Allegorithmic 公式からも出ていますし、難しいものではないのですが、とりあえず作ったことがない人向けなのでかなり初歩からの解説となります。

Substance Designer編

まずはSubstance Designerで簡単なフィルタを作成します。
新しいグラフを作成しますが、テンプレートとしては以下の3つのどれかを選択します。

f:id:monsho:20180614004327p:plain

(generic) は特に指定のない[Input]ノードと[Output]ノードが1つ置かれているだけの簡単なものです。
(specific) は入力ノードと出力ノードが4つずつ置かれています。Base Color / Roughness / Metallic / Heightですね。
(specific w/ additional maps) は (specific) と同様の入力と出力を持ち、加えてメッシュからベイクされたワールド法線、ポジションなどのマップも参照できるようになっています。
今回は (specific) を選択しましょう。
グラフ名はなんでもいいですが、今回は FilterTutorial という名前にしました。

グラフが表示されたら [Input] ノード、および [Output] ノードの Base Color以外を削除してしまいましょう。
今回は使いません。
次に以下のようにノードを組みます。

f:id:monsho:20180614005217p:plain

[HSL] ノードの [Saturation] パラメータは 1.0 にしておきます。
このグラフを一旦保存して、それから .sbsar を生成します。
生成するには、生成したグラフを選択してから以下のボタンを押してください。

f:id:monsho:20180614005504p:plain

保存フォルダとファイル名を決定し、保存をします。
保存する際に以下のようなダイアログが出てきますが、[Pixel size] のパラメータは不要なのでチェックを外しておきましょう。

f:id:monsho:20180614005638p:plain

これでSD側の作業は終了です。

Substance Painter

次にSubstance Painterを起動し、適当なプロジェクトを作成するか読み込みます。
とりあえず PreviewSphere をサンプルから読み込んだ方がテストするにも簡単でしょう。

プロジェクトを開いたらSDで保存した .sbsar ファイルをドラッグ&ドロップしましょう。
すると以下のダイアログが出てきますので2つのパラメータを変更します。

f:id:monsho:20180614011433p:plain

上の方はインポートするリソースのカテゴリーで、今回は "filter" にします。
下の方はこのリソースの寿命で、"project '~'" を選択するとこのプロジェクトを編集中にのみ有効になります。
つまり、このプロジェクトを閉じるとインポートしたリソースも消えます。
今回はテストなので永続的に置かれても困りますのでこのようにしました。

ではテストです。
適当なマテリアルをFillレイヤーに追加し、ここに Add Filter でフィルタを設定、追加したテストフィルタを設定してみましょう。
Base Colorの色が鮮やかになるのがわかるでしょう。
フィルタをON/OFFすれば色が変わるのを確認できるはずです。

何をしたのか?

SDで作成したフィルタは極めて簡単です。
入力として、フィルタが設定されたレイヤーの Base Color を取得します。
この Base Color はそのレイヤーのみの結果です。それまでのレイヤーのすべてを合成した結果ではないので注意してください。
そのため、ペイントしたレイヤーにフィルタをかけるとペイント部のみに効果がかかります。

で、この入力した Base Color に [HSL] ノードを使ってサチらせます。
そしてこのノードから最後の出力ノードに出力します。
出力先は Base Color なので、入力してきた Base Color を鮮やかな色合いにするだけし直しています。

なお、[Input] / [Output] ノードで特定の情報を入出力として扱いたい場合は、Identifier もしくは Usage に適切なものを選択します。
どのようなIDが有効かは以下のドキュメントから確認できます。

Channel specific filter - Substance Painter - Allegorithmic Documentation

フィルタを修正してみる

ちょっとフィルタを修正してみましょう。
SD に戻って [HSL] ノードのすべてのパラメータを Expose してください。
これを保存し、再度 .sbsar ファイルに出力します。

今度は SP に戻って、シェルフから今回作ったフィルタを選択、右クリックしてみてください。

f:id:monsho:20180614013615p:plain

このようなダイアログが表示されるので、[Reload] を選択しましょう。
リロード後、先ほどフィルタを設定した部分に新しいフィルタをD&Dしましょう。
すると [HSL] ノードの3つのパラメータをいじれるようになっているはずです。

とまあ、こんなところです。
次回は応用編です。