Amazonで商品を見るセール会場へ

【VRoid】3Dモデル(.vrm)をFaceRigにインポートする方法

vroid-facerig-import

VRoidの3DモデルをFaceRigで動かすためのインポート手順を検証しました。

FaceRigとVRoidでは表情(フェイシャル)の仕様が異なるため、実用レベルまで移植するには相応の手間がかかります。

VRoidの3DモデルをFaceRigにインポートして動かす検証の様子。
目次

[検証1]公式サンプル3DモデルをFaceRigにインポート

まずは動作確認として、公式のサンプルデータをFaceRigへ取り込む手順を確認します。

FaceRigの公式ドキュメントの格納場所

モデルデータの作成仕様は公式ドキュメントで確認できます。

https://drive.google.com/file/d/0B9A2HzJCWwFWYnN6SFRPbW1mRWM/view

FaceRigのインストール後は、ローカルのC:\Program Files (x86)\Steam\steamapps\common\FaceRig\Bin\Tools\Docs配下にも公式ドキュメント(PDF)が配置されています。

  1. 3Dモデル・テクスチャのインポート仕様(ImporterV2_FacerigModelAndTextureDocumentation.pdf)
  2. 旧仕様の3Dモデル・テクスチャインポート資料(obsolete_FacerigModelAndTextureDocumentation_15.pdf)
  3. ノーマルマップ生成手順(GenerateNormalMapsForFacerig.pdf)
  4. Live2Dモデル関連(Live2D_Facerig_Avatars_Documentation.pdf)

サンプル3DデータをFaceRigへインポートする手順

下記リンクから公式のサンプルモデル(yexample)をダウンロードします。

配布フォルダ「yexample」の構成内容は以下のとおりです。

  1. モデルファイル(.DAE)
  2. テクスチャファイル(.tga)
  3. フェイシャルアニメーション(animフォルダ内のデータ)

上記のデータ一式が含まれています。

モデルファイルやテクスチャファイルなど、公式サンプルデータに含まれるファイル一式を示す画面。

C:\Program Files (x86)\Steam\steamapps\common\FaceRig\Bin\Tools\ImportWizardNew\ImportWizard.exeを実行し、「Model Importer」を選択します。

インポートウィザードを実行してモデルインポーターを選択する手順を示す画面。

FaceRig Model Importerのウィンドウが開いたら、設定を変更せずに[Import]をクリックします。

モデルインポーターのウィンドウで、設定を変更せずにインポートボタンをクリックする手順を示す画面。

バッチ処理による変換が開始されます。

完了まで数分待機してください。

C:\Program Files (x86)\Steam\steamapps\common\FaceRig\Mod\VP\PC_Common\Objects\avatar\yexampleに変換後データが生成されたことを確認し、FaceRigを起動します。

変換後のデータが指定フォルダに生成されたことを確認する様子を示す画面。

アバターギャラリーから「Workshop and Custom Avatars」を開き、「?」アイコンのサムネイルを選択します。

初回読み込みに少し時間がかかりますが、ロード完了後にサンプルモデル(女性アバター)が表示されます。

[検証2]VRoidのモデルデータ(.vrm)をFaceRigにインポートする方法

新規の自作モデルを一からインポートすると設定エラーが多発したため、今回は動作確認済みのサンプルデータをベースにモデルを差し替える手法で検証しました。

テクスチャをTGA形式に変換

画像編集ソフトを使い、VRoidから出力されたPNGテクスチャをTGA(.tga)形式へ変換します。

変換と同時にファイル名も命名規則に合わせて整理します。

末尾の識別子は「_d」がディフューズ(カラー)、「_b」がノーマル(法線)、「_s」がスペキュラー(光沢)を表します。

最低限「_d」のみでも動作しますが、ここで規則正しくリネームしておくとインポート時の割り当て作業を効率化できます。

Targa(24bit・不透明テクスチャ)

F00_000_Body_00.png → neko_body_d.tga

F00_000_Body_00_nml.png → neko_body_b.tga

F00_000_EyeWhite_00.png → neko_eyewhite_d.tga

F00_000_Face_00.nml.png → neko_face_b.tga

F00_000_Face_00.png → neko_face_d.tga

F00_000_FaceMouth_00.png → neko_facemouth_d.tga

F00_000_Hair_00_nml.png → neko_hair_b.tga

F00_000_Hair_00_spe.png → neko_hair_s.tga

F00_000_HairBack_00_nml.png → neko_hairback_b.tga

F00_001_Accessory_01.png → neko_accessory_d.tga

F00_001_Bottoms_01.png → neko_bottoms_d.tga

F00_001_Shoes_01.png → neko_shoes_d.tga

F00_001_Tops_01.png → neko_tops_d.tga

Targa(32bit・透過チャンネル付きテクスチャ)

F00_000_EyeExtra_01.png → neko_eyeextra_d.tga

F00_000_EyeHighlight_00.png → neko_eyehighlight_d.tga

F00_000_EyeIris_00.png → neko_eyeiris_d.tga

F00_000_FaceBrow_00.png → neko_facebrow_d.tga

F00_000_FaceEyelash_00.png → neko_faceeyelash_d.tga

F00_000_FaceEyeline_00.png → neko_faceeyeline_d.tga

F00_000_Hair_00.png → neko_hair_d.tga

F00_000_HairBack_00.png → neko_hairback_d.tga

Photoshopでアルファチャンネルを作成する方法

フォトショップの演算機能などを使い、テクスチャ画像のアルファチャンネルを作成する手順を示す画面。

手動で選択範囲を作成してアルファチャンネル化することも可能です。

