Genesis 8 をVRM化でPuppet Masterの不具合回避


DAZ Studio で Genesis 8 が出てからずっと、Genesis 8 は Unity では使えん…と思っていました。 楽にキャラクターを使いたい場合、Final IKPuppetMaster 必須だなと思っています。

ところが、Puppet Master を Genesis 8 に適用すると…

このように、ラグドールがうまく生成できず、また Puppet Master のスクリプト内で常時エラーが発生してしまうようになります。

Genesis 8 になって、従来の T ポーズから A ポーズになって、さらにボーンの軸も修正されたのでしょうか… Final IK は問題ありませんが、Puppet Master は完全に使い物になりませんでした。ずっと解決策を探していました。

今回、VRM に変換することによって、Genesis 8 へ Puppet Master 適用で起きていた不具合を回避することができたので、忘れないように、ワークフローを動画にしてみました。

VRM

結構前から存在は知っており、共通フォーマットして使えるのでは?と気にしていたのですが、HDRP とかをいじっていたので、これまで触ることがありませんでした。

ところが、あるとき VRM のページを読んでいると、「あれ?これ使えるじゃない?」という項目を見つけました。

細かいモデルデータの差違を吸収・統一

また、UniVRM ワークフローにて、

Pose Freeze
回転・スケールの除去処理を実行するか否か。 VRMの規約に合致するようにモデルを正規化する処理です。 初回のみ必要です。 事前にこの処理を通過させることにより各種コンポーネントが正しく動作するようになります。

これにより、ボーン毎の座標系も標準化してくれるのではないかと考えました。

やってみた

DAZ Studio で ZBrush による服のトポロジー補修とか、新しい DAZ 内での Surface の作成、Morph の出力とかもやっています。

補足

動画でやり忘れた項目がありました。せっかく胸部分を切り抜いて新しいサーフェスを作ったのに、Unity でマテリアルを適用し忘れていました。

こんな感じに、激しく動くと胸が衣装とかを突き抜けちゃいます。胸の部分は DAZ Studio で別サーフェスにして切り抜いてあるので、マテリアルを透明にしてしまえば、

Cutout にして、Alpha を 0 に

そうすると突き抜けても見えなくなります。

UniVRM不具合

バージョンは 0.53 。なんか不具合があるようです。Genesis 8 Female Base やSakura 8 はうまく変換できましたが、Kanade 8 を VRM に Export するとハングアップしました。しかもメモリを大量に消費して…

なにやら想定外のデータだったのかもしれませんが…(正確には Export した VRM を再ロードしている最中ですかね?)

メモリ消費 10GB オーバー

見ての通り、フリーズでは無いので、無限ループか何かに陥ってメモリをバカ食いしているみたいですね。

VRM はできていましたが、Unity で読もうとするとハングアップします。他のツールでロードしてみると、ツインテールが読み込まれていませんでした。

使用したアセット

まとめ

とりあえず、アニメ調な Sakura は VRM 化できたので、今まで何の不具合が特定できなかったアセットの組み合わせを再度試してみたいと思います。

コメントを残す

メールアドレスが公開されることはありません。