VRoidをUE4に持っていく自己流メモ

UE4
この記事は最新版に描き直し中です

概要

Vroid Studioにて作成したキャラクターをUE4に持っていく方法の自分用メモです。
自己流ですので、「もっとこうしたらいいよ!」というのがありましたら是非教えてください!
(一応プログラマなのでDCCツールは専門外ということで…)

要点としては、

  • Unityを使用せずBlender経由でFBXに出力する。
  • Maya(Maya LT)を経由してもブレンドシェイプ(表情)のデータを消失させない。

という感じです。

環境

  • VRoid Studio v0.5.4-p1
  • Unreal Engine 4.21.2
  • Blender 2.79b
  • Maya LT 2017

手順

1. VRoidStudioからVRMデータをエクスポートする

今回はテンプレートの「千駄ヶ谷 渋」ちゃんを使って説明していきます。

まずはVRoidStudioからモデルデータをVRM形式でエクスポートします。

  1. 上部右端の[撮影・エクスポート]を選択
  2. 画面左の[エクスポート]を選択
  3. 画面右の[エクスポート]を選択
  4. VRM設定はそのまま[OK]を選択

これでVRM形式で保存されます。

2. BlenderでVRMをFBX形式にコンバートする

Blenderのアドオンを使用してVRMファイルをインポートします。

1. VRM_IMPORTERアドオンを導入する

下記リンク先よりVRM_IMPORTER_FOR_BLENDERをダウンロードする。
GitHub – VRM importer for blender2.79
GitHub – VRM importer for blender2.80

ダウンロードしたZIPファイルを解凍せずに、ファイル名を VRM_IMPORTER.zip にリネームする。

Blenderに戻って、ファイル -> ユーザー設定 から アドオンのタブを選択し、[ファイルからアドオンをインストール]を選択し、リネームしたZIPファイルをインストールする。

画面左のサポートレベル欄から[テスト中]を選択すると Import-Export:VRM_IMPORTER が表示されるので、チェックボックスにチェックをいれて[ユーザー設定の保存]を選択。

これでBlenderにVRMファイルをインポートできるようになります。
一度アドオンの設定をすれば以後はアドオンの更新がない限りは変更の必要はありません。

2. VRMファイルをインポートする

ファイル -> インポート -> VRM を選択し、先ほどVRoid StudioからエクスポートしたVRMファイルをインポートします。

モデルがインポートされました。

BlenderにVRMファイルをインポートした時点で、VRMファイルのあったフォルダにテクスチャデータが書き出されていますので確認しておいてください。

最低限VRoidのキャラクターをUE4に持っていきたいだけならば、このままBlenderからFBXエクスポートしてUE4にインポートすれば持っていくことが可能です。その際にはUE4インポート設定にて [Import Morph Targets] にチェックを忘れないようにしてください。

ここからは、私のVRoidデータの調整方法を自分用メモとして記載します。データ名や並び方を操作しやすいように修正したり、Mayaで編集するための手順など、完全に私の自己流ですので必ずこうしなければいけないというわけではありません…!

3. データを整理する

Blenderではブレンドシェイプのためのモーフターゲットのデータを整理していきます。

アウトライナから Face.baked を選択し、オブジェクトデータ(逆三角形のマーク)を選択、シェイプキーの中にあるブレンドシェイプ情報を修正していきます。

私の場合は、いつも下記表のようにブレンドシェイプの順番の並び替えをします。(手動めんどい!)
この順番はVRoid Studio上での表記順にならっており、後にMaya上でMELで名称を一括修正する際に並び順が重要になります。
なお、一番上の Basis を削除したり並べ替えないように注意してください。Basisは一番上のまま!

