Blenderで作成したモデルにSubstancePainterを使ってみました

2019年3月3日

女の子モデリング修行のBlenderで作成したモデルのテクスチャーを作成するのに、以前からずっと気になっていたSubstancePainterを使ってみようと思い立ちました。

 

※画像はクリックで拡大できます

 

スポンサーリンク

SubstancePainterを使おうと思った理由

 

モデルをUV展開してそれに合わせてテクスチャーを書いて作成していくというのは、UV展開を上手く行うための知識と経験が必要でしょうし、クオリティの高いテクスチャーを作成するには絵心が必要となると考えています。

残念ながら、自分にはその両方が全く備わっておりません(涙

SubstancePainterは何やら3Dモデルに直接リアルタイムで色をペイントできたり、肌や布地等の質感もペイントする事ができたりするようなので、一から自前で作成するよりも効率的にモデル用テクスチャーを作成できるのではと考えました。

そういう訳で、 SubstancePainterに救いを求めてみたいと思います。

 

SubstancePainterの導入

 

早速SubstancePainterをダウンロードできるAllegorithmic社のページに行きます。

ー Allegorithmic社のページへ ー

30日間無料版がダウンロード出来たので、使ってみて欲しくなったら買う事としました。

ダウンロードが完了したので早速インストールしました。早速起動します!

起動直後に警告が・・・・

のっけから何やら警告表示が出てしまいました(汗
とりあえず上から解決していきたいと思います。

DRIVER ISSUE

グラボのドライバが古いため、予想外の挙動とクラッシュが発生するかもしれない!という警告でした。グラボのドライバーが古いとは・・・・教えてくれて有難う!早速更新してきました。

TDR ISSUE

こちらの内容は、TDR(Timeout Detection Recover)の値が低すぎる、といった事らしいのですが、WindowsOSはGPUの処理でこのTDRで指定されている秒以上の処理時間が掛かった場合は、GPUドライバを強制的にキルしてしまうそうです。

その時にSubstancePainterも終了してしまうそうなので、 このTDRの値を60秒、もしくは余裕を持って120秒に変更すれば良いようです。

レジストリを書き換える必要があるので、Windows7を使ってる自分は「プログラムとファイルの検索」に「regedit.exe」と入力してregedit.exeを実行します。

プログラムとファイルの検索からregedit.exeを探す

regedit.exeを起動したら、「HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\GraphicsDriversを探してクリックします。右側に「TdrDelay」と「TdrDdiDelay」という二つのキーがあるらしいのですが・・・・

無かった・・・・

TdrDelayとTdrDdiDelayの二つのキーは自分の環境にはありませんでした。

無い場合は作れば良いらしいので、右側で右クリックして「新規→DWORD(32ビット)値(D)」を選択してTdrDelayとTdrDdiDelayを作成追加します。

TdrDelayとTdrDdiDelayをそれぞれ右クリックして「修正」を選択、表記を「10進数」にして「値のデータ」を120にします。

作成したTdrDelayとTdrDdiDelayの値を変更
設定後はこのような感じになっている。

 

PCを再起動後、再びSubstancePainterを実行してみます。

SubstancePainter初回起動時

 

今度は警告表示も出ずに、SubstancePainterを起動する事ができました!

Activation wizardというライセンス認証のウィンドウが出ましたが、30日無料体験と言う事で、ここでは「Evaluate this product」を選択してAllegorithmicのページで登録したアカウントとパスワードを入力、トライアルのライセンス選択といった感じでどんどんNextボタンを押して行きました。

 

SubstancePainterにモデルをインポートしてみる

 

いきなり前回作成したキャラクターモデルで作業するのもなんだか不安なので、Blenderで簡単なコップのモデルを作成しました。

Blenderでコップ作成

ちなみにコップ本体と取っ手は別オブジェクトになっております。SubstancePainterにインポートした際にどういった状態になるのか試すためです。

本体と取っ手は別オブジェクト

 

SubstancePainterにインポートする前に、モデルのUV展開をしておく必要があるみたいなのですが、複数のオブジェクトを一枚のテクスチャにUV展開する場合はUVが重ならないようにしなければならないようです。

Blenderの標準搭載アドオン、「Texture Atlas」を使う事で複数のオブジェクトのUV展開を重ならないように行えるようですので、これを使ってUV展開しておきます。早速BlenderのアドオンTexture Atlasを有効にします。

「ファイル」→「ユーザー設定」のアドオンで「Texture Atlas」を検索して有効化します

 

アドオンを有効化すると、プロパティエディター中カメラマークのアイコン「レンダー」の一番下にTexture Atlasが追加されるので、テクスチャーをまとめたいオブジェクトを全て選択した状態で「+」を押し、グループを作成します。

Texture AtlasでcupGroupを作成した状態

 

グループを作成したら、「AddSelected」で選択中オブジェクトをグループに割り当て、「StartManualUnwrap」を押して選択中のオブジェクトを全て統合した状態のオブジェクト(自分の場合はcupGroup_mergedObject)が生成されるので、それをUV展開します。自分は「スマートUV投影」の「島の余白」を0.01にしてUV展開しました。

取っ手と本体のUVが重ならずに展開されている

 

統合されたオブジェクトのUV展開が重なっていない事が確認できたので、「FinishManualUnwrap」を押します。これで重ならないUV展開ができました。

このままエクスポートしてSubstance Painterに持っていきたい所ですが、一点確認する所がありました。それはプロパティエディタの「オブジェクトデータ」を選択して各オブジェクトの「UVマップ」を見てみると、統合オブジェクトのUV展開より前のUVマップ情報が入っている場合がある事です。

UVマップが複数設定されてしまっている

 

UVマップに複数設定されていると、Substance Painterで正しく認識されずに二つのUVマップが重なった状態になってしまいます。その状態で塗ったりするとおかしな事になったので統合前のUVマップは削除します。

UVマップを一つにしたら、モデルをfbx形式でエクスポートします。fbxエクスポートの設定は下記画像のようにしました。

fbxエクスポートの設定

 

SubstancePainterを起動し、「ファイル」→「新規プロジェクト」を選択します。プロジェクト作成ウィンドウが出てくるので、「選択」ボタンを押してblenderでエクスポートしたfbxファイルを選択します。他の設定は下記画像の通りです。

SubstancePainterの新規プロジェクト設定

 

OKボタンを押して見ると、作成したコップのモデルと、複数オブジェクトの統合されたUVマップが無事表示されました!

コップモデルは無事Substance Painterへ・・・

 

とりあえず軽く触ってみる

 

Substance Painterの導入とモデルのインポートで長くなってしまいましたので、今回は軽く触って次回から色々試したいと思います・・・・(汗

とりあえずSubstance Painterには「Smart materials」というマテリアル達が用意されており、それを適用するだけでも劇的に見た目が変わります。

レイヤの所に「Add a smart material」というアイコンがあるので、それを押して好きなスマートマテリアルを適用できます。

Aluminium Anodized Red
Fabric UCP Used シワシワ
Wood Walnut 自然を感じます

 

スマートマテリアルとマテリアルは、まだまだ沢山あるので付け替えてるだけで楽しい・・・・。

パっと作ったコップのモデルが、スマートマテリアル変えるだけで様々な変化を遂げていくのに正直感動しました(涙

スポンサーリンク