Substance Painterでテクスチャを作っている際、「マテリアルを分けて作ってから出力後に結合したい」と思うことがあります。
Substance Painter上で結合して出力することは出来ないので、良い方法がないかいろいろ試してみました。
現在も模索中ですが、とりあえず自分で出来た方法をメモしておきます。
もくじ
どうしてマテリアルを分けるのか…
Substance Painterの特徴として、同じマテリアルのメッシュはUVを分割していたとしても境目をぼかしてつなげるように綺麗に処理してくれます。
解像度が充分に高い・もしくはマテリアルが大量にあっても困らないのであれば問題ないですが、解像度やマテリアルの数を抑えたい場合、デザインによってはわざとメッシュの分割そのままのビシッとした線にしたいケースがあります。
(こんな感じ)

これをやるにはバラバラに出力したテクスチャを自力で結合する必要があります。
僕の使っているバージョンでは結合して出力することができないので(想定していないというQ&Aがありました)、方法を模索してみました。
いろいろな方法
できるだけ簡単に結合できないか色々試してみました。こんな感じです。
・お絵描きソフト(CLIP STUDIO等)で結合する
・有志制作のツールで結合する
・Substance Designerで結合する
お絵描きソフト
ともかく大変です。
テクスチャが5~6種類あってマテリアルを4つくらいに分割している場合、修正を挟んで何度も作業するのは地獄です。
特にノーマルマップの領域がやたら拡大されているので、単純に重ねるだけで結合することはできず大変です。
有志制作のツール
海外の人が作った「Texture Set Combiner」というツールがあります。
ただし僕の環境では正しく出力できずにフリーズしてしまう状態でした…。
フリーのツールを使うことに抵抗がなければ試してみても良いと思いますが、環境によっては動作しない可能性があるので要注意です。
Substance Designer
こちらを持っている人であれば、ブレンドを駆使して結合することができます。
僕の体感、5つくらいのマテリアルを結合させるのはそんなに難しくないです。何十個になってくるとかなりしんどいと思いますが…。
出力の際、全部まとめて名前もつけて出力してくれるので便利です。
現在のところ、僕はこちらでやっています。
結合方法
全体像はこんな感じです。これは4枚のテクスチャを結合できるものです。

下準備として、テクスチャの書き出しの時「拡張+透明」で出力しておきました。
またテクスチャは「ビットマップ」ノードで読み込みますが、リンク参照にしておくと保存先のファイルを入れ替えるだけで別のテクスチャの結合に使えるのでおすすめです。
ベースカラー
「ブレンド」の「コピー」で結合します。
ノーマルマップ
今回は透明度がないテクスチャだったので「Alpha Split」でベースカラーのAlphaを持ってきて「Alpha Merge」で必要な部分だけ取り出してからブレンドしました。
透明度があるテクスチャの場合、「Material Selector」ノードを使って「拡張+透明」ではなく背景色を設定してその色を抜き出せるように作った方がよさそうです。
メタリック・スムースネス・AO
ブレンドで「最大(明)」にします。
ハイトマップ
ブレンドで「オーバーレイ」にします。(オーバーレイは明度0.5を境にして値が低ければ乗算、高ければスクリーン)
まとめ
いずれにせよしんどいです…。
Substance Designerの機能を駆使して作り込めば色んなテクスチャに対応するものが出来ると思いますが、結局ある程度の手作業を挟む必要があるのでしんどいです。
自分でツールを開発するのがベストなのかもしれませんが、更にしんどいです…。