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で作業を完結させる人なんてほぼいないので、こーいう無駄機能やめてほしい。

復活します

少しずつ作業時間が確保できるようになった気がするので、昔と同じような活動を徐々に再開しています。主なDCCツールはBlender3.6、SubstancePainter2023、ZBrush2022。Cinema4Dはもう更新をやめてます。平日1~2時間、休日に夜更かしして、5か月くらいかけて新しいキャラクタをとリグを入れるところまでできました。まだ要修正ですが。

Blenderはいいツールなのですが色々覚える過程で痛感したことがありまして、メニューから呼び出せない隠し機能みたいな操作や、ネットの古くて断片的な情報を調べるのがほんとキツいです。習得が異常に楽だったCinema4Dをもう少し真似してほしいですねえ・・・。
時短につながる機能やアドオンは助かるので活用します。ヘア機能、Evee、AutoRig-Proなど

ちなみに本業はNWインフラの構築やサーバ・クラウドサービスの販売をしている会社にいて、職業病なのか家のネットワーク環境も少し凝ったものになってるので、そのうち紹介できればと。

色々あった旧サイトはこちらに移動しました。 https://unreal.rgr.jp/old/index.html