Substance 3D PainterでOpacityチャンネルを追加して、編集した部分を透明にする方法を紹介します。
1 準備
1.1 メッシュのインポート
この記事ではMeetMatというサンプルを使用します。
Substance 3D Painterの画面左上にあるFile(ファイル)にあるOpen Sample(サンプルを開く)をクリックしたら、MeetMat.sspを開きます。MeetMat.sspを開くと、画像1のようなメッシュが表示されます。

1.2 Shader(シェーダー)の変更
UIを変更していない場合はSubstance 3D Painterの一番右側に並んでいるアイコンの上から2番目にShader Settings(シェーダー設定)があるので、クリックしてメニューを表示させます(画像2参照)。
asm-metal-roughと書かれている部分をクリックしたら、pbr-metal-rough-alpha-blendingをクリックして変更します。
変更が確認できたら、Shader Settings(シェーダー設定)のメニューは閉じて構いません。
1.3 Opacityチャンネルの追加
これからOpacityチャンネルを追加していきますが、Opacityチャンネルは編集した部分を透明にしたいTexture Set(テクスチャセット)ごとに必要となります。
サンプルとして使用しているMeetMat.sspは、画像3のように01_Head、02_Body、03_Baseの3つのTexture Set(テクスチャセット)がありますが、今回は01_HeadだけにOpacityチャンネルを追加します。

