hibitの技術系メモ

数学とか3Dとか翻訳とか

Substance Painter(2018)を用いたみたま式肌ベイク法

 人物の3Dモデルを作るにあたって、肌のテクスチャを描くのはめんどくさい作業です。そんな時には、ゆきのみたまさんがあげていた、サブスタ(Substance Painter)を使った方法が役に立つのですが、

 自分が使っているバージョンと違っているせいか、用語が違っていたりするので解説・注釈をしていきます。同じ症状に陥っている方のために、注釈や操作ガイドをまとめておくことにしました。なお、自分が使っているSubstance Painterのバージョンは2018です。

 まず、テクスチャを塗るサンプルを用意します。

f:id:hibit_at:20180908191904p:plain  サブディビジョンをかけたスザンヌちゃんです。サブスタは適当にUV開いてもなんとかなるのでUV展開もスマートUV展開で一発です。この手抜きが後で悲劇を生むことになるとは知る由もなかった……(伏線)。

 サブスタを開きます。

f:id:hibit_at:20180908192326p:plain  サブスタを初めて触った人はひょっとしたらここで戸惑うかもしれないので注釈ですが、サブスタでは、右の赤丸部分にあるボタンでウィンドウを管理します(ツールバーからでもできまけど)。

  • Texture Set List
  • Texture Set Settings
  • レイヤ(なぜこれだけカタカナ?)
  • Properties
  • Display Settings
  • Shader Settings
  • History

 の7種類ありますが、使うのは

  • レイヤ
  • Properties

 の2種類だけですので、削ったり足したりして今のうちに整理しておきましょう。

f:id:hibit_at:20180908193028p:plain  ここのボタンでアンロック!

f:id:hibit_at:20180908193120p:plain  こうなればよろし。

 スザンヌを読み込みます。

f:id:hibit_at:20180908193431p:plain  fbxをドラッグ&ドロップで読み込みます。「プロジェクト構成」というメッセージボックスが出てきますが、何も考えずにOK押して大丈夫です。そしてまた例によって赤丸部分に注目してほしいのですが、今はここが「マテリアル」になっていると思います。これは「ベースカラー+ラフネス+ノーマル+ハイト」のチャンネルを足して物理的な演算をした後のプレビューになります。Unityに持っていく場合、例えばStandardシェーダーで各チャンネルを使うような場合ならこのプレビューを使う必要はありますが、トゥーン系シェーダーでテクスチャ1枚だけ使う場合はむしろ邪魔です。ベースカラーだけ分かればいいので、この部分を「Base Color」にします。

f:id:hibit_at:20180908194151p:plain

 次はベイクします。さっき「レイヤ」と「Properties」しか使わないと言ったな、アレは嘘だ。一回だけ「Texture Set Settings」を使います。

f:id:hibit_at:20180908201027p:plain  これで「Bake Mesh Maps」を押します。いろいろメッセージボックスが出てきますが、脳死状態でOKを押し続けていれば大丈夫です。

 次は塗りつぶしレイヤを追加します。

f:id:hibit_at:20180908201157p:plain

 次はそのレイヤにフィルタを加えます。

f:id:hibit_at:20180908201430p:plain  後はみたまさんの動画通りに

  • Baked Lighting
  • Histgram Scan
  • HSL Perceptive(みたまさんの動画だと「HLS」になっているので、注意!)
  • Gradient

 を加えれば大丈夫です。

 Gradientについて注釈を加えると、初期状態だと

f:id:hibit_at:20180908201731p:plain  こんな感じになって3色指定しなければいけない状態になってると思います。「みたまさんの動画だと2色だったのになぜ?」となるかもしれませんが、これは色の下にあるバー(Color 1 Positionとか)が0, 0.5, 1という並びになっていることが原因で、要はこの位置でグラデーションを区切っている訳です。2色にしたいならColor1のポジションを0、Color2のポジションを1にすれば大丈夫です。奇抜な色にしたいとかがない限り、2色で十分だと思います。さあこれで大丈夫、最後の仕上げにGradientのPropertiesの中にある「Input Transformation」から「Blur Intensity」を調整して影をぼかして…

f:id:hibit_at:20180908202138p:plain  グラデーションが途切れ途切れになっとるやないかワレ!

 どうやら、グラデーションの境目にブラーをかけるとUVマップの継ぎ目で途切れ途切れになってしまうという仕様のようです。南無。

解決策1

 綺麗にシームを入れましょう。以上。

解決策2

 Histgram Scanフィルターではこのような症状は起こらないので、ここの「Contrast」の項目でブラーをかけるのもアリです。

f:id:hibit_at:20180908202617p:plain

解決策2の補足

「クソUV」と名高いライトマップで実験してみましたが、ライトマップだとこの方法でもさすがにダメなようです。

f:id:hibit_at:20180908202909p:plain

 皆さんもサブスタを駆使してよい3Dライフを。