Substance Painter のテクスチャを1枚にまとめるツールを作りました

Substance 3D Painter は、テクスチャセット(マテリアル)ごとに画像を分けて書き出します。ひとつのモデルにテクスチャセットが4つあれば、Base Color だけで4枚。Roughness と Normal も合わせると12枚。これを1枚にまとめる作業が毎回発生していました。

Photoshop でやると手間がかかるうえ、レイヤーを重ねる順番を間違えると気づかないまま実データが消えます。そこでブラウザだけで統合できるツールを作りました。

ベイクマップ統合ツールを開く

画像はサーバーに送信されません。読み込みも合成も書き出しも、すべてブラウザの中で完結します。通信を切った状態でも動きます。

使い方

  1. Painter から書き出した画像を、ツールにドラッグ&ドロップします。フォルダごと入れても構いません。
  2. ファイル名からオブジェクト名とマップ種別が自動で判定され、種別ごとにグループへまとまります。
  3. 左のグループを選び、右側で背景色やパディングを確認します。
  4. 「このグループを合成」で確認するか、「すべて合成して書き出し」で一気に PNG を書き出します。

Painter 側のパディングは 0 にしてください

ここが一番大事なところです。

書き出し設定の Dilation は「なし」に

Painter のパディングは、そのテクスチャセット単独で外側へ色を押し出します。UV 上で別のオブジェクトの島が隣接していると、その実データを上書きしてしまいます。

実際に測ってみると、16px で 143 セル、8px で 58 セルが汚染されました。0px なら汚染はゼロです。

このツールのパディングは合成が終わってからかかります。どのオブジェクトも塗っていない場所にしか書かないので、値を大きくしても実データは壊れません。この非対称性が、わざわざツールを作った理由のひとつです。

パディングの2方式

拡散(既定)どの島からも距離に応じて色が回り込みます。筋が出ません。Painter の Diffusion に近い挙動です。迷ったらこちら。
拡張外周を1段ずつ、隣の確定した色の平均で外へ押し出します。境界は正確ですが、島から離れるほど、くさび状の継ぎ目や筋が残ります。

判定できるマップ種別

ファイル名の末尾から判定します。オブジェクト名に日本語が入っていても構いません。

Base Colorbasecolor / basecolour / albedo / diffuse / basecol
Roughnessroughness / rough / rgh
Metallicmetallic / metalness / metal / mtl
Emissionemission / emissive / emit / glow
Normalnormal / nrm / norm / n
Alphaalpha / opacity / opac / transparency
Displacementdisplacement / disp / height / hgt
AOao / ambientocclusion / occlusion / ambient

マップ名の付いていないファイルは、同じ名前のオブジェクトが他にある場合に限り Base Color と推定し、それ以外は「未分類」に残します。勝手に決めつけて静かに混ぜないための作りです。

仕様として決めていること

色を変えない

読み込みから書き出しまで色空間の変換を行いません。単色の PNG を通しても RGB の値は 1 も変わりません。

16bit は 16bit のまま

16bit の画像は Canvas を通さない経路で読み書きするため、16bit のまま統合して書き出せます。Canvas は 8bit までしか扱えないので、そこを通すと静かに劣化します。

解像度が違うものは混ぜない

自動で拡大・縮小すると、気づかないまま画質が変わります。解像度が揃っていないグループはエラーで停止します。書き出し設定を揃えてから読み込んでください。

ZIP でまとめず、PNG を1枚ずつ出す

一度 ZIP 出力を作ったのですが、Windows が展開時に「問題を引き起こす可能性のあるファイルが見つかりました」として中身をまとめてブロックすることがあったため、外しました。PNG 単体なら問題なく開けます。

よくある質問

アルファが入っていない画像しかありません

アルファが実質的に無効な画像を検出すると、グループ内の画像の外周から未ベイクの色を推定して、色をキーにした合成へ自動で切り替えます。切り替えたときは必ず通知が出ます。黙って全面を上書きするのが一番まずいので、そこは必ず知らせるようにしています。

スマートフォンでも使えますか

横幅を必要とする3ペイン構成のため、パソコンでの利用を想定しています。狭い画面では横にスクロールしてください。

ファイルはアップロードされますか

されません。処理はすべてブラウザの中で完結しており、画像がサーバーに送られることはありません。


ベイクマップ統合ツールを開く