メニューの「イメージ」>「演算」から不透明・透明部分の情報を抽出して指定すると、効率的かつ正確にアルファチャンネルを生成できます。

VRoidモデルのセットアップ手順

3Dソフト上でモデルデータの差し替え準備を進めます。

  1. 3Dソフトを起動し、事前に検証したFaceRig公式サンプルデータを開きます。
  2. 同じシーン内にVRoidから出力したVRM形式(.vrm)のモデルデータをインポートします。参考
  3. マテリアルの参照テクスチャを変換後のTGAファイルへ差し替えます。
  4. 不要なブレンドシェイプ用モデルおよび作成ヒストリーをすべて削除します。
マテリアルのテクスチャ差し替えや不要なヒストリーの削除など、3Dソフト上でのデータセットアップ手順を示す画面。
  1. VRoidモデルのサイズとボーン位置を、サンプルモデルの大きさに合わせて大まかに調整します。
  2. サンプルモデルのボーンに対してVRoidのメッシュをスキニング(バインド)します。
  3. モデルをDAE形式(.DAE)でエクスポートし、検証用フォルダ内の既存データ「yexampleGeometry.DAE」に上書き保存します。

FaceRigへのVRoidモデルデータ(.DAE)のインポート

インポートの手順自体はサンプルモデルの検証時と同様です。

インポート時に注意すべき設定項目をまとめました。

  1. DAEファイル名は「キャラクター名+Geometry.DAE」の規則で命名してください。Data Folderのパスを指定したあとにマテリアルが自動認識されます。
  2. Avatar Nameには任意のキャラクター名を入力します。
  3. マテリアルのShader設定は、不透明パーツには「Opaque(Skin no blended normals)」を指定します。透過パーツ(半透明・アルファあり)も同様のシェーダーを選び、透過設定値を指定してください。
アバター名の入力や、不透明・透過パーツに応じたマテリアルのシェーダー設定を行う画面。

自作データ構築時のエラー対策メモ

  1. カメラ位置制御用のNull(ロケーター)がモデル内に配置されていないとインポートできません。
  2. アニメーション「idle1(待機モーション)」が設定されていないとインポートエラーになります。
  3. 各メッシュにマテリアルが割り当てられていないとインポートできません。
  4. ボーンが単一のみの構成では失敗します。FaceRig側が要求する必須ボーン構造を満たす必要があります。

VRoidモデル(.vrm)のFaceRig向け調整ポイント

フェイスリグ側でモデルを表示・調整するためのノード階層や設定画面。
  1. VRoidの階層構造を維持したままでも、適切な設定を行えばFaceRig上での表示が可能です。
  2. GlobalノードでZ軸を-180度回転させ、スケールを調整します。
  3. 頭部が原点に位置するようにPositionを移動します。この原点位置がカメラの回転軸になります。
  4. 腰のボーンと同階層にCameraノードを配置します。スケール設定が小さい場合は原点配置でも問題ありません。

[検証3]VRoidをFaceRigへコンバートする推奨設定

Mayaでの検証を経て安定したモデルデータの設定値です。

  1. VRMの読み込み後、ブレンドシェイプの設定とオブジェクトを削除し、テクスチャをTGA形式へ差し替えます
  2. 最上位ノード(ロケーター)のスケールを100から1に変更し、さらにRotate Yを180度に設定して正面を向け、頭の位置を原点に配置します(Translate Y: -14.3)。
    この向きに合わせておかないと、FaceRig上で上下のカメラ操作が反転してしまいます。
  3. VRMの読み込み後、ブレンドシェイプの設定とオブジェクトを削除し、テクスチャをTGA形式へ差し替えます
  4. 最上位ノード(ロケーター)のスケールを100から1に変更し、さらにRotate Yを180度に設定して正面を向け、頭の位置を原点に配置します(Translate Y: -14.3)。
  5. この回転と位置調整を行わない場合、FaceRig上で上下のカメラ操作が反転してしまいます。

注意点はわずかに見えますが、スケールやカメラの軸設定を誤ると原因特定が難しいトラブルに直面しやすくなります。

必要最小限のパラメーターのみを正確に変更することが、エラーなく移行するためのポイントです。

インポートしたVRoidモデルがFaceRig上で動作している様子を示すアニメーション。

Vカツのモデルデータ(.vrm)をFaceRigへコンバートする場合

Vカツから出力されたVRMデータについても、VRoidと同様のフローで対応できます。

VRMデータを3Dソフトで読み込み、FaceRigの仕様に沿ってノード階層やマテリアルを再構成したうえでコンバートを行います。

VRoidや3Dモデルの記事は、ほかにもあります。

3Dモデル(.vrm)をFaceRigにインポートする方法のまとめ

ひとまずVRoidの3DモデルをFaceRig空間上へ読み込ませる段階までは成功しました。

今後はボーン位置を再調整し、スキニング(ウェイト付け)を修正したうえで、可動域モーションの作成とマテリアル調整を施すことで、配信等で実用可能なFaceRig用アバターとして仕上げられる見込みです。

VRoidの標準であるブレンドシェイプ方式から、FaceRig推奨のボーン駆動方式へフェイシャル構造を移行する必要があり、表情作成のコストが大きい点には留意が必要です。

コンバート処理に数分かかる点や予期せぬインポートエラーの切り分けを考慮すると、作業にはある程度まとまった時間を確保しておくことをおすすめします。

本記事では、初期段階としてモデルをFaceRig上に表示させるまでの工程をまとめました。

次に学ぶ・作業環境を選ぶ

学習を続けたい方や、作業環境を整えたい方は、目的に合うガイドをご覧ください。

VTuberのおすすめ書籍

配信PCの選び方

配信機材の優先度

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次