SubstancePainter-IDのベイク時にきれいに分かれなかった時の対処方法

SubstancePainter(サブスタンスペインター)のチュートリアルから、IDベイクをした際にきれいに分かれなかった時の対処方法設定をご紹介します。

 

ハイポリのメッシュのID情報をベイク(カラーソースをMaterial Colorにしてベイク)した際に、キレイに色分けされないケースがあります。そんなときの対処方法です。

 

SubstancePainterでは切っても切れないベイクの話。

基礎知識として頭に入れておきたいですね

 

参考

SubstancePainter>Baking

 現在のバージョンはSubstancePainter2019.2.2

 

関連記事テクスチャベイクの基本

スポンサーリンク

公式動画

後半4:50秒ぐらいから、その解説がされています。

公式ドキュメント

https://docs.substance3d.com/spdoc/substance-painter-20316164.html

公式ページからはサンプルファイルのDLもできるので、すぐにチュートリアルを始めたい!という人にも優しい設計になっています。

IDのベイク時にきれいに分かれなかった時の対処方法

ハイポリのメッシュのID情報をベイク(カラーソースをMaterial Colorにしてベイク)した際に、このようにほかのオブジェクトにカラーがうつってしまうケースがあります。

MatchをBy Mesh Name

デフォルトのAlwaysからBy Mesh Nameに変更

Mesh suffixを変更する

メッシュにつけられたsuffixを設定します。

 

suffix(サフィックス)とは名称の後ろにつく文字列のことを指します。

 

今回使用したデータはのうち、IDがわかれていないローメッシュのデータは「_main」、ID分けされたハイメッシュのデータは「_id」と名付けられていました

ID以外の要素を外す

修正したいのはID情報だけなので、それ以外のチェックを外します

再びベイク

綺麗に分けられました

 

スポンサーリンク

By Mesh Name とは何をやってる機能?

名前の一致することにより、ベイク時にフィルタリングして、特定のメッシュ以外のメッシュ検出を回避できます。

 

これにより、1つのテクスチャ内で複数のメッシュを一度にベイク処理することができ、アーティファクト(データの誤り)を出したり、メッシュが爆発することがなくなります。

 

ローポリゴンメッシュをそのハイポリゴンメッシュと一致させるには、共通のメッシュを検出するためのサフィックスキーワードを定義する必要があります。

 

参考

SubstancePainter>Matching by name

 

メッシュ名の設定する注意点

ローポリゴンメッシュとそのハイポリゴンメッシュはサフィックス以外は、共通の名前にしなければなりません。

 

またサフィックスの後ろは無視されます。

設定例

サフィックスが_low_highであるとしましょう(任意で好きなサフィックスを使用できます)。

  • body_lowは、body_high_part1body_high_part2と一致します。
  • head_lowhead_high-glasseshead_highdetailhead_highwhateverと一致します

 

このようにサフィックスの後ろに何があっても無視されます。

これにより、ローポリメッシュの特定の部分と一致させながら、オブジェクトを細かく分離することができます。

 

 大文字と小文字は別扱い
名前の一致は非常に正確であり、大文字と小文字は別物として扱われます。

したがって、「Mesh」という名前のメッシュは、「mesh」という名前のメッシュとは異なります。アンダーバー「_」がハイフン「-」も別扱いです。

ベイク時の設定

Matchパラメーターを「Always」ではなく「By Mesh Name」に設定することで有効にできます。

 

Substance Painterでは、By Mesh Nameはデフォルトでは有効になっていません。

 

まとめ:メッシュの名づけは大事

この機能を使うためにはメッシュの命名規則が大事になります。

 

個人で作成する分には問題ないですが、仕事やグループ制作などデータを共有する場合には事前に命名規則を決めておいた方がよさそうですね。

Twitterでフォローしよう

おすすめの記事