おひさしぶりですこんにちは。
今回はSubstancePainterのフィルターの作成手順について書きます。
SubstancePainterのフィルターを作れるツール
SubstancePainterのフィルター、ジェネレーター、シェイプなどもデータの形式はsbsarです。
これはSubstanceDesignerで作られたファイルですが、アーカイブされているのでノードを編集/閲覧することはできません。SubstanceDesignerとSubstancePainter、Achemistで使用することはできます。
SubstancePainterのフィルターとジェネレーターの違い
似たような機能ですが、意識していないと混乱するのでまとめておきます。
フィルターとは、主にマスク情報に対して使い、下のエフェクト(マスク情報)に対して影響を及ぼすものです。例としてブラーなどが挙げられます。
ジェネレーターとは、メッシュのトポロジに基づいてマスクを生成する機能です。マニュアルにはこのように書いているのですが、もう少し正確に言うとベイクされた各種マップを基にマスクを生成する機能です。そのため正しく使うにはあらかじめべいくを行う必要があります。例としてDrippingRustなどがあげられます。
フィルターの作り方
フィルタを作るには新しいグラフを作るときのテンプレートからPainterFilterを選びます。Emptyを選び、自分で作ることもできるのですが、プリセットで必要なノードが用意されているので使うと便利です。
作成すると下の画像のようにinputとoutputのノードが配置されたグラフが現れます。
inputで下のエフェクトを受け取り、outputで出力されるので、この間に処理を加えるとフィルターとして機能します。
今回は簡単に下のエフェクトに応じて星を表示するだけの機能を作ります。
TileSamplerを作りTileInput1にStarノードで作った星をつなぎ、PatternDistributionMapにPerlinNoiseをつなぎます。PerlinNoiseは後でInputに差し替えますが、確認のためにおいています。このままではTileSamplerでInputやPatternDistributionMapを使用してくれないので、PatternやPatternDistributionInputの設定を変更します。
設定ができたら、今後はある程度の調整機能を持たせたいので、 Scaleの設定などをExposeしましょう。Exposeした値はSubstancePainterから変更できます。
パラメーターのExposeができたらTileSamplerのPatternDistributionMapにInputをつなぎなおします。
最後に書き出し設定です。Explorerで.sbsarファイルとしてパブリッシュします。
出来上がったフィルターをSubstancePainterにインポートします。ドラッグするとダイアログが現れるので、種類はFIlterを選んでください。テスト中はインポート先をCurrentSessionにしておくとよいでしょう。
さっそく使ってみましょう。
何か適当なマスクを作りその上にフィルターを作成します。フィルター一覧に先ほど作成したSBSARファイルが見えますので選択します。
このように作るだけなら、非常に簡単にフィルターも作成できます!