LoginSignup
6
4

More than 5 years have passed since last update.

SubstancePainterでペイント範囲をグループ化する

Last updated at Posted at 2017-03-29

Qiitaみたいな仕組みのサイトでDCCツールやデザインツールのtipsを投稿できるところないですかねー。Qiitaはエンジニア向きなのであれなんですが、とても使いやすいのでここに書くのがやりやすいんですよねえ。
と言う事で、SubstancePainterでペイント範囲をグループ化する際のメモ書きです。エンジニア向けじゃないかもですが、ご容赦ください。

1.やってはいけない事

グループを作る目的で、マテリアル分けしたファイルを取り込む事。
これで確かにテクスチャセットが別の状態となり、グループが別れた状態でペイントができる。

では、何がいけないのか?

このままテクスチャをエクスポートした場合、テクスチャセットの個数だけ掛け算でファイル数が増殖してしまう。
例えば、ベースカラー(Albedo)と法線とMetallicSmoothnessを書き出したい場合、3種x2セット=6枚のテクスチャが書き出されてしまう。
これはレンダリングソフトやゲームエンジンに取り込んだ時に設定が面倒になるし、テクスチャ枚数が多いので動作も重くなる。

テクスチャセットはそもそもシェーダープログラムが切り替わる場合や、テクスチャを意図的に別途にしたい場合に分けるべきで、ペイント時の利便性のために分けて使うものではない。

2.推奨される方法

モデルの形状が複雑でないなら、手作業でうまくマスクを切ればいい。正確にはグループ化ではないが、範囲を区切ってのペイント作業はできる。さらに、IDマップ画像が用意できるならそれを元にマスクを切ることができる。

 2017-03-30 0.49.01.png
レイヤー選択 -> add mask with color selection で、IDマップを元にしたマスクが切れる

 2017-03-30 0.37.17_.png
Pickカラーを押すと3DビューがIDマップ表示に変わるので、マスクを作りたい箇所を選択する

ZBrushなら...ポリグループ別に単色でポリペイントしてフラットなシェーダーでテクスチャ書き出ししてIDマップとする例をみたことがある。今度やってみて投稿する。
MAYAなら...知らないがきっといとも簡単にできる。今度やってみるかも。

3.IDマップをサブスタンスペインター上で作る方法

IDマップが書き出せないソフトの場合どうするか?
SubstancePainter上でも、Baking処理でメッシュ(メッシュID)を基にしてIDマップを作ることができる。

 2017-03-30 0.52.54.png
メタセコイアならオブジェクトを別にしてobjを書き出せば、メッシュIDがそれぞれ別となったobjを書き出すことができた。(ここでマテリアルは同一のものを割り当てる事。)

これをSubstancePainterに取り込んで、

 2017-03-30 0.37.51.png
メッシュIDを元にIDマップをベイクすれば良い。あとは上記2の方法でマスクを作る。

image
出来上がったIDマップ

まとめ

テクスチャセットが少ない方が(全部画面にパーツを表示する前提なら)動作が軽いので、マスクで頑張った方が気持ちよくペイントできる。とはいえ、テクスチャセットを分ける意味はもちろんある。安易にグループ化の目的でテクスチャセットを使うのはやめた方がいいですよ、というのが今回のコンクルージョンです。

なお、SubstancePainterでIDマップを作る際のソースはメッシュID以外にも色々あります。
image

モデリングソフトによっては別の方法の方が楽かも。
ZBrushだと頂点カラーが具合が良さそうだ。これは、そのうち。

以上です!

6
4
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
4