このチュートリアルでは、Substance Painterでロゴや、より一般的にはデカールと呼ばれる装飾要素をオブジェクトの表面に適用する方法の一つを見ていきます。
動画の書き起こし
こんにちは、皆さん。このチュートリアルでは、Substance Painterでロゴや、より一般的にはデカールと呼ばれる装飾要素をオブジェクトの表面に適用する方法の一つを見ていきます。具体的には、Layer上でブラシを使用しますが、それだけではありません。装飾にMaterialを割り当てるために、これまで私のビデオチュートリアルで取り上げてこなかったSubstanceの機能であるAnchorを使用します。
まずは、今回実現したいことをお見せします。画面に表示されている3Dモデルにいくつかのロゴを適用したいのですが、それと同時に、それらのロゴにMaterialも割り当てたいと考えています。そのため、Layer上でTextureを使ってペイントしながら、そのTextureで定義された領域にのみ、Base Colorを除いた別のMaterialを同時に適用する方法が必要になります。

ロゴは、透明情報を含むカラーPNG画像として、File → Import ResourcesのTexturesセクションからインポートしてあります。これらのOpacity Maskは持っていませんし、ペイントソフトや画像編集ソフトで作成するつもりもありません。後ほど説明するように、Substance内で直接生成できるからです。

モデルにはすでにベースとなるMaterialが適用されていますが、ロゴには異なるMaterialを使用したいと思います。たとえば、異なるRoughness効果などを持つMaterialです。そのため、単純にLayerを追加し、ブラシを選択し、TextureをブラシのBase Colorに割り当ててオブジェクト表面をクリックするだけでは不十分です。この方法では画像はBase Colorにのみ適用され、その他のプロパティは下にあるMaterialのままになります。また、ご覧のとおり、Opacityが均一なため、ブラシによってロゴの周囲にハローも発生しています。

同じロゴ画像をブラシのOpacityチャンネルにも割り当てても、状況はあまり改善されません。Opacityは画像の色をグレースケール値として使用します。これは、3DビューをOpacity表示モードに切り替えることで確認できます。

したがって、ブラシストロークによって定義された領域にのみMaterialを適用しつつ、そのMaterialのBase Colorとしてブラシのロゴを使用する方法が必要です。言い換えれば、MaterialはLayer内のブラシストロークをOpacity Maskとして使用する必要があります。ここでAnchorが登場します。
AnchorはSubstanceの機能で、基本的には参照として機能します。Layer Mask、Filter、Generatorなどのオブジェクトは、Anchorが追加されている別のオブジェクトの情報を参照として利用できます。
今回の場合は、次のように進めることができます。まず、ロゴに使用したいMaterialを追加します。私は金属系のMaterialを使用しています。装飾にはあまり適切な選択ではありませんが、RoughnessやMetallicなど、さまざまなチャンネルへの影響を分かりやすく示したいからです。その後、このMaterialに完全な黒のLayer Maskを割り当て、Colorチャンネルを無効にします。Base ColorにはブラシストロークのTextureを使用したいからです。

次に、ブラシでロゴを配置するための空のLayerを追加します。私の場合は、エッジをぼかしたくないのでBasic Hardを使用しています。ブラシではColorチャンネルだけが有効になっていることを確認してください。

使用しているモデルによっては、Symmetryツールを有効にすると便利です。これにより、オブジェクトの片側をクリックすると、選択した対称軸に従って反対側にも自動的にブラシストロークが作成されます。

この時点で、Layerを右クリックし、「Add Anchor Point」を選択します。AnchorアイコンとLayerと同じ名前を持つ新しい項目が表示されます。もちろん名前は変更できます。


これで、このLayerは別のオブジェクトから利用できるようになります。たとえ別のMaterialに属していても問題ありません。
次に、Materialに切り替えます。私の場合は金属Materialです。黒いLayer Maskを右クリックし、「Add Fill」を選択してFill Layerを追加します。最初はProperties - Grayscaleセクションに表示されるような均一なグレーになります。その結果、金属Materialがオブジェクト全体に中程度の強さで適用されます。

Properties - Grayscaleをクリックし、続いて「Anchor Points」をクリックします。しかし、何かおかしいですね。このセクションをクリックできません。
これは重要なポイントを説明するために、わざと行ったミスです。Anchor Pointは、それを使用するオブジェクトよりもLayer Stack内で下に配置されていなければなりません。私は使用したいMaterialの後にブラシストローク用Layerを追加してしまったので、今度はそのLayerをMaterialの下へドラッグする必要があります。

そうすると、MaterialのMask内にあるFill LayerでAnchor Pointを選択できるようになります。

ご覧のように、金属MaterialはMetallic、Roughness、Normalなどのプロパティを、下にあるLayerで描いたブラシストロークによって定義された領域にのみ適用しています。さらに重要なのは、Base Colorが金属Materialからではなく、ペイント用Layerそのものから取得されていることです。

ただし、設定はまだ終わりではありません。
Metallic表示モードに切り替えると、ロゴの白い部分だけが金属になっていることが分かります。つまり、Materialは適用されているものの、TextureもOpacity Maskとして使用されてしまっているということです。これは私たちが望む結果ではありません。

この問題を解決するには、MaterialのMask内にあるFill Layerを選択し、Anchorの「Alpha Behavior」をデフォルトで選択されている「Keep alpha」から「Extract Alpha」に変更します。これで完了です。

これでMaterialは正しく適用され、画像の透明度に応じた強さで、なおかつ下のLayerに描かれたTextureが存在する位置に正確に適用されます。

Anchorはペイント用Layer全体に作用するため、ブラシのTextureを変更したり、モデルにさらに画像やロゴを追加したりしても、そのLayerのAnchorに接続されたMaterialは自動的に新しい画像にも適用されます。
この旗が一部しか表示されていない理由は、Textureとして使用している画像が長方形であるのに対し、ブラシが円形だからです。Substanceへインポートする前に、画像編集ソフトで不足している領域に透明部分を追加し、画像を正方形にしておく方がよいでしょう。

ここまではBasic Hardを使ってTextureを完全に描画していましたが、もちろん他のブラシも使用できます。たとえば手描き風の表現を作ったり、ロゴを摩耗によって傷んだように見せたり、一部が消えかけているような効果を加えたりすることも可能です。
まとめると、Anchorを使用すると、Layerのプロパティを他のMaterial、Filter、GeneratorのMaskとして利用できます。画像本来のBase Colorを保持したままブラシストロークで画像を適用し、さらに特定のMaterialも割り当てたい場合は、Colorチャンネルのみを使用してLayerに画像を描画し、そのLayerにAnchorを追加します。その後、目的のMaterialを追加し、MaterialのLayer Mask内でFill → Grayscaleを通じてAnchorを参照として使用します。必要に応じて、Keep AlphaをExtract Alphaへ変更することも忘れないでください。
それでは、このチュートリアルは以上です。いつものように、ご質問やご意見、あるいは説明が必要な点がありましたら、動画のコメント欄にお気軽にお書きください。それではまた次回お会いしましょう。