忘却まとめ

Blenderの中級者・上級者向けの踏み込んだ情報や、アドオン・3DCGに関する情報を記事にします

テクスチャペイントのやり方・作業工程・注意点【Substance Painter】

Substance Painter

更新日:

Substance Painterでテクスチャペイントする下準備・ベイク・質感の作り方などを紹介する。

下準備

モデルを描きやすいように位置調整する

分離するパーツや、大きく変形するオブジェクトは、オブジェクト同士の位置を離す。不要なAOができないようにし、描きやすくする。

  • 脇や腕が描きやすいように腕を上げるポーズにする
  • オブジェクト同士の位置を離す
    • ボーンやキーフレームなどを利用して、元の位置に戻せるようにしておくこと

モデルを読み込む

データに何らかの問題があると、エラーが出てモデルを読み込めない。その場合はエラーログを確認して適宜対応する。

  • マテリアル割り当てが正しいか確認する
  • マテリアルに名前をつける
  • 不要なマテリアルを除去する
  • 不要な回転・スケールなどのトランスフォームを適用する
  • モディファイアを適用する
    • サブディビジョンモディファイア以外の生成系モディファイア

ベイクする

メッシュの曲率や位置・AOなど、様々な情報をベイクすることで、スマートマテリアルやマスク処理で多くの表現ができるようになる。Substance Painterでのペイントでほぼ必須の工程。

スカルプトしたハイポリモデルから、リトポしたローポリモデルへのノーマルなどの転写もできる。より情報量の多いベイクになるので、スカルプトで作ったモデルならば積極的に利用したい。

別パーツへの影響を避ける

参考画像

ハイポリモデルからのベイクの場合、凹凸の差がローポリモデルと大きいと、うまくベイクできない。
そのため、ケージの値を調整してエラーが起こらないようにする。

パーツ同士の位置を離す

ケージなどのベイク設定を調整しても対処しきれないエラーが起こる場合もあるので、パーツ同士をベイクの影響の起こらない程度に距離を離してベイクした後、再度モデルの位置を元に戻す、という方法がある。

  1. モデルの全パーツの間隔を開けて位置調整し、位置をキーフレームに保存
  2. この状態でSubstance Painterに読み込み、ベイクする
  3. 正常な位置に戻して、モデルを再読み込みする
    • 正常な位置に戻して作業した方が最終ルックに近く作業できる。しかし、隠れる部分の描きやすさを優先する場合は、離したままペイントする方がよい
    • 手動でペイントしたストロークは、3D空間の位置に保存されるため、書き始めたらパーツの位置を動かさないこと(書き直しになる)
  4. パーツ同士のAOがほしい場合は、再度AOのみをベイクする

必要なチャンネルのみベイクする

ベイクするマップや使用マテリアルが多いほどベイク画像も多くなり、ファイルデータサイズが大きくなる。軽く1GB超えるので、不要ならばベイクしないようにする。

  • ノーマルは不要
    • ハイポリからベイクするなら必要
  • IDは不要
    • 頂点ペイントやポリグループ分けを用意しているなら必要

AOチャンネルを追加


簡単に情報量を増やすことができるため、あるとよりよい。
AOはデフォルトで存在しないので、追加する必要がある。

  • TEXTURE SET SETTING → チャンネル → [ + ] アイコン → Ambient Occlusion

AOマップをそのまま使う

ベイクしたAOマップを塗りつぶしレイヤーのマスクとして利用する。

ローポリすぎると、ベイクではポリゴン感が出てしまってうまくいかないので、手動で描き込む方がよい。

  • 白黒が逆なので、レベルを追加して、反転する。必要あれば値を調整
  • ノイズがあるので、ブラーフィルターでぼかす
  • いらない部分のAOはペイントで消す

ベイク手順

  1. TEXTURE SET SETTING → Mesh Maps → Bake Mesh Maps をクリック
  2. Common parameters → Output Size を、2048px x 2048pxにする
  3. Bake all texture sets を実行
    • 場合によっては時間がかかるので、放置して別の作業をするとよい

質感を作る

質感ごとにマスクする

同じテクスチャセットの中でも、別の質感で分かれていることがある。
まず、パーツごと・質感ごとにフォルダを作って、塗りつぶしレイヤーをマスクする。
ほぼ必須なので、これのスマートマテリアルを作っておくとよい。

  1. 描き分ける部位ごとにフォルダを作る
  2. なんでもいいので識別しやすい色のFillレイヤーをその中に入れる
  3. フォルダにブラックマスクを追加する
  4. このフォルダを必要な数だけ複製しておく
  5. Polygon Fill (4キー)などを利用して塗りつぶす
  6. わかりやすい名前をつける

いくつかのマスク作成方法

マスクを作る方法はいくつかある。手動で作るか、頂点カラーを利用するのがよい。

  • Polygon Fill (4キー)などを使って手動で塗る
    • ベイクでのIDマップを使用しない方法
    • UV・面・リンクしたメッシュから塗ることができる
    • 事前用意する必要がないので、簡易的に使える
    • 複雑な面選択がしにくい
    • メッシュの位置やUV位置に依存するので、それらが変更されたときは書き直しになる
  • IDマップの頂点カラー
    • 一見グラデーションがかかっていて使えないように見えるが、Substance Painter側で取得する範囲を指定することができるため、面の境界ごとにはっきりとつけることができる
  • IDマップのMaterial color
    • ベイク対象のモデルから、マテリアルの色をベイクする。あくまでベイクなので、近すぎる無関係の面にまでついてしまうことがある
  • IDマップのZBrushのポリグループ

