スポンサーリンク

Substance Painter: 編集した部分を透明にする方法

Substance PainterでOpacityチャンネルを追加して、編集した部分を透明にする方法を紹介します。

1. 準備

1.1 メッシュのインポート

この記事ではMeetMatというサンプルを使用します。

Substance Painterの画面左上にあるFileにあるOpen Sampleをクリックしたら、MeetMat.sspを開きます。MeetMat.sspを開くと、画像1のようなメッシュが表示されます。

substance painter opacity

画像1

1.2 Opacityチャンネルの追加

これからOpacityチャンネルを追加していきますが、Opacityチャンネルは編集した部分を透明にしたいTexture Setごとに必要となります。
サンプルとして使用しているMeetMat.sspは、画像2のように01_Head、02_Body、03_Baseの3つのTexture Setがありますが、今回は01_HeadだけにOpacityチャンネルを追加します。

substance painter opacity

画像

Texture Setの01_Headが選択されている状態で、UIを変更していない場合はSubstance Painterの画面右側のTexture Set Listの下にTexture Set Settingsがあるので、Channelsの右にあるボタンをクリックしたらリストからOpacityを選択します(画像3参照)。

substance painter opacity

画像3

Heightの下にOpacityチャンネルが追加されていることを確認してください。

1.3 Shaderの変更

UIを変更していない場合はSubstance Painterの一番右側に並んでいるアイコンの上から2番目にShader Settingsがあるので、クリックしてメニューを表示させます(画像4参照)。

substance painter opacity

画像4

pbr-metal-roughと書かれている部分をクリックしたら、pbr-metal-rough-alpha-blending(下段の左から2番目)をクリックします。

先程のpbr-metal-roughと書かれている部分がpbr-metal-rough-alpha-blendingとなっていることを確認してください。
確認ができたら、Shader Settingsのメニューは閉じて構いません。

2. Opacityチャンネルを編集して透明にする方法

準備が整ったので、Opacityチャンネルを編集してメッシュの一部を透明にしていきます。
編集の方法はたくさんありますが、ここでは3通り紹介していきます。

2.1 ブラシでペイントした部分を透明にする方法

Layersを表示させたら、画像5のようにはじめからある「Layer 1」の下にMaterialsから何でもいいので(ここではAuminium Insulatorを使用)読み込みます(これは透明になるのをわかりやすくするための作業なので、必須ではありません)。

substance painter opacity

画像5

画像6のように「Layer 1」のMaterialのopのみオンにして、値を1から0に変更します。

substance painter opacity

画像6

「Layer 1」のレイヤーを選択した状態でメッシュにブラシでペイントすると、画像7のようにペイントした部分が透明になります。

substance painter opacity

画像7

VeiwportのチャンネルをOpacityに変更すると、Opacity(不透明度)が1(=100%)の部分が白(または格子柄)で、Opacity(不透明度)が0(=0%)の部分が黒になっているのが確認できます。

substance painter opacity

画像8

Viewportの表示をMaterial以外のもの(Base ColorやMetallicなどのチャンネル)に変更すると、Viewport上で透過情報は反映されません。
また、Viewportの表示をMaterialにしている場合でも、3D表示には透過情報は反映されますが、2D表示には透過情報が反映されません。

2.2 グレースケールのテクスチャを使用して透明にする方法

2.1で使用した「Layer 1」を削除して、Add a fill layerでレイヤー「Fill layer 1」を新たに追加します(画像9参照)。

substance painter opacity

画像9

画像10のように、この「Fill layer 1」のMaterialのopのみオンにしたら、Opacity uniform colorと書かれているボックスをクリックして、好みのグレースケールのテクスチャ(ここではFabric Diamond Alternateを使用)を選択します。

substance painter opacity

画像10

すると、画像11のようにテクスチャの黒の部分が透明になります。

substance painter opacity

画像11

2.3 メッシュのすべてを透明にして、ペイントした部分だけ不透明にする方法

2.1と2.2の方法を組み合わせることで、メッシュのすべてを一度透明にして、ペイントした部分だけ不透明にすることも可能です。

2.2で使用した「Fill layer 1」を削除して、再度Add a fill layerでレイヤー「Fill layer 1」を追加したら、この「Fill layer 1」のMaterialのopのみオンにして、値を1から0に変更します。
この時点で、頭の部分がすべて透明になります。

「Fill layer 1」の上にAdd a layerでレイヤー「Layer 1」を追加したら、この「Layer 1」のMaterialのopのみオンにします。値は1のまま変更しません。

「Fill layer 1」を選択した状態でメッシュにブラシでペイントすると、画像12のようにペイントした部分だけが不透明になります。

substance painter opacity

画像12

ここまで3通りの編集方法を紹介しましたが、Add a Layerの代わりにAdd a fill layerとマスクを併用して透明にする、レイヤーに直接ペイントやテクスチャを設定する代わりにAdd paintやAdd fillを使用するなど、結果的に同じになるような細かな方法については用途や好みによって変更してください。

3. エクスポート時の注意

Substance Painterで作成した透過情報を持ったテクスチャをエクスポートする際に、.png形式の場合はConfigでPBR MetalRoughなどを選択してBase ColorやRoughnessなどのテクスチャをエクスポートするだけで特に問題ありませんが、.jpegや.bmp​などの形式の場合はOpacityチャンネルの画像も別途にエクスポートする必要があります。

Opacityチャンネルの画像をエクスポートするには、画像13のようにConfigでDuccument Channesls + Normal + AO(No Alpha)または(With Alpha)を選択してください(Opacityチャンネルの画像は(No Alpha)と(With Alpha)で同じです)。
Opacityチャンネルの画像は「Texture Set名_Opacity.ファイル形式」という名前でエクスポートされます。

substance painter opacity

画像13

4. BlenderのCyclesでレンダリングする場合

透過情報を持ったテクスチャをBlenderのCyclesでレンダリングする際のノードの組み方については、「Blender: Cyclesで透過テクスチャを使用する場合のノードの組み方」で紹介をしています。

.png形式の場合は、「2 .png形式の画像テクスチャを使用して透過させる方法 – プリンシプルBSDF(Principled BSDF)編」を参考にしてください。

.jpegや.bmp​などの形式の場合は、「3 マスク画像を使用して透過させる方法」を参考にしてください。マスク画像=Opacityチャンネルの画像となります。

サンプルで使用したMeetMat.sspのメッシュをBlenderで使用したい場合は、Substance Painterの画面左上にあるFileEport Meshから、MeetMat.objをエクスポートできます。

以上、Blenderの「ウェイトペイント時にマスクを設定する方法」でした。
※この記事で使用しているのはSubstance Painter 2019.3.1とBlender 2.81です。

コメント

タイトルとURLをコピーしました