ライフル制作4とSubstancePainterのカラーマネジメント

前々から違和感持ちつつ後調整してごまかしていたのですが、SubstancePainterで作成しているときの表示とBlenderに持ち込んだ時の表示が全然違う。今回は特に。

これ原因はSubstancePainterのプロジェクト作成時の標準カラーマネジメントが、いかにも古そうな「Legacy」という設定になっているため。このLegacyは実際かなり暗めの表示になっており、その視覚ベースでペイントしていくと、他ソフトに持っていくと想定外に明るくなってしまう。そしてメタルの値が低い部分のラフネスの効果もかなり劣ってしまう印象。

ここの設定は「OpenColorIO」→「Substance」にしましょう。

実際比較するとこんなレベルで違いがあります。

異なるソフトでちょっと照明の当たり方が違いますが、お分かりですよね。

参照サイト
【Blender 3.1】カラーマネジメントの仕組み・設定について紹介!
https://cgbox.jp/2022/05/25/blender-color-management/

ライフル制作3

ローポリ版を作成中。ハイポリ版を横にコピーし、不要な形状を削除しつつ適した出力パラメータを確認してます。

かなりありがたいのが、モデリング時のカスタム法線を維持したまま出力してくれること。
Nゴンでも△ポリゴンでも歪んだ感じは一切なく他ソフトに持ってこれます。

Plasticityメモ

Plasticityはほとんどの操作がショートカットキーと単語検索でしか呼び出せません。パフォーマンスのグラフを出すくらいGUIがスッカスカで余裕はあるので、現在のモードで有効な操作の一覧を自動で出してくれてもいいのにな。各操作のアイコンを作るのが苦痛すぎるから?

 O:平面からオフセットしたカーブを作成
 Ctrl+R:横か縦方向にカーブを挿入 TABで切り替え
 Ctrl+3 or 4:選択した面かエッジかカーブに隣接する対象を選択
 Alt+D:平面投影表示でソリッドの輪郭やエッジからカーブを作成

他のサイトも貼っておきます。

アーティスト向けCAD『Plasticity』の操作方法をメモするだけの記事!
https://3dnchu.com/archives/plasticity-howto/
Plasticity マニュアル
https://doc.plasticity.xyz/ja

Plasticity

Plasticityという新しいソフトで銃のモデリングやってます。
ブールとかベベルが無茶苦茶強力なソフトです。もっと前からこれがあれば・・・

あと、作ってるモデルは作成前にざっくりと作ったデザインからかなり逸脱して考えながら作ってる状態なのでかなりペースが遅いです。作っては気に入らなくてNGの繰り返し。ずっとこればっかやってます。現実にあるものならもっとサクサクいけると思います。

UnrealEngine5に出力 その2

UnrealEngineのマーケットプレイスで入手できるアニメーションから、いくつかリターゲットを試してみました。もし、マーケットプレイスのアニメーションをリターゲットして多用する場合、多分極力ボーンの並びはUE5のと同じように調整したほうがいいです。簡単に直せるので。骨格が違ってもリターゲット時に調整はできますが、限界もあります。AutoRig-Proを使ってますが、その機能でレフトポーズもUE5のにしてからエクスポートしたほうがいいです。新しいIKを用いたリターゲットも挑戦しておこうと思います。

まだよく分かっていませんがキャラクタに追従する髪の導入方法は把握済み。エディタ内で動かすと設定したシミュレート通りの動きをしてくれます。重そうない印象がありましたが、全然多用しても問題無さそう。思いっきり振り回すと分け目の部分からしか生やしてないのがバレちゃうので、頭皮を隠すため固めの設定にしています。やっぱり頭皮全体から生やすべきなんだろうか・・・。

もちろん自前でアニメーションも作ってます。

UnrealEngine5に出力

UnrealEngine5がやはり気になるので、今回のキャラクタを持っていき、アニメーション作品を作ったりしたいのです。AutoRig-Proの構成もそれを意識した構成で始めてます。今は昔と違い、かなり充実したマーケットプレイスというUE専用コンテンツ販売サイトがあるので、そこも活用しようかと。

ちなみに自分のPCスペックはこんな感じです。
CPUがWin11に対応しない(なんでや・・・)のですが、22H2でもすんなり新規インストールできました。
 Ryzen Threadripper 1950X
 X399 SLI PLUS
 64GB RAM(3200 8GB ×8)
 2TB SSD
 4TB HDD
 GeForce RTX 3080 10GB
 オンボードサウンド

Eveeのレンダリングに慣れちゃったので、UE5でどうなるんだろう。

