VRoidの3DモデルをFaceRigで動かすためのインポート手順を検証しました。
FaceRigとVRoidでは表情(フェイシャル)の仕様が異なるため、実用レベルまで移植するには相応の手間がかかります。

[検証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)が配置されています。
- 3Dモデル・テクスチャのインポート仕様(ImporterV2_FacerigModelAndTextureDocumentation.pdf)
- 旧仕様の3Dモデル・テクスチャインポート資料(obsolete_FacerigModelAndTextureDocumentation_15.pdf)
- ノーマルマップ生成手順(GenerateNormalMapsForFacerig.pdf)
- Live2Dモデル関連(Live2D_Facerig_Avatars_Documentation.pdf)
サンプル3DデータをFaceRigへインポートする手順
下記リンクから公式のサンプルモデル(yexample)をダウンロードします。
配布フォルダ「yexample」の構成内容は以下のとおりです。
- モデルファイル(.DAE)
- テクスチャファイル(.tga)
- フェイシャルアニメーション(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ソフト上でモデルデータの差し替え準備を進めます。
- 3Dソフトを起動し、事前に検証したFaceRig公式サンプルデータを開きます。
- 同じシーン内にVRoidから出力したVRM形式(.vrm)のモデルデータをインポートします。参考
- マテリアルの参照テクスチャを変換後のTGAファイルへ差し替えます。
- 不要なブレンドシェイプ用モデルおよび作成ヒストリーをすべて削除します。

- VRoidモデルのサイズとボーン位置を、サンプルモデルの大きさに合わせて大まかに調整します。
- サンプルモデルのボーンに対してVRoidのメッシュをスキニング(バインド)します。
- モデルをDAE形式(.DAE)でエクスポートし、検証用フォルダ内の既存データ「yexampleGeometry.DAE」に上書き保存します。
FaceRigへのVRoidモデルデータ(.DAE)のインポート
インポートの手順自体はサンプルモデルの検証時と同様です。
インポート時に注意すべき設定項目をまとめました。
- DAEファイル名は「キャラクター名+Geometry.DAE」の規則で命名してください。Data Folderのパスを指定したあとにマテリアルが自動認識されます。
- Avatar Nameには任意のキャラクター名を入力します。
- マテリアルのShader設定は、不透明パーツには「Opaque(Skin no blended normals)」を指定します。透過パーツ(半透明・アルファあり)も同様のシェーダーを選び、透過設定値を指定してください。

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

- VRoidの階層構造を維持したままでも、適切な設定を行えばFaceRig上での表示が可能です。
- GlobalノードでZ軸を-180度回転させ、スケールを調整します。
- 頭部が原点に位置するようにPositionを移動します。この原点位置がカメラの回転軸になります。
- 腰のボーンと同階層にCameraノードを配置します。スケール設定が小さい場合は原点配置でも問題ありません。
[検証3]VRoidをFaceRigへコンバートする推奨設定
Mayaでの検証を経て安定したモデルデータの設定値です。
- VRMの読み込み後、ブレンドシェイプの設定とオブジェクトを削除し、テクスチャをTGA形式へ差し替えます
- 最上位ノード(ロケーター)のスケールを100から1に変更し、さらにRotate Yを180度に設定して正面を向け、頭の位置を原点に配置します(Translate Y: -14.3)。
この向きに合わせておかないと、FaceRig上で上下のカメラ操作が反転してしまいます。 - VRMの読み込み後、ブレンドシェイプの設定とオブジェクトを削除し、テクスチャをTGA形式へ差し替えます
- 最上位ノード(ロケーター)のスケールを100から1に変更し、さらにRotate Yを180度に設定して正面を向け、頭の位置を原点に配置します(Translate Y: -14.3)。
- この回転と位置調整を行わない場合、FaceRig上で上下のカメラ操作が反転してしまいます。
注意点はわずかに見えますが、スケールやカメラの軸設定を誤ると原因特定が難しいトラブルに直面しやすくなります。
必要最小限のパラメーターのみを正確に変更することが、エラーなく移行するためのポイントです。

Vカツのモデルデータ(.vrm)をFaceRigへコンバートする場合
Vカツから出力されたVRMデータについても、VRoidと同様のフローで対応できます。
VRMデータを3Dソフトで読み込み、FaceRigの仕様に沿ってノード階層やマテリアルを再構成したうえでコンバートを行います。
VRoidや3Dモデルの記事は、ほかにもあります。




3Dモデル(.vrm)をFaceRigにインポートする方法のまとめ
VRoidモデルをFaceRig上で表示させる検証を行いました。
フェイシャルアニメーションを一から再構築する必要があるため、完全な動作を目指すと制作負荷は高めです。
#Vroid #vroidstudio pic.twitter.com/tfFAPERjP5
— すいみん@CGメソッド (@cg_method) 2018年10月19日
ひとまずVRoidの3DモデルをFaceRig空間上へ読み込ませる段階までは成功しました。
今後はボーン位置を再調整し、スキニング(ウェイト付け)を修正したうえで、可動域モーションの作成とマテリアル調整を施すことで、配信等で実用可能なFaceRig用アバターとして仕上げられる見込みです。
VRoidの標準であるブレンドシェイプ方式から、FaceRig推奨のボーン駆動方式へフェイシャル構造を移行する必要があり、表情作成のコストが大きい点には留意が必要です。
コンバート処理に数分かかる点や予期せぬインポートエラーの切り分けを考慮すると、作業にはある程度まとまった時間を確保しておくことをおすすめします。
本記事では、初期段階としてモデルをFaceRig上に表示させるまでの工程をまとめました。
