おことわり
この記事の内容は2018/10/19時点での執筆者の個人的な検証の記録です。今後状況が変わるかも知れないのであまり参考にしないほうがいいかも知れません。
→2018/10/20ボーンの件について一部追記しました。VRM_IMPORTER 0.3で追加された機能に気づかず書いてました…。

 

VRoidからblenderにインポートするときの問題。

あいす氏のVRM IMPORTERというアドオンを使って、VRoidのモデルをblenderに取り込んでいますが、メッシュもボーンもXミラーが効かないという問題があり、頭を抱えました。

DiscordのVRoid学園内で頭を悩ませていたら、あいす氏からコンタクトがありました。(この場でお礼を申し上げます、本当に、本当にありがとうございます!)、アドオンのアプデが行われたものの完全解決には至っておりません。

2018/10/20 状況が変わったので、訂正線を引きました。

ボーン対象化するにあたり試した方法

その1(いったんすべてのボーン選択して対象化)

  1. ボーンを選択し、「編集モード」に入る
  2. 「アーマチュア」→「オートリネーム 左/右」で一旦左右の語尾にLR入れる
  3. 「アーマチュア」→「対象化」で対象化
  4. 左右対称になったボーンが新たに増えるが、一旦Hで隠す
  5. 残ったボーンをDeleteで消す
  6. 隠していたボーンをAlt+Hで再表示
  7. 左の「オプション」タブを選択し、「X軸ミラー」にチェック
  8. 適当なボーンを動かして、左右同時に動いたらひとまず成功

→× これはうまくいかなかったです。

その2(片方のボーン消して複製して対象化)

  1. ボーンを選択し、「編集モード」に入る
  2. 「アーマチュア」→「オートリネーム 左/右」で一旦左右の語尾にLR入れる
  3. 右手側のボーンを消す。
  4. 左側のボーンを選択(spineとかheadなど身体の中央のは選択しない)
  5. 「アーマチュア」→「対象化」で対象化
  6. 左の「オプション」タブを選択し、「X軸ミラー」にチェック
  7. 適当なボーンを動かして、左右同時に動いたらひとまず成功
  8. リネーム作業。

左側のボーン→後ろの「.L」を取る
右側のボーン→J_Bip_L_場所の名前.R→「_L」を「_R」に、最後の「.R」を取る
中央付近のボーン→後ろの「.R」を取る

→△ Xミラー効くっちゃ効く。しかし、中央付近以外で.L.Rを取ってしまうとblender上でミラーが効かなくなる。
というかblenderは「ボーン名+.Lか.R」じゃないとそもそもXミラー効かない感じ…?

その3(妥協の方法)

Xミラー化は一旦諦め、ボーン増やすときだけでも対象効くようにする。
ボーン伸ばすときにE→左下の押出オプションの「分岐」にチェック。

→△ 増やした分はミラー効く。他は何もしてないのでXミラー効きません。

その4(2018/10/20追記。VRM_IMPORTER 0.3で追加された機能を使用)

試した環境

VRM_IMPORTER 0.3で追加された機能「convert Vroid_bones」という機能を使用します。

オブジェクトモードでアーマチュアを選択し、左側の「VRM HELPER」タブから「convert Vroid_bones」をクリックします。

これで、アーマチュア(ボーン)のXミラーが効くようになりました。

編集モードで動かしてみる
ウェイトもちゃんと生きています。

→◎ ウェイトも生きて、ボーンの編集がとてもやりやすくなりました。ボーン名や各オブジェクトの頂点グループの命名法則がblender内ルールに則ったものに変更されますが、UnityにHumanoidモデルとして取り込む際に割当し直せるので大きな問題にはならないと思われます。VRMとしての出力やVRChat用データに変換もUnity通して設定を行うので問題ないかと。

また、ボーンの追加もミラーリングされるので、これにより髪の毛やスカートといった揺れものボーンも追加しやすくなったかと。

ボーンの結論

おそらく、ボーンやウェイトは自分で入れ直したほうが速いと思う。(純粋なVRoidモデルを名乗るならともかく)
MMDと違って、ボーン名が規則にのっとって無くてもUnityで取り込む時点でボーンの割当で各パーツに割当できるし。

その4の方法が最も最適解かと思われます。今後講座を執筆するときは、この方法を紹介したいと考えております。

メッシュの対象化するにあたり試した方法(VRoid学園で書いたものの転載)