名称VRoidStudioでの名称
Basis
Face.M_F00_000_Fcl_ALL_Fun基本セット楽しい
Face.M_F00_000_Fcl_ALL_Sorrow基本セット悲しい
Face.M_F00_000_Fcl_ALL_Angry基本セット怒り
Face.M_F00_000_Fcl_ALL_Joy基本セット喜び
Face.M_F00_000_Fcl_ALL_Surprised基本セット驚き
Face.M_F00_000_Fcl_BRW_Fun楽しい
Face.M_F00_000_Fcl_BRW_Sorrow悲しい
Face.M_F00_000_Fcl_BRW_Angry怒り
Face.M_F00_000_Fcl_BRW_Joy喜び
Face.M_F00_000_Fcl_BRW_Surprised驚き
Face.M_F00_000_Fcl_EYE_Close閉じ
Face.M_F00_000_Fcl_EYE_Close_R閉じ(右)
Face.M_F00_000_Fcl_EYE_Close_L閉じ(左)
Face.M_F00_000_Fcl_EYE_Joy喜び閉じ
Face.M_F00_000_Fcl_EYE_Joy_R喜び閉じ(右)
Face.M_F00_000_Fcl_EYE_Joy_L喜び閉じ(左)
Face.M_F00_000_Fcl_EYE_Angry怒り
Face.M_F00_000_Fcl_EYE_Sorrow悲しい
Face.M_F00_000_Fcl_EYE_Surprised驚き
Face.M_F00_000_Fcl_MTH_Neutral通常
Face.M_F00_000_Fcl_MTH_Up上げる
Face.M_F00_000_Fcl_MTH_Down下げる
Face.M_F00_000_Fcl_MTH_A
Face.M_F00_000_Fcl_MTH_I
Face.M_F00_000_Fcl_MTH_U
Face.M_F00_000_Fcl_MTH_E
Face.M_F00_000_Fcl_MTH_O
Face.M_F00_000_Fcl_MTH_Angry怒り
Face.M_F00_000_Fcl_MTH_Fun楽しい
Face.M_F00_000_Fcl_MTH_Joy喜び
Face.M_F00_000_Fcl_MTH_Sorrow悲しい
Face.M_F00_000_Fcl_MTH_Surprised驚き
Face.M_F00_000_Fcl_HA_Fung1牙1
Face.M_F00_000_Fcl_HA_Fung1_Up牙1(上顎)
Face.M_F00_000_Fcl_HA_Fung1_Low牙1(下顎)
Face.M_F00_000_Fcl_HA_Fung2牙2
Face.M_F00_000_Fcl_HA_Fung2_Up牙2(上顎)
Face.M_F00_000_Fcl_HA_Fung2_Low牙2(下顎)
EyeExtra.M_F00_000_EyeExtra_Onエクストラ
Face.M_F00_000_Fcl_EYE_Natural通常
Face.M_F00_000_Fcl_EYE_Extra狐目

4. FBXファイルにエクスポートする

ファイル -> エクスポート -> FBX を選択してモデルをFBX形式でエクスポートします。
エクスポート時のオプション設定はデフォルトのままで問題ありません。
(この後Mayaを経由する前提で書いています。Mayaを経由せずにUE4に持っていく場合は、不要なデータを含まないようにオプションを設定するのがよいと思います)

3. Maya LTでデータを調整する

「Blenderでモデルデータ修正は完結するからMayaは使わん!」という方はここからは不要です。
後述しますがMayaを経由してUE4にインポートするとブレンドシェイプが消失する症状がありますので、その回避策を記述しています。とはいえ自分はMayaに疎いので間違っている箇所があったら優しく教えてください…。

1. Blenderから出力されたFBXファイルをMayaにインポートする

  1. 作業用のプロジェクトを作成しておく
  2. 設定を確認する
    プリファレンス-> 設定 -> リニア が センチメートル になっていることを確認。

    グリッドオプションにて [長さと幅] を 120、[グリッドラインの間隔] を 50 に変更。
  3. FBXファイルをMayaにインポートする。

    なんかワーニングが出てもよくわからないので放置!いろいろやばそうですが一応インポートできました。

2. 一旦FBX出力して再度インポートする

Mayaにインポートしたモデルデータは、その後FBXエクスポートしたものをUE4に取り込むと表情のブレンドシェイプデータが破綻してしまうという症状が発生します。

この症状を修復するために、以下の手順を踏みます。

  1. モデルデータの3つのメッシュをグループ化する
  2. 一旦FBXエクスポートする
    エクスポート時は [ゲームエクスポータ] がおすすめ。

    オプションはデフォルトのままでOK。
  3. エクスポートしたFBXファイルを再度Mayaにインポートする
    新規シーンで開始してからインポートすること。(最初にFBXを読み込んだ際のマテリアルが残っていて重複してしまうため)

このように、一度メッシュをグループ化してFBXエクスポートしたものを再度インポートすることで、以後エクスポートしたFBXは、UE4にインポートしてもブレンドシェイプのモーフターゲットが破綻しないようになります。

一旦まとめ

Mayaでのデータ整理も書きたかったのですが記事が長くなってきたので一旦ここまでとします。需要があれば他にも VRoid x UE4 の記事を書いていこうと思います。(iPhoneXでフェイシャルとかPerceptionNeuronでモーキャプとかAllrightRigでアニメーション制作とか…)

それと、VRoidはまだまだ更新がされていますので、この記事の方法が古くなる可能性があります。出来るだけ更新を追うようにしますが、不都合がありましてもご容赦ください。