SubstancePainterではベイクしたCurvatureマップを使ってジェネレーターなどのパラメーターを調整しながらテクスチャをペイントすることが多いと思います。
ベイク時にCurvatureマップが綺麗に出ないとジェネレーターなどが適切に使えませんよね。
ベイクしたいローポリモデルにハイポリモデルの差分を使ってベイクする場合は綺麗にCurvatureマップが作成されることが多いですが、ローポリモデルのみでのベイクの場合は綺麗に作成されないことがほとんどだと思います。
そこで今回は「ローポリモデルでCurvatureが綺麗にベイクできない場合の対処法」を考えてみました。
ハイポリを用意することが出来ない場合にCurvatureを綺麗にベイクしたい時の参考にしてみてください。
-
【SubstancePainter】ペイントが削れたスマートマテリアルを作ってみた
今回はSubstancePainter公式サイトのチュートリアルにある 「金属のペイントが削れたスマートマテリアル」を実際に作ってみました。 バージョンや使用モデルの違いとパラメーターの値は自分なりに ...
続きを見る
【SubstancePainter】Curvatureマップが綺麗にベイクされない場合の解決策
今回はこちらのモデルを使用します。
SubstanceShareで配布されているモデルで、比較的ポリゴン数が少なめで制作されています。
ハイポリの差分は無いのでこのモデルのみを使用してCurvatureのベイク作業から修正までを進めていきます。
通常のベイク
まずは全ての項目をデフォルト設定でベイクしておきます。
ベイクされたCurvatureマップのみ表示した状態です。
凸を表現するエッジ部分(白表示部分)もほとんど検出されて無く、凹部分(黒表示)も少ししか検出できていません。
この状態だとCurvatureを使用したgeneratorなどを使っても、エッジの表現などが綺麗にされませんよね。
それではマップを綺麗に修正するために複数の対処法を試していきます。
Methodを変更してみる
1番手っ取り早いのがCurvature Baker Parametersの「ベイクMethod」を変更する方法です。
Methodを「Generate from Normal Map」に変更してベイクし直してみます。
すると画像の様に多少はエッジ部分が検出されてCurvatureマップがベイクされます。
通常のベイクでうまくいかない時に最初に試しておきたい項目ですね。
Detailsのパラメーターを上げてみる
「Details」のパラメーターを上げるほどCurvatureマップのディテールが増します。
パラメーターを上げればクッキリとしたCurvatureに、下げればぼんやりとしたCurvatureになります。
より強いCurvatureにしたい時は「Details」を上げてベイクしてみましょう。
ちなみにここではベイクのAlgorithmを「Per Pixel」でベイクしています。
「Per Pixel」はベイクされたNormal情報とメッシュの情報を合わせてベイクするアルゴリズムのようです。
Per Vertexでベイク
Algorithmを「Per Vertex」でベイクしてみた状態です。
「Per Vertex」はメッシュの情報のみでCurvatureをベイクするアルゴリズムです。
また「Enable Seams」にもチェックをいれています。
この項目はSeams=UVの切れ目をCurvatureベイクの際に参照するかどうかを示しています。
UVの切れ目にもCurvatureを入れたい場合などはチェックしておくと良いです。
注意ポイント
Enable Seamsを使用する時はある程度メッシュに凸凹(角度)がある状態じゃないと効果が出にくいです。
逆に局面などにシームを入れてもCurvatureの凹凸情報はベイクされないことが多いです。
ここまでの状態でベイクしたメッシュを使って、エッジの剥げがCurvatureで表現されているスマートマテリアルを割り当ててみました。
ある程度はエッジを検出してくれていますが、若干汚いというか荒い感じがします。
Curvatureのみで表示して近寄ってみた状態ですが、少し粗いのでもうすこし修正したいですね。
ペイントでCurvatureマップを修正する
ベイク時の設定変更だけではCurvatureマップの作成に無理がある場合はテクスチャペイントやフィルターで補正してしまいましょう。
Photoshopなどのグラフィックソフトで書き出して修正するのも良いですが、面倒なのでSubstancePainterの中で修正してしまうのが個人的に楽だと思います。
まずは塗りつぶしレイヤーを作成して、ベイクしたCurvatureマップ画像をBasecolorに割り当てておきます。
このようにCurvatureマップがマテリアル表示で確認できます。
Curvatureマップをレベル補正
作成したCurvatureレイヤーに「Add Levels」を追加して、レベル補正していきます。
Levelsのパラメーターを調整してこの様にレベル補正をかけました。
少し曲率のコントラストが上がるので、ジェネレーターを適用しやすくなりました。
一度画像ファイルとして書き出す
1度CurvatureマップをGreyscale画像として書き出しておきます。
書き出した画像を再度読み込んでCurvatureとして使います。
書き出したCurvature画像をSubstancePainterにドラッグして読み込んで、Mesh mapsのCurvature欄にセットします。
これでペイントで調整したCurvatureマップを使用することが出来るようになります。
スマートマテリアルを表示させるとこんな感じになります。
ここまででCurvatureにある程度問題なければテクスチャペイント作業を進めていっても良いかと思います。
ペイントして修正
ここまでの対策でもCurvatureが綺麗にできないですか?
それならもうペイントして修正してしまいましょう!
ペイントレイヤーにCurvatureマップを割り当ててた状態で、さらにその上からエッジを際立たせたい部分や、凹みを表現したい部分をペイントで修正してしまいます。
上の画像では塗りつぶしレイヤーにマスクを作成してエッジ部分の白をペイント。
通常レイヤーで細かい部分の修正や凹みをペイントしてあります。
ある程度ペイントしたら再度グレースケール画像として書き出します。
書き出した画像を再度SubstancePainterに読み込んで、Curvatureとしてセットした状態です。
スマートマテリアルを割り当ててみました。
最初にベイクのみで作成したものよりもより自然にエッジの剥げなどが表現出来るようになりました。
まとめ
今回はCurvatureマップが綺麗にベイクされなかった時の解決策について紹介しました。
簡単にまとめると以下です。
Curvatureベイク時に試してみたい解決策
- Methodを変更
- Per Vertexでベイク
- Detailsのパラメーターを調整
- Curvatureマップをフィルターで調整
- 細かい部分をペイントで調整
出来ればベイクの際はハイポリゴンのモデルを用意した方が良いですが、
ハイポリモデルを用意出来なくてローポリのみでベイクするしかない場合や、ハイポリでベイクしても綺麗にならなかった場合には今回紹介した方法を使ってみてください。
Curvatureマップを修正する方法は他にも色々とあるとは思いますが、この記事で紹介した方法が比較的簡単に出来るのでオススメです。
-
【SubstancePainter】錆びて剥がれた表現ができるスマートマテリアル【無料】
以前SubstancePainterで塗装が削れたスマートマテリアルを作成する手順を載せた記事を紹介しましたが、Gumroadで似たような雰囲気で、意外と使う機会が多そうなスマートマテリアルが配布され ...
続きを見る
▼Substance Painter初心者の方にオススメの教本
▼キャラクターのテクスチャペイントの参考になりそうな本(バージョンは古め)