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

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

VRM スケルトンリグを生成して位置合わせしなくても、リターゲットできたわ

いままで一所懸命に手動でジョイントの位置合わせをしていたが、そもそも VRM アドオンで既存のボーンをマッピングしてリターゲットすることができるようだ。

VRM 必須ボーン欄に既存スケルトンリグのボーン名を指定すれば済む

Character Creator 4 (CC4) の標準スケルトンリグ CC3+ Base (AccuRIG) のボーンは VRM 必須ボーンよりも複雑で数が多いので、マッピングすることができる。

  • Head 欄には、既存スケルトンリグの頭部ボーン名 CC_Base_Head を入力
  • Neck/Chest/Spine/Hips にも位置が近いボーン名をそれぞれ入力
  • その下に視線 Eye、手指なども設定できるので、出来る限り入力

VRM : VRM 必須ボーンに既存のボーンを指定できる

新たな VRMケルトンリグを生成して位置合わせする必要はない

これまでは

  • VRM アドオンを使って、新たな VRMケルトンリグを生成
  • VRoid Hub にある VRM アバターサンプルの骨格だけを抜き取り流用

するなどして、新規に VRMケルトンリグを用意してから、

  • 既存ボーンを重ね合わせ表示させて、手動でジョイントの位置合わせ
  • その位置合わせを自動で行う BlenderPython スクリプトを開発

などの方法で、ジョイントの位置合わせを行っていたため毎回1時間位はかかっていた。

既存ボーンを重ね合わせ表示してから位置合わせを行う

そのようなことをする必要はなかったことに今更気づいた次第だ。

Blender での自動スキニングで必ず発生してしまうトラブルも起きない

新たに別のスケルトンリグ(アーマチュア)を作成した場合には、Blender でスキニング(自動ウェイト)を行う必要があり、これがいつもトラブルを惹起していた。

VRMケルトンリグと既存モデルのメッシュは整合していない

不安定な結果になりがちな Blender の自動ウェイトでの再スキニングが必要なくなり、メッシュの修正もほとんど不要となる。

メッシュだけでなくスケルトンリグも流用するため、作業量が激減する

Character Creator 4 (CC4) からの出力の場合、Blender Auto Setup Add-ons でのマテリアル再構築と修正だけでよく、10分くらいで VRM 出力準備は整った。

これまで半日以上かかった作業が 20 分で終わったので、たいへん生産性が向上した。
いままで数カ月、気づかなかった自分の愚かさに呆れている。

流用しつつも必要ならばボーン(ジョイント)を足すこともできる

Character Creator の CC3 Base+ (AccuRIG) を利用している場合には、副次ジョイント secondary joint を足す必要はあまりないだろうが、

  • VRM 標準モデルとは配置がだいぶ異なっている左右の視線ボーン
  • 揺れモノのボーン spring bone 

は足すかもしれない。

たまにエラーが出る場合はあったが、簡単にリターゲットできた

アドオン VRM Add-on for Blender で流用したいボーンをマッピングする。

  • VRM 1.0 のモードでは自動的にマッピングするボタンがある
    時々、なぜだか利かないこともあるが、利いた場合はとても省力化できる。
  • VRM 0.0 のモードでは自動的にマッピングはできないがマッピング設定を保存できる。
    VRM 1.0 の場合とは違って自動的にマッピングができない(?)

VRM : ボーンのマッピングを行える

Character Creator 最高品質モデル CC3+ Base では成功した

最高品質の CC3+ Base 形式のモデルについては、エラーもなく VRM アバターを出力できた。

Character Creator の actorBUILD モデルではエラーが出たが復旧できた

頭髪のボーンが重複している旨のエラーで当初は VRM 出力を阻止された

惜しいことに actorBUILD 形式のモデルでは、以下のエラーに阻止されて出力できなかった。

glTFノード要素(メッシュ、ボーン)の名前は重複してはいけません。「Classic_short」が重複しています。

アウトライナー : アーマチュア - 削除 - ボーン で重複ボーンを削除した

編集 Eidt モードに切り替え、古典的な短髪 Classic_short の重複ボーンと思われる .001 を削除したがエラーは解消しなかった。

重複ボーンを削除して、スキンウェイトを割り振りなおせば復旧した

その後、そもそも頭髪にボーンは必要ないのではないか?と思って、古典的な短髪 Classic_short の .001 が無い方も削除したら、ついにエラーは出なくなった。

しかし頭髪ボーンを削除しただけではダメで、頭部ボーンの子になっていた頭髪ボーンを削除したため、頭髪がスケルトンアニメーションの対象から外れた。

VRM : ボーンが無くなったため、頭髪が追従しなくなった

対策は簡単で、古典的な短髪メッシュ Classic_short を編集 Edit モードで開き、頂点グループの名称を Classic_short から CC_Base_Head に書き換えるだけ。

オブジェクトデータプロパティ > 頂点グループ の名称を変更

これで一応、頭髪が追従するようになった。

VRM : 頭髪が追従するように復旧した