塗りつぶしレイヤーを使う

傷を表現できるプロシージャルテクスチャ。Scratchで検索

基本的に塗りつぶしレイヤーを利用し、マスクに描きこんだり、プロシージャルテクスチャでマスクする
これの利点は、色を一括して後調整することができる。一般的なCGペイントの手法。

Fillレイヤーを追加してマスク作業を繰り返して、レイヤーを作っていく。

  1. 塗りつぶしレイヤーを追加
  2. 必要なマップ以外は無効化し、各値を調整
  3. [Add Black Mask]
  4. Add Fill
  5. Add Fillにプロシージャルクスチャを追加
  6. 値調整、加筆修正

直接マスクに書き込まない

手動で描き込む場合は、Add Paint から新規マスクを追加して描き込むこと。

要素を分けておけば、あとで手動で描き込んだ箇所だけオフにしたり不透明度を調節することができる。

マップを多く使う

特定マップだけを入れても安っぽく、質感が出てこない。
使えるなら色・金属・粗さ・高さ・AOなど全てのマップに質感を入れる。
特に、カラー・高さ・粗さに質感を入れると情報量が増える。

なにかしらうまくいかない時は、各マップ単体で見るといい場合もある(Cキー)。

カラー - Color

陰影を強調させたいときにもカラーに入れる。

最終的な色味は光が当たって明るくなっている状態であり、カラーの段階では少し暗めに設定するとよい。

ハイトマップ - Height

簡単に情報量を追加できるので積極的に使う。
アルファやプロシージャルテクスチャを活用する。

ノーマルマップ - Normal

手書きではやりにくい。アルファなどを利用。

反射 - Roughness

均一な反射は不自然・作り物感を感じさせる。

金属 - Metallic

金属の質感以外では不要。

AO

溝をはっきりさせ、形状をわかりやすくする。

モデルの再読み込み

Substance Painterでは、3Dビューで描いたものはメッシュを更新してUVが変更されても引き継ぐことができ、UVに依存しないテクスチャペイントが可能である

  • 編集 → Project Configuration...

モデルのミスはその都度修正する

ライティングのあるビューポートでモデルを見ると、モデリングソフトのシンプルなビューポート表示では分かりづらいミスが浮き彫りになる。
テクスチャペイント中にモデルのミスが見つかれば、モデリングソフトに戻り、修正し、メッシュの更新する。これを繰り返す。

読み込んだら既存のレイヤーが消えた

読み込んだモデルのマテリアル名が変更されていた場合は、新しくテクスチャセットが作られてしまう。
データは残っているので、テクスチャセットを再割り当てして直すことができる。

Substance Painter側でも読み込み前にマテリアル名変更しておけば再割り当て作業も不要になる

その他

必要に応じて2Dペイントを使い分ける

3Dペイントの方が利点は多いが、完全に3Dペイントソフトだけで完結できるわけではない。そのため、アルファやパターン素材作りはPhotoshopなどで作る、というような分担は必要。
それぞれ利点・欠点を理解し、併用してテクスチャを制作する。

ブラシサイズを[筆圧なし]にする

ブラシサイズは、基本的に筆圧がない方が描きやすい。

  • PROPERTIES - ペイント → ブラシ → サイズ → [筆圧なし]にする

テクスチャ素材

タイリングできる素材がよい。
これも塗りつぶしレイヤーと同様に、マスクを利用して必要な場所だけ表示するようにする。
UVに依存しない質感データを作れば、使い回すことができる。

  • cgTextures.com などでテクスチャを探す
  • Photoshopでレタッチ・色調補正・タイリング・ハイトマップ化などをする

グラデーションを作る

  1. マスクにAdd generatorで、ジェネレーターを追加
  2. 3D Distance を追加
  3. 値を調整する

ストライプ模様を作る

Gradient Linearのプロシージャルテクスチャを利用する。

コントラストを1にすれば、はっきりとしたストライプ模様を作ることができる。

シェーディングをカラーに変換する

フィルター → Baked Lighting Skyedを利用する。ライトの当たり具合を調整できる。

グラデーションマップ(カラーランプ)を利用する

フィルター → Gradientを利用する。
上記のBaked Lighting Skyedと併用することで、陰影をカラーに変換して、好きなように濃度や色の変化を調整できる。

ライティングがなく、すべてテクスチャのみで再現する必要のあるアニメ系キャラモデルで便利。

テクスチャのUVの切れ目を消す

  • 投影方法をUVではなく、Tri-planar projection に変更する
  • クローンツールで修正する

不要なデータは除去する

Substance Painterは非破壊なので、レイヤーを構成するためのあらゆるデータを、ファイル内に保持している。そのため、データ容量が1GBを軽く越えることが多い。不要なレイヤーやテクスチャは消すこと。

  • ファイル → Clean... により、未使用のデータを一括してファイル内から除去することができる

テクスチャとして書き出す

画像のような設定で出力している。
自分はUnityで使えるようにしているので、これは各自にあった設定で出力する方がよい。

命名は、マテリアル名 + マップ名としている。
ファイル名は長いのが嫌なので、マップ名を短く設定している。
$textureSet がテクスチャセット(マテリアルの名前)を意味する。

結果 : MAT_Lulu_Skin_Ald

  • $textureSet_Ald
  • $textureSet_MtlRgh
  • $textureSet_Nml
  • $textureSet_AO

-Substance Painter
-,

Copyright© 忘却まとめ , 2020 All Rights Reserved Powered by STINGER.