夜はCGの時間

ゲームのデザイン仕事を生業にする筆者が、色々なツールのちょっとしたネタやTipsなどを投稿、まとめる備忘録ブログです。

【SubstancePainter】MaskEditorでお手軽マスク作成

f:id:Magotarou:20191112013127p:plain

 

MaskEditorとは、ルールに沿って3Dモデルを黒と白に塗り分けるジェネレータだ。

ある程度マテリアルを振り分け終わった後に、ディティールを追加するときに使用する。

例えば以下のような手順を踏む。

  1. MaskEditorで鋭角なエッジを抽出し、その周辺のみ不透明な状態を作る。
  2. それをマスクにして、経年劣化で少し剥げたような木材の質感を足す。

 

代表的な使い方以外にも、MaskEditorにはパラメータが沢山ある。

 

それらの機能を理解しておけば、必要なときに必要なマスクをすぐ思いつけるようになっておけるのではなかろうか。

 

そう考えて、脳死でサクサクっとマスクを作れるようになるために、各パラメータの挙動を調べた。

 

SubstancePainterのバージョン【2019.2.3】

 

マスクの種類は以下のものがある。

Texture

下の方にあるImage Inputsに登録したテクスチャをマスクに使用する。

2枚まで使用可能。

グランジテクスチャなどを使って錆を載せたりするときなどに使う。

デフォルトの合成演算式がOverlayになっていて、黒マスクで作成しているとグレースケールのテクスチャの効果が現れない。

f:id:Magotarou:20191110181232p:plain

 

f:id:Magotarou:20191112002926p:plain

白い部分がマスク部分。本来はこの白い部分に違う質感を載せたりする。

 

Ambient Occlusion

モデルのAmbient Occlusionをマスクに使用できる。

モデルの凹んでいる所にディティールを足したいときなどに使える。

デフォルトの合成演算式がMultiplyになっていて、黒マスクで作成しているとグレースケールのテクスチャの効果が現れない。

f:id:Magotarou:20191110200912p:plain

 

f:id:Magotarou:20191112003047p:plain

DefaultのAO領域が白くなっている。この白い領域をマスクとして使える。

 

Curvature

メッシュの曲率に応じてマスクを作成する。

簡単にいうと、エッジが立っている所だけマスクするようなことができる。

MaskEditorを適用すると、これのOpacityだけに0.5が入っている。

f:id:Magotarou:20191110100754p:plain

 

f:id:Magotarou:20191111015714p:plain



マスク部分を白くすると以下のようになる。

f:id:Magotarou:20191110164130p:plain

 

 

World Space Normal

ワールド法線空間において、法線が向いている方向に応じたマスクが作れる。

上を向いているポリゴンを黒く、下を向いているポリゴンを白くする、みたいなことをする。苔を載せたり、上の方だけ雨に濡れてるとかができる。

向きは上下左右前後が選べる。

f:id:Magotarou:20191110212023p:plain

 

f:id:Magotarou:20191112003919p:plain

遮蔽は考慮されないので、屋根の下にも雪は積もる。

 

Position Gradient

テクスチャセットのバウンディングボックスを基準に、端から端へグラデーションマスクを作る。メッシュの形状は考慮されない。

例えばアニメキャラクターの髪の毛用なパーツに、上から下へグラデーションを付けられたりする。

向きは上下左右前後が選べる。

f:id:Magotarou:20191110215809p:plain

f:id:Magotarou:20191112004648p:plain

 

ライトがあると分かりづらいのでBaseColorのみにした状態が以下。

f:id:Magotarou:20191110220605p:plain

髪の毛にグラデーション、高さフォグの擬似的表現などにも。

建物全体に高さグラデーションを付けて接地感や空気感を出したりもする。

 

Thickness

メッシュの厚みに応じてマスクを作れる。

パラメータが少ないので、厚みのバランスとコントラストをいじって調整するくらい。

使うとしたら、部分的に薄い服とかだろうか?

ポリゴンが背中合わせになっていないと厚み判定されないので、いまいち使いづらい。

f:id:Magotarou:20191111001953p:plain

 

f:id:Magotarou:20191112004752p:plain


Micro Details

2017からの機能。

他のレイヤーで作った法線やハイトマップの凹凸をMaskEditorでも活用できるようになる。

使うための手続きがけっこう面倒くさい。

f:id:Magotarou:20191111013344p:plain

設定方法は以下のサイトが詳しい。

support.borndigital.co.jp

簡略化して説明すると、

  1. レイヤーを作成して、HardSurfaceブラシでペイントする。
  2. ペイントしたレイヤーに右クリック>AnchorPointを追加する。
  3. MaskEditorのあるレイヤーより下に移動する。
  4. MaskEditorのMicroNormalをクリックして、anchor pointsタブから作成したAnchorPointを設定する。
  5. MaskEditorのReferenced ChannelをNormal Mapに変更。
  6. MaskEditorのMicro Detailオプションを開き、Micro Detail Micro NormalをOn。

Heightマップでやるときは、アルファブラシを使って追加したあと、Normal関連項目をHeightにすればOK。

 

 

f:id:Magotarou:20191111014616p:plain

中央の十字をブラシで書いたあと、エッジをCurvatureで抽出した。

 

終わりに

デカールごとに違うマスクを用意することが多いとは思うが、これらは複合で使用することもできる。

 

便利さではCurvatureが抜きん出ていて、特定条件下でWorldSpaceNormalやPositionGradientが有効といった感触だ。

 

MicroDetailsは、設定が面倒だが、同じジェネレータを複数のレイヤーに割り当てた状態でそのジェネレータの修正を1つ1つやることに比べたらはるかに楽だろう。