リアルタイム系の3DCG制作に関するノウハウや実践的なTipsを共有するWiki形式のWEBサイトです。

Substance Painterの基本的な作業手順と注意事項をまとめてみました




FBXを出力

SubstancePainterではモデルを作成することができません。
テクスチャを描くために、MayaやBlenderなどDCCツールにてモデルを作成し、FBXを出力する必要があります。

またFBXは、
ローモデルハイモデルの2つが必要になります。
ハイモデルは無くてもテクスチャを描くことはできますが、SubstancePainterの便利機能を使うならあった方がよいです。

また、ローモデルを作成する上で注意しなくてはいけないことがいくつかあります。
  • UVを取っておく
    • 0〜1に収める(UDIMを使わない場合)
  • 三角化する
    • 気にしなくていいかもですが、三角分割の方向が最終モデルと違うと法線に齟齬が出ます
  • ハードエッジ、ソフトエッジを設定
    • 三角化と同じ理由です
  • 左右対称にする
  • メッシュを分ける
    • 各メッシュはハイポリと対の名前にし、接尾辞に_lowなどと付けるのがオススメ
    • 例:ローモデル body_low,head_low ハイモデル body_high,head_high
  • マテリアルを適切に分けておく
    • マテリアル単位でテクスチャを描くため分け方や名前をフィックスした方が楽です
  • 口の中など隠れる部分は口を開ける等見えるように

プロジェクトの新規作成

SubstancePainterを起動します。
File->New
で新しいプロジェクトの設定を行います。

Template使用するエンジンに応じたテンプレートを使用します。無い場合は選ばなくても大丈夫です
Meshローモデルのfbxを指定します
Create a texture set per UDIM tileUDIMを使用する場合はチェック
Import Camerasカメラをインポートします
Normal map formatノーマルマップタイプを選択
Compute tangent space per fragmentタンジェントとバイノーマルをピクセルシェーダーで計算します。エンジンに合わせてチェック
Document resolutionテクスチャ解像度
Import mesh normal maps and baked maps for all materials他のツールでベイクしたテクスチャはここに追加します

ちなみにこれらの設定は
Edit->Project Configuration
で後から変更可能です。
テクスチャ解像度についても劣化することなく大きくしたり小さくしたりできます。

長方形テクスチャについて

以下の仕様は2017までの不具合だったようです。2019では長方形テクスチャも問題なく扱えます。
長方形のテクスチャ(1024*512等)を扱う場合は注意が必要です。
プロジェクトの初期設定で長方形にしてしまうと、ブラシの比率がおかしくなります。
真円のブラシが縦長の楕円になってしまったり……。
こうなると非常に面倒で扱いづらいので、最初は正方形の解像度に設定し、
テクスチャ出力前にTextureSet SettingsのSizeを長方形に変更してからテクスチャ出力することをオススメします。
解像度が変更されるので見た目に若干差異は出ますが……。

ベイク

TextureSet SettingsのMesh maps
Bake Mesh Maspボタンを押し、ベイクの設定を開きます。


主な設定・注意点は下記のとおりです。
Common parameters
High Definition Meshesハイモデルを指定します
Average Normalsハードエッジにノーマルマップをベイクするを参照
Match複数メッシュある場合は「By Mesh Name」を指定。同名のメッシュ毎にベイクします
High poly mesh suffixハイポリメッシュにつけた接尾辞
Low poly mesh suffixローポリメッシュにつけた接尾辞
Ambient occulusion
Ignore BackfaceOFFにするとぶっさし部分の内側にもオクルージョンが入ります
SelfOcclusion同名メッシュ毎にベイクしても、全てのメッシュからオクルージョンを計算するようにできます

ペイント

細かいことを書くとキリが無いので……
fill layer(塗りつぶしレイヤー)にマスクでペイントするのがオススメです。
フォトショでも同様ですが通常のレイヤーにペイントすると引き継ぎもできず再現性の無いデータが出来上がるので趣味でもないならやめたほうがよいです。というかやめてください(泣)


なるべく3Dビューでペイントするという点も重要です。
そうすることで仮にモデルのUV変更があった場合にも非破壊でペイント情報を引き継いでくれます(逆に形状が変わるのは鬼門)。
2Dビュー(UV)に描くとUV変更した際にペイント情報が欠損してしまいます。
その部分に関してUVを変えないつもりであれば2Dビューに描くのは悪い選択肢ではありません。

また、スマートマテリアルを使用すれば楽にリアルな質感を設定できます(修正も楽です)


色調補正レイヤーを作りたい場合は【SubstancePainterで色調補正レイヤー】を参照

パーティクルは使わなくていいと思います。重いですし。

メッシュの差し替え、更新をする場合

ペイントしている最中、UVが変更されたり形状に修正が入るなどしてメッシュを差し替える必要が出てくるかと思います。
そういう時は
Edit->Project configuration
で新たなローモデルを選択します。

Preserve Strokes positions on meshをチェック
これにより3Dペイントのストロークが保持されます。

ストロークの保持は大きくモデルに変更があるとエラーになります。
その場合はストロークの保持はチェックを外して読み込むことで回避できます。
UVベースで投影されるのでこちらはこちらでUVの変更に対応できないというデメリットがあります。
UVベースではなくバウンディングボックスの更新でした。詳しくはこちら【Preserve strokes とは】を参照してください。

マテリアル名を変更する場合

マテリアル名を変更するとペイントやレイヤーの記録であるテクスチャセットのリンクが外れてしまいます。
そういう時は下記の方法で解決します。
  1. 予めテクスチャセット名を新しいマテリアル名に変更してからモデルを差し替えする
  2. モデルを差し替えた後、テクスチャセットをアサインし直す

2.については下記の手順で行います。
ローモデルのマテリアル名を変更して読み込むとレイヤーがまっさらになってしまいます。
が、TextureSet Listを見ると古いマテリアルがグレーアウトしてるだけで残っていることがわかります。
これを新しいマテリアルにアサインしてあげればOKです。

まず、
TextureSet Listの Settings->Reassign Texture Setsを開きます。
左のDisabled Texture Setsに古いマテリアルが入っています。

これを右のProject Texture Setsにある新しいマテリアルにドラッグします。

左のDisabled Texture Setsの方に移動した新しいマテリアルの×ボタンをクリック。

Applyボタンを押して実行します。

するとTexture Set Listに古いマテリアル名のテクスチャセットが残りますのでこれをダブルクリックして新しいマテリアル名にリネームします。

これで新しいマテリアル名に入れ替えることができました。

テクスチャ出力

ひと通りペイント作業が終わったらテクスチャを出力します。
File->Export Textures で設定を開きます。

出力先、拡張子、パディング、サイズ等を指定してExportします。
Configには予め用意されている各エンジン向けのプリセットが入っていますのでそちらを使用すると便利です。
Configurationタブの細かい設定などは別の機会に説明できればと思っています。

コメントをかく


「http://」を含む投稿は禁止されています。

利用規約をご確認のうえご記入下さい

※現在 ユーザーID保持者 のみがコメント投稿可能な設定になっています。

Wiki内検索

メニュー

Maya

管理人


管理者:kmj
Twitter:@kmj3dcg
ゲームグラフィックに携わり十数年、現在フリーランスのモデラーとして活動しています。
専門分野:モデリング、テクスチャ、ウェイト(キャラモデルがメインのゲームグラフィッカーです)
お問い合わせはこちらまでお願いいたします。

Amazonアソシエイト

皆様のご協力感謝しておりますm(_ _)m























管理人/副管理人のみ編集できます