その1(モデル重心を移動する方法)

  1. まずblenderにVRM Inporter使ってVRoidのVRM読み込ませる。 (最新版は2と3の作業いらなくなりました、あいす氏に感謝いたします。)
  2. キャラが右向いちゃってるのでキャラのオブジェクトとボーン全部選択して「R-Z90」とキーを押してEnter。
  3. 「Ctrl+A」で回転をクリックして回転を適用させる。
  4. 顔のオブジェクトだけ選択し、「オブジェクト」→「トランスフォーム」→「原点を重心に移動(サーフェス)」をクリック。
  5. 編集モードに入り、「オプション」タブの「Xミラー」にチェック。
  6. 適当な点を動かして左右対称に動いたら成功。

→×。全く動かない。

その2(あいす氏のプラグイン機能で対象化)

試した環境

一応、方法としてはこんな感じです。

  1. オブジェクトを選択し、中央付近の頂点を一つ選択。
  2. 「VRM HELPER」タブから「float error fix」をクリック。

→△?あいす氏のblenderプラグイン「VRM IMPORTER」で微妙にずれてるメッシュを対象化する機能が追加されましたが、うちの環境では顔全体や腕(袖含む)が完全に対象化できていない模様です。 ただ、制服のセーターと襟、スカート、下半身全て、後頭部と靴は対象化できています。

その3(blender標準の対象にスナップ機能)

対象化したいメッシュを選択してから、Wキー→メッシュメニュー>対称にスナップ で、ほぼ全てのメッシュにXミラー効くようになります。
シェイプキーも壊れません。
→○ ただし、シェイプキー入っているのでBasisだけでなく目閉じモーフ以外のシェイプキーにも同様の作業しないといけないかも?身体はスカートと髪以外ほぼ解決。既存のモーフのうち目閉じ系のシェイプキーはちょっといじりづらい(対象化しようがない)ですが、新たに表情を自分で作りたいときにだいぶやりやすくなったと思います。何ならもとのシェイプキー一部消して一から笑顔とかニヤリ顔作ってもいいかも。

メッシュの結論

その3の方法が最適解に近いかも。ボーンは最悪mixamoとかで入れ直しできるし、メッシュが解決できれば講座作れそうです。

2018/10/20 ボーンの方も解決の見通しが立ちました。

まとめ(2018/10/20に新たに追加)

結論から言うと、ボーンはVRM_IMPORTER 0.3の新機能「convert Vroid_bones」を利用して修正、メッシュはblender標準の対象にスナップ機能を使用する方法が最適解かなと思いました。

これで、ようやくVRoid改変講座を書く見通しが立ちました!既存のモデルに全く違うお洋服を着せるか…はたまたVRoidで男顔にした上で、blenderで身体も男の子に魔改造しちゃう?想像が広がりますね~。

栗絵マナのモデルを作ったときや、以前髪の毛ボーン揺らす記事書いた時は情報も環境も満足しきれなかったこともあり、かなりゴリ押しして作っていました。マナなんかもう、メッシュの半分消してボーンとシェイプキー一から作り直しでしたからね~(そのせいでVRoid純正モデルとかなり仕様が違います)

VRoid studioが発表されたときからアップデートがかなりの頻度で行われ、VRMを利用するソフトウェアもかなり増えたように思われます。VRMを直接使うわけではないですが、VRMをVRChatに持ち込むツールも開発されたりと利用用途がどんどん増えて楽しいです。
先日VRoid studioのアプデで外部テクスチャが使えるようになって、クリスタで色変えが行えるようなり大変捗ります。(今までもUnityに一旦読み込めばできないことは無いけどなんか工程がシンプルではなかったので…)リムライト調整も実装されて個人的に嬉しいです。

記事内で登場したモデルは、現在VRoid学園のワールドのアバターペデスタル用に製作中の、桜井こはるちゃんです。(通常配布の予定は今の所ありません)
私はVRoid学園内で(なぜか)教師として専用チャンネルもっているので、「VRoidの世界をもっと知りたい!」と言う人は是非学園の門を叩いてみてください。(※要discordアカウント)

VRoid内機能でいろいろ工夫する方向性の先生や、私のように「ゴリゴリblenderで改造マン」な先生など様々な方向性をもった先生や生徒さんが沢山居ます。またソフト開発者の方もいらっしゃるのでVRM対応ソフトで悩みがある時、もしかしたら助言をいただけるかも知れません。(VRM IMPORTER開発者のあいす氏からの助言もここで受けました。)