Texture Set(テクスチャセット)の01_Headが選択されている状態で、Texture Set Settings(テクスチャセットの設定)内にあるChannels(チャンネル)の右にある+ボタンをクリックしたらリストからOpacityを選択します(画像4参照)。
画像5のようにOpacityチャンネルが追加されていることを確認してください。
Shader(シェーダー)によってはOpacityが選択できない場合もありますが、1.2の「Shaderの変更」を先に行うとOpacityが選択できるようになるはずです。
2 Opacityチャンネルを編集して透明にする方法
準備が整ったので、Opacityチャンネルを編集してメッシュの一部を透明にしていきます。
編集の方法はたくさんありますが、ここでは3通り紹介していきます。
2.1 ブラシでペイントした部分を透明にする方法
手順1
LAYERS(レイヤー)にあるAdd Layer(レイヤーを追加)でレイヤーを追加します(画像6参照)。
はじめからある「Layer 1」を使用しても構いません。
手順2
手順1で追加したレイヤーを選択した状態で、PROPERTIES – PAINT(プロパティ-ペイント)内にあるMaterial(マテリアル)のopのみオンにしたら、Opacityの値を1から0に変更します(画像7参照)。
opの下に何も表示されていない場合は、Substance 3D Painterの一番左のメニューでブラシのアイコンのPaint(ペイント)が選択されていることを確認してください。
手順3
Add fill layer(塗りつぶしレイヤーを追加)からレイヤーを追加して、画像8のように手順1で追加したレイヤーの下において、Base colorを変更します。
手順3は透明になるのをわかりやすくするための作業なので、必須ではありません。
手順4
手順1で追加したレイヤーを選択した状態でメッシュにブラシでペイントすると、画像9のようにペイントした部分が透明になります(画像9ではTexture Setの02_Body、03_Baseは非表示にしています)。
このときViewport(ビューポート)のチャンネルをOpacityに変更すると(画像10参照)、
Opacity(不透明度)が1(=100%)の部分が白(または格子柄)で、Opacity(不透明度)が0(=0%)の部分が黒になっているのが確認できます(画像11参照)。
また、Viewport(ビューポート)の表示をMaterial以外のもの(Base ColorやMetallicなどのチャンネル)に変更すると、画像12のようにViewport上で透過情報は反映されません。
また、Viewportの表示をMaterialにしている場合でも、3D表示には透過情報は反映されますが、2D表示には透過情報が反映されません。
この方法を使用して透明になった部分を元に戻すには、Eraserを使用します。
2.2 グレースケールのテクスチャを使用して透明にする方法
手順1
LAYERS(レイヤー)にあるAdd fill layer(塗りつぶしレイヤーを追加)でレイヤーを追加します(画像13参照)。
はじめからある「Layer 1」が残っている場合は削除してください。
手順2
LAYERS(レイヤー)にあるAdd fill layer(塗りつぶしレイヤーを追加)からさらにレイヤーを追加して、画像14のように手順1で追加したレイヤーの下において、Base colorを変更します。
手順2は透明になるのをわかりやすくするための作業なので、必須ではありません。
手順3
手順1で追加したレイヤーを選択した状態で、PROPERTIES – FILL(プロパティ-塗りつぶし)内にあるMaterial(マテリアル)のopのみオンにしたら、Opacityと書かれているボックスをクリックして、好みのグレースケールのテクスチャ(ここではFabric Star Blockを使用)を選択します(画像15参照)。
ASSETS(アセット)のTexture(テクスチャ)からドラッグ&ドロップしても構いません。
手順3
すると、画像16のようにグレースケールテクスチャの黒の部分が透明になります。
2.3 メッシュのすべてを透明にして、ペイントした部分だけ不透明にする方法
2.1と2.2の方法を組み合わせることで、メッシュのすべてを一度透明にして、ペイントした部分だけ不透明にすることも可能です。
手順1
Add fill layer(塗りつぶしレイヤーを追加)でレイヤーを追加したら、Material(マテリアル)のopのみオンにして値を1から0に変更します。
この時点で、頭の部分がすべて透明になります。
手順2
手順1で追加したレイヤーの上にAdd a layer(レイヤーを追加)でレイヤーを追加したら、Materialのopのみオンにします。
値は1に設定します。
手順2で追加したレイヤーを選択した状態でメッシュにブラシでペイントすると、画像17のようにペイントした部分だけが不透明になります。
2.4 補足
ここまで3通りの編集方法を紹介しましたが、Add a layer(レイヤーを追加)の代わりにAdd fill layer(塗りつぶしレイヤーを追加)でレイヤーを追加してマスクと併用して透明にする、レイヤーに直接ペイントやテクスチャを設定する代わりにAdd effect(エフェクトを追加)のAdd paint(ペイントを追加)やAdd fill(塗りつぶしを追加)を使用するなど、結果的に同じになるような細かな方法については用途や好みによって変更してください。
レイヤーの順番を変えると透明にならない場合もあるので、Opacityチャンネルを編集したレイヤーの位置にも注意して作業をしてください。
3 エクスポート時の注意
Substance 3D Painterで作成した透過情報を持ったテクスチャをエクスポートする際に、.png形式の場合はOutput template(出力テンプレート)でPBR MetalRoughなどを選択してBase ColorやRoughnessなどのテクスチャをエクスポートするだけで特に問題ありませんが、.jpegや.bmpなどの形式の場合はOpacityチャンネルの画像も別途にエクスポートする必要があります。
Opacityチャンネルの画像をエクスポートするには、画像18のようにOutput template(出力テンプレート)でDocument Channels + Normal + AO(No Alpha)または(With Alpha)を選択してください(Opacityチャンネルの画像は(No Alpha)と(With Alpha)で同じです)。
Opacityチャンネルの画像は「Texture Set名_Opacity.ファイル形式」という名前でエクスポートされます。
4 BlenderのCyclesでレンダリングする場合
透過情報を持ったテクスチャをBlenderのCyclesでレンダリングする際のノードの組み方については、「Blender: Cyclesで透過テクスチャを使用する場合のノードの組み方」で紹介をしています。
.png形式の場合は1と2を参考にしてください。
.jpegや.bmpなどの形式の場合は3を参考にしてください。マスク画像=Opacityチャンネルの画像となります。
ちなみにサンプルで使用したMeetMat.sspのメッシュをBlenderで使用したい場合は、Substance 3D Painterの画面左上にあるFile → Export Meshから、MeetMat.objをエクスポートできます。
以上、Substance 3D Painterの「編集した部分を透明にする方法」でした。
コメント