BlenderでグルームをUE向けに出力はできるけど、現段階でスキニングで動くメッシュ表面に追従するところまでは持ってこれないらしいので、仕方なくまつ毛と眉毛を板ポリとテクスチャ描写に置き換えます。そのあたりはMaxやMayaだと完全に対応してるっぽいです。
頭の髪はカツラ同然なので、頭のボーンに丸ごと追従させることでOKです。

で、いざ持っていったら、ちゃんと正規化やレベル設定がしてあるにも関わらず、指の一部のウェイトが反映されずrootにもってかれる不具合に遭遇しました。AutoRigで出力したFBXをBlenderで読み込むとUE5と同じ状態、かつ標準のエクスポートで出力したFBXは問題無しなので、「AutoRigがバグってんのかな」と思いつつ、メッシュを複製して再度リグにバインドし直し、複製したほうからウェイトを転送しなおしてみました。すると元と全く同じウェイトを使ってるのに不具合は治りました。

エクスポート設定をメモっときます。これで正しいのか分かりませんが、メッシュはSubstancePainter時点でペイントしたときのメッシュを三角ポリゴンにエクスポートしてBlenderに持ち込んでいます。三角ポリゴンにしつつ四角ポリゴンと同じノーマルを維持させるため、タンジェント情報を含んでいるはずです。タンジェントがあればスムーズの有無も関係ないはずなのですが、いちいちUE5でインポートしたときに警告を出してくるので、面を選択して出力しています。このあたり意識しておかないと、ノーマルマップがきれいに反映できないメッシュになってしまいます。

UE5でのインポート時にも落とし穴があります。
インポート時に、ノーマルを自動生成しちゃってくれる謎設定がデフォルトになってみたいなので、ちゃんとソースからノーマルとタンジェントを読み込むように指定しましょう。

これでようやくメッシュだけが持ち込めます。マテリアルの作成が始まるのですが、昔作ってたWL-Shaderみたいに、自分用の汎用的なやつを作りたいです。

テクスチャ作成@SubstancePainter

テクスチャペイントは、私のような趣味勢にとってはSTEAMのインディーズライセンス版がちょうどいいです。ホントに。ハイポリからローポリにベイクするのもコレでやったほうがいいです。

というわけで、ペイント云々よりベイク処理のやりやすさを紹介します。

まず、ハイポリとローポリの位置関係とトレース範囲を視覚的に確認でき、エラーがある部分を強調表示することができます。

で、ハイポリとローポリが、複数のメッシュで構成されて同一のマテリアルを使う構成の場合、仮にメッシュ同士が交差していると、その部分でベイク処理にも不具合が出ます。対策として、おそらく分離させたりするんだろうけど、その場合ハイポリベースのAOマップが忠実にベイクできません。

で、SubstancePainterはハイポリとローポリ双方の構成に含まれているメッシュの名前でベイク処理を分けてくれます。関係性の構成に漏れがないかもチェックできます。で、IDマップも出力すればレイヤごとにマスク処理として使えます。

これで複数のメッシュのベイクを簡単に単一マテリアル内に収められることになります。

素体のモデリング

ZBrushで素体(っていう表現でいいのか?)に細かいディテールを追加する作業です。ベースの形状は、昔からのデータをブラッシュアップし続けて流用してます。

今までは、プロジェクション方式でキャプチャ用に買った写真を張ってカラーマップを作り、そこから無理やりノーマルマップ等を作っていましたが、今回はまじめにZBrushでトライしました。

有料のブラシとかも買いましたね。

途中から瞼を閉じた状態にします。

目を閉じた状態にしないと瞼部分がZBrushで描けなかったりベイク処理も不安定になるので。
もちろんUV展開も閉じた状態で行います。
ベイクするようにエクスポートする直前では、下顎を下すような方法で口を少し開けたほうがいいです。それもベイク処理云々のため。

形状の変更はGoBというBlenderアドオンを使い、Blenderと連携できるようにしました。形状そのままで左右対称に頂点とかを移動できるのが便利です。

UVもUDIMという方式を採用しました。なんとなく便利な機能なのかなと。あと、ZBrushで謎の使用なのが、3DデータをインポートしたりGoBでインポートして持ち込むと、逆にエクスポートしたときにスケールや原点位置が強制的に変わること。

そこはここのランダムな数値を修正することで正せます。

「オブジェクトの中点を原点に自動で合わせてやろう。いい感じでしょ?」というお節介機能なんだろうけど、Zbrushで作業を完結させる人なんてほぼいないので、こーいう無駄機能やめてほしい。