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-with-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)の「02_Body」と「03_Base」はこの後使用しないので、左側の目のアイコンをクリックして非表示にしておきます。
テクスチャセット(Texture Set)の「01_Head」が選択されている状態で、テクスチャセットの設定(Texture Set Settings)内にあるチャンネル(Channels)の右にある+ボタンをクリックしたらリストからOpacityを選択します(画像4参照)。
画像5のようにチャンネル(Channels)にOpacityチャンネルが追加されていることを確認してください。
シェーダー(Shader)によってはOpacityが選択できない場合もありますが、1.2の「シェーダー(Shader)の変更」を先に行うとOpacityが選択できるようになるはずです。
追加した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
手順3は透明になるのをわかりやすくするための作業なので、必須ではありません。
塗りつぶしレイヤーを追加(Add fill layer)からレイヤーを追加して、画像8のように手順1で追加したレイヤーの下において、Base colorを好みの色に変更します。
手順4
手順1で追加したレイヤーを選択した状態でメッシュにブラシでペイントすると、画像9のようにペイントした部分が透明になります。
このときビューポート(Viewport)のチャンネルをOpacityに変更すると(画像10参照)、
不透明度(Opacity)が1(=100%)の部分が白で、不透明度(Opacity)が0(=0%)の部分が黒になっているのが確認できます(画像11参照)。
不透明度(Opacity)が1になっている部分は手順3で追加したレイヤーによるもので、不透明度(Opacity)が0になっている部分は手順1で追加したレイヤーによるものです。
ビューポート(Viewport)の表示をマテリアル(Material)以外のもの(Base ColorやMetallicなどのチャンネル)に変更すると、画像12のようにビューポート(Viewport)上で透過情報は反映されません。
ビューポート(Viewport)の表示をマテリアル(Material)にしている場合に3D表示には透過情報は反映されますが、2D表示には透過情報が反映されません。
この方法を使用して透明になった部分を元に戻すには消しゴムツール(Eraser)を使用して、手順4でペイントした部分を消してください。
2.2 グレースケールのテクスチャを使用して透明にする方法
手順1
レイヤー(LAYERS)にある塗りつぶしレイヤーを追加(Add fill layer)でレイヤーを追加します(画像13参照)。
はじめからある「Layer 1」が残っている場合は削除してください。
手順2
手順2は透明になるのをわかりやすくするための作業なので、必須ではありません。
レイヤー(LAYERS)にある塗りつぶしレイヤーを追加(Add fill layer)からさらにレイヤーを追加して、画像14のように手順1で追加したレイヤーの下において、Base colorを好みの色に変更します。
手順3
手順1で追加したレイヤーを選択した状態で、プロパティ-塗りつぶし(PROPERTIES – FILL)内にあるマテリアル(Material)のopのみオンにしたら、Opacityと書かれているボックスをクリックして、好みのグレースケールのテクスチャ(ここではFabric Checkerを使用)を選択します(画像15参照)。
アセット(ASSETS)のテクスチャ(Texture)からドラッグ&ドロップしても構いません。
手順3
すると、画像16のようにグレースケールテクスチャの黒の部分が透明になります。
2.3 メッシュのすべてを透明にして、ペイントした部分だけ不透明にする方法
2.1と2.2の方法を組み合わせることで、メッシュのすべてを一度透明にして、ペイントした部分だけ不透明にすることも可能です。
手順1
塗りつぶしレイヤーを追加(Add fill layer)でレイヤーを追加したら、マテリアル(Material)のopのみオンにして値を1から0に変更します。
この時点で、頭の部分がすべて透明になります。
手順2
手順1で追加したレイヤーの上にレイヤーを追加(Add Layer)でレイヤーを追加したら、マテリアル(Material)のopのみオンにして、値を1に設定します。
手順2で追加したレイヤーを選択した状態でメッシュにブラシでペイントすると、画像17のようにペイントした部分だけが不透明になります。
2.4 補足
ここまで3通りの編集方法を紹介しましたが、レイヤーを追加(Add 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チャンネルの画像をエクスポートするにはBase ColorやRoughnessなどのテクスチャなどの他に、画像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でレンダリングする際のノードの組み方については、下記の記事で紹介をしています。
.png形式の場合は上記の記事の1と2を参考にしてください。
.jpegや.bmpなどの形式の場合は上記の記事の3を参考にしてください。マスク画像=Opacityチャンネルの画像となります。
サンプルで使用したMeetMat.sspのメッシュをBlenderで使用したい場合は、Substance 3D Painterの画面左上にあるファイル(File)>メッシュをかき出し(Export Mesh)から、MeetMat.usdという名前でエクスポートできます。
Blenderではインポート(Import)のUniversal Scene Descriptionからインポートできます。
以上、Substance 3D Painterの「編集した部分を透明にする方法」でした。
コメント