liltoonのためのSubstancePainterテクスチャ作成
SubstancePaitner上ではテクスチャが良い感じに見えるのに、Unityに持っていってliltoonの設定をすると全然違う!ってなってしまうことありますよね?
そんな悩みを解決する手助けになれば!というスクラップです。
インポート設定、出力テンプレート、liltoonでの設定項目まで出来たら良いなと思ってます。
試行錯誤しつつやるので体系的というより断片的な解説が多くなると思います。
私のSubstancePainterの知識は独学なので、効率がよくなかったり改善できるところがあったりすると思うので参考程度に考えてくれればありがたいです。
自分はこうしてる、ここはこうすると綺麗にできる、間違ってる情報などありましたらコメントでもXのDMでもくれると嬉しいです!
ワークフロー、全体的な流れ
Blenderでメッシュの作成→UV展開
→SubstancePainterでテクスチャの作成
→Unityに持って行ってliltoonの設定
UV展開はテクスチャを作る上で重要だと思ってるので今回はUV展開のところからやっていきます。基本的なことはスキップするので中級者向けになると思います!
補足ですが、私は大雑把にウェイトを塗る→UV展開→テクスチャを作る→ウェイトの微調整という順番でやってます。
ウェイトを塗りにくいトポロジーだった場合、テクスチャを塗ったあとにメッシュの修正をしてUV展開をやり直したりするのが面倒くさいからです。
SubstancePainterで行うこと
・パスを利用したディテールの追加
・UVタイリングによるレースの作成
・Blenderで作成したハイポリのベイク
など
UV展開
具体的な方法は省略しますが、どういう所を気を付けて展開したかだけメモ的に解説します。
シームを入れる場所のコツは、角度が急に変化するところ、素材が入れ替わるところです。
シームを入れるときのイメージは牛乳パックを切るときの感じです。
「Tシャツ 型紙」「スカート 型紙」などと検索して実際の服と同じ位置にシームを入れると良い感じになることが多いです。
あと、アドオンのmio3uvはとても便利なのでぜひ使ってください
とにかく便利
一回公式の説明見てみてください!→ https://addon.mio3io.com/#/ja/mio3uv/
靴
靴は左右のUVを重ねてます。
ベルト部分などのまっすぐにできそうな部分はまっすぐにしてます
靴下
自信ないのでやり直すかもしれません、左右重ねてるのも解除するかも
スカートの内側部分
ここはほぼ単色の塗りつぶしになる予定です。
まっすぐにできるところはまっすぐに!
ウエスト部分はノーマルマップでシワシワ感を出すために解像度を高めにしてます。
スカートの外側のレース部分
レースはUVのタイリングをしてるのでちょっと特殊です。
UVの0~1の領域からはみ出たところは繰り返しUVが使われる性質を利用して解像度を無理に高くしなくても高解像度に見えるようにします。
ビスチェ
まっすぐにできるところはまっすぐに!(何度でも言う)
左右対称にして管理を楽にします
こういう感じにシンプルなタータンチェックの画像をネットで拾ってきて、UVを微調整します。
こういうときにトポロジーが綺麗だと、UVの整理が楽になる
例えば、リボンのUVはこんな感じに展開してます。
全部四角形メッシュで作って、この方向にこの柄が欲しいんだ、と考えながらトポロジーを作るとUVをあえて歪ませることにより理想の方向にテクスチャを貼ることができます。
もし、ポリゴン数を減らしたいならあとで、いらない辺を融解したり三角化してあげれば良いと思います。
インポートします
Normalの形式はOpenGLにします
ベイクが完了したらBキーを押してベイクの結果を確認します
Curvatureが不自然に変わっているところ、AmbientOcclusionが想定外の黒さをしているところ、World space normalが不自然なところなど
を探してUVを修正していきます
このあたりで一回このスマートマテリアルを割り当ててみます
CurvatureやAmbientOcclusionのベイク情報が重要になってくるのはこのためです
このスマートマテリアルによってUnityに持って行ったときにSPと違ってのっぺり見えるのを改善します
ダウンロードしたスマートマテリアルをレイヤーの一番上に入れます
入れたら必ずチャンネルをBaseColorに切り替えて見え方を確認してください
SPのライティングのおかげでSP内だと質感が良く見えがちなのですが、liltoonに持っていくとSPでのライティング情報が持っていかれないのでのっぺり見えてしまいます。
私も最初この問題に頭を悩まされました。。
SPのライティングの情報をliltoonに持っていくために、BaseColorマップとNormalマップに情報を増やすのを頑張る感じです。
今後もチャンネルをBaseColorにして質感を確認します。これがliltoon内の見え方に一番近いので
オブジェクトのメッシュがくっついてるとCurvatureが正しくベイクできないのでオブジェクトを分離します
一旦綺麗にCurvatureがベイクべきました(これ以降4kでベイクしてます)
オブジェクトを切り分けていたことによって欲しい場所のAOがベイクされていないので、ずらしていたオブジェクトの位置のみ戻してベイクしなおします
いいかんじぽい
このようにCurvatureやAOを綺麗にベイクできたら先述のスマートマテリアルを入れただけでも影の情報がBaseColorチャンネルに反映されます
スマートマテリアルの値をいじれば後で見た目をある程度変えられるのでこの時点では大体想定通りの影の付き方してたらOK
このように綺麗にベイクする方法は私が完全に自力で考えたものなので、もっと効率が良くて綺麗な方法があるかもしれません、すみません
Blenderのスカルプトでハイポリ作ります
ここのチェック外してベイクします
MatchをBy Mesh Nameに変えます
ローポリのオブジェクトには○○_low、ハイポリのオブジェクトには○○_highと命名します
ベイク自体は成功しているのですが、ハイポリを用意していない部分のAOが真っ黒になっていることによってBaseColorがちょっとおかしくなっています
↓AO
面倒くさいので、今回はベイクによってできた、Curvature、Normal、AOのマップを一度書き出して
その画像を使いたい部分だけに割り当てて使おうと思います
簡単な解決策知ってる人いたら教えてください
やっとテクスチャを作っていきます
分かりにくくてすみません
まずはハイポリのデータを使わない靴からやっていきます
現段階
ベイクをして、影のスマートマテリアルをレイヤーの一番上においただけの状態
(ベイクミスでAOが1プロセス手前のものに戻ってます、この次の画像からは修正されてます)
変更あると思うけど一旦このくらいになりました
順番にできるだけ解説します
ステッチはシンプルにペイントレイヤーにパスに沿ってペイントでペイントするだけです。
Offset、Irreglarityの値などいじるとイメージに近づくかもしれません
レイヤー自体にマスクを追加してペイントしてほしくないところは制限してます
模様というかシームというかの作り方です
塗りつぶしレイヤーのColorとHeightのみ有効にして、マスクで制御しています
今回はへこんでほしいのでHeightをマイナスの値に
溝部分なので、周りよりわずかに暗くなってほしいので黒で塗りつぶしをしてます
基本はジェネレータのUVBorderDistanceを2つ使って縁取りをしてます
ジェネレータはコントラストをマックスの1にして、Distanceを調整してます
1番下のレイヤーをLdge、2つ目がSubにしてます
UVBorderDistanceのDistanceパラメータの値を1つ目よりも2つ目を小さくすると多分できると思います
このように縁取りをしたあとに、Paintでペイントしてほしくないところに制限して、Transformフィルタで微調整してます
Curvatureのジェネレイタも似た感じで使えます
体調悪くて更新遅いですすみません
Unityで見るとこんな感じです
liltoon5分セッティング
liltoonのちゃんとした設定はまた後で書きます
来月入院する予定があって今月中になんとか衣装出したいので、SPの細かい解説は省きます。
でも基本的に靴のやり方と同じで、あとはUnityで見たときに情報量が足りないと感じたところをノーマルマップやカラーマップに情報量を増やすような操作をSP内でしてあげればなんとかなると思います。。