そういう、モデルなんです。

ビジネスモデル、3Dモデル、設計図、模型などの現状と動向を考察、関連書籍の紹介

Character Creator 4 から Blender へ出力して VRM のリグに差し替えたら、再び悲劇が始まった(失敗)

Character Creator 4 のリアル系モデルでも VRMアバターを作ってみたいと思って Blender に出力 Export して VRM のリグに換骨奪胎を試みた。

手作業でジョイントの位置合わせをしてスキニングすると、やっぱり破綻・崩壊状態となった。こういうのを手際よく直す作業手順を、業界ではワークフローと言っているようだが、美化しすぎだろう…

過去に The Sims 4 の人物モデルを VRM リグに換骨奪胎した時にも、同じような悲劇に見舞われたので、その事故歴を活かして「ワークフロー」とやらを考えよう。

そのうち。

まず、メッシュを一つに統合してみようと試みた

過去に The Sims 4 のメッシュを移行して別のリグを埋め込んださいには散々な目にあったが、そのときの経験から類推すると、メッシュがバラバラだと必ずといっていいほどメッシュ崩壊が起きたり、スキニング(自動ウェイト)失敗する。

tombi-aburage.hatenablog.jp

VRM アバターであれば、CC4 が標準で想定するような高い品質は必要ないので、品質を落としていくことにした。

CC4 での人物モデルの詳細度 LOD について

CC4 で新規に作成したキャラクターは、高品質でカスタマイズしやすい CC3+ Character 型の人物モデルとなっている。

つまり、髪・衣服・靴・装飾などの着せ替えするのが当たり前と想定されるものは、専用のオブジェクトモデルに従った部品 CC Componets として扱われる。

何も考えずにこれをエクスポートして Blender にインポートすると、身体の各部位・衣服等々の構成要素のそれぞれについてメッシュが分解された状態で出力される。

Blenderアウトライナー Outliner に表示されたメッシュ

キャラクターのスケールダウン - 複数のレベルオブディテール(LOD)

CC4 では人物モデルについて、4レベルの詳細度 LOD を定義している。

  • 詳細な順に並べると CC3+ 標準、ActorBUILD 、LOD1、LOD2

www.reallusion.com

もちろん詳細度を下げれば、色々な情報が落ちていくことになる。

youtu.be

まず actorBUILD に落としてみたが、メッシュが統合されるわけでもなかった

品質を一段階下げて actorBUILD に変換してみる。

キャラクターの 最適化 & 圧縮 Character - Optimize and Decimate - actorBUILD

actorBUILD は距離感10m で使う想定の詳細度をもった人物モデル。
実例は actorcore で多数販売されているモデルが参考になる。

tombi-aburage.hatenablog.jp

 

PCが5年前の代物のためか、最適化&圧縮には数分かかった。
しかし最終的にはきちんと actorBUILD 型に変換された。

見た目はあんまり変わらないのだが、身体・舌・衣服・靴などは着せ替え自由な CC Component ではなくなり、それぞれが単なるメッシュに変換された。

メッシュが1つに統合されるものと思い込んでいたが、そうはならず、部位ごとのメッシュになっただけだった。

Blender にインポートした直後の状態としては、

  • メッシュは分かれたままだった
  • 瞳のテクスチャが狂ったようで、白目を剝いていた
  • パンツがズボンからはみ出していた

エクスポートした FBX のファイルサイズは 1/6 になったので、だいぶ軽くはなったが、メッシュが統合されたわけではなかった。

次に LOD1 にしてみたが、表情モーションはきれいさっぱり削除された

LOD1 では表情モーションは無くなってしまうとチュートリアルで説明されていたが、とにかく試してみた。

LOD1 は軽量ではあるが、顔表情なしという仕様

さらに軽量になったが、かなり品質は低下した。

  • 表情モーションは全て削除され、まばたきすらしないモデルになった
  • 顎鬚のテクスチャは、あからさまに雑になり、まるで溶かしたハンダのようだ

表情モーションのブレンドシェイプキーが出力されないとすると、Blender 側で全ての表情モーションを手作業で作成するしかなくなる。LOD1 ではダメなようだ。

結局のところ CC3+ Character で出力し、メッシュは Blender 側で統合することにした

数分待って actorBUILD に格下げして出力する動機もあまりないので、CC3+標準でエキスポートすることにした。つまり、振り出しに戻ってしまった。

失敗した理由

VRM の髪ボーンは削除すべきだった

VRoid のサンプルアバターの骨格を流用したのだが、幾つかの髪ボーンに親 Parent が設定されていなかった。

  • 何故か J_Sec_Hair2_12、J_Sec_Hair3_12、J_Sec_Hair1_01 の3つについて、親のボーンが設定されていなかった
  • 他の VRroid のサンプルも見てみると、どうやら髪・乳・コートの裾などの揺れモノ向けボーンは VRM の標準的な骨格ではないらしく、それぞれ設計にばらつきがあった

そのために自動ウェイトでのスキニングのさいに害をなし、冒頭の図のように、髪がその場に取り残されたようだ。

必要なら頭部 Head の必須ボーンから自分で生やせばいいようなので、髪のボーンは一旦全て削除した。

CC4 から出力するさいにTポーズにすべきだった

CC4ではAポーズだったのだが修正方法が分からず、そのまんま出力したので、Blender でのジョイントの位置合わせが面倒だった。

ポーズオフセット Pose Offset で修正したが、位置は合わなかった

それらしい名前のボタンがあったので押してみた。

Modify - Attribute - Pose Offset

 

公式サイトのヘルプとは画面表示が違っていたが、ボーンを選択して回転させて姿勢を変更できるという意味では操作は同じだったので続行した。

バグなのか左右対称 Mirror チェックボックスを使うと、腕がおかしな方向に曲がってしまう場合があった。

  • ボーンを選び替えるたびに、左右対称 Mirror ボタンのチェックをオフ・オンすれば大丈夫
  • 指の修正が面倒くさかったが、マウスホイール回転を使えば少し楽になる

CC4 では完璧なTポーズにしたつもりなのだが、Blender にインポートすると腕が上にあがり、脚がすぼんだ。

CC4 側でポーズを作る方法が何種類かあり、どれが正しい方法なのかまだ分かっていないせいかもしれない。

あらためて公式サイトのヘルプやチュートリアルを確認してみると、ポーズオフセットは、デブや人外の人物モデルの初期ポーズを微修正するために使っているようだった。

ポーズオフセット Pose Offset で修正するさいには、モーションの状態に注意すること

色々試してみた結果、オフセットというものは、全てのポーズに共通に適用されるボーン回転の修正差分値だということが分かった。

そういえば先ほど、CC4 でポーズオフセット設定作業を開始したときに画面に表示していたポーズ Motion は T-Pose ではなくて Full Face だった。

顔のアニメーションのテストを直前に行ったので、Motion - Facial Rig - Full Face となっていたが、このモーションでは身体が A-Pose に相当する状態となっており、脚も少し開き気味となっている。

この状態からオフセットを設定していったので、間抜けなことに、A-Pose を T-Pose に修正する作業を気づかないうちに行っていたことになる。A から T にするような骨格の回転差分を設定したのだから、姿勢を T にした場合には、手が上がったり、脚がすぼんだりするのは当たり前だった。

  • モーション Motion - Facial Rig - Full Face の状態のまま、ポーズオフセットで全てリセット Reset All を押したら Aポーズに近い姿勢に戻すことができた
  • モーション Motion - Pose  - T-Pose に変更したら、正しいTポーズに戻った

これでオフセットは除去され、先ほどの作業ミスは取り消された。

デブや人外の人物モデルではないので、別の方法で修正する

VRoid のスケルトンは Tポーズだが、CC3+ 標準と比べると両腕が少し下がっているようだ。Blenderで編集モードにして腕周りの骨の傾きを確認してみると、鎖骨が7.3度上向き、上腕は-13~-14.0度の下向きとなっていた。

今度はプロポーション Proportion を使って回転 Rotate の Y軸の値を修正した。

  1. 左右対称選択 Symmetry Selection のチェックをオン
  2. 鎖骨ダブルクリックして Y軸の数値にプラス7.3
  3. 上腕ダブルクリックして Y軸の数値にマイナス14度

やる前に気付くべきだったが、この方法はオフセット修正と同じぐらい、有害だった。
CC で気を付け姿勢  Motion - Facial Rig - Legs - をさせると、指がズボンにめり込んでしまった。

衣服の合わせ Confort をやっても治らないので、この方法は妥当ではないようだ。

Blender 側で VRM リグの骨格の回転の方を直す

Blender でスキニングする瞬間にメッシュとボーンの位置が概ねあってさえいればよいはずなので、CC での人体モデル制作時に CC3+ 標準モデルをいじくるのはタイミングとして早すぎた。

CC では既定値のままで人体モデルを作り、そのまま出力することにした。
つまり、振り出しに戻ってしまった。