VRoidの3DモデルをFaceRigで表示できたら最高じゃないか!と思いついたので挑戦!
後述しておりますがフェイシャルの作り方が違うので、ちゃんとした移植は結構な手間がかかります。
[検証1]公式サンプル3DモデルをFaceRigにインポート
VRoidのキャラクターをFaceRigに取り込む方法を解説していきます。
FaceRigの公式ドキュメントの場所
モデルデータの作成方法(公式ドキュメント)
https://drive.google.com/file/d/0B9A2HzJCWwFWYnN6SFRPbW1mRWM/view
FaceRigを導入後、C:\Program Files (x86)\Steam\steamapps\common\FaceRig\Bin\Tools\Docs
にも公式ドキュメントが格納されています。
- 3Dモデル/テクスチャのインポート関連(ImporterV2_FacerigModelAndTextureDocumentation.pdf)
- 3Dモデル/テクスチャのインポート関連(旧式。obsolete_FacerigModelAndTextureDocumentation_15.pdf)
- ノーマルマップ生成関連(GenerateNormalMapsForFacerig.pdf)
- Live2D関連(3.0も対応。Live2D_Facerig_Avatars_Documentation.pdf)
サンプル3DデータをFaceRigへインポート
下記から公式のサンプルデータをダウンロード。
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)に変換
画像編集ソフトで(.png)から(.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 → 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ソフトで先に検証したサンプルデータを開きます。
- VRoid(.vrm)のデータをインポートします。参考
- テクスチャを変換してTGAに差し替えます
- ブレンドシェイプのモデルとヒストリーをすべて削除します。
- サンプルモデルとだいたい大きさを合わせます。骨も動かして大体の位置にあわせます。
- サンプルモデルの骨とメッシュをバインド。
- 最後にモデルをエクスポート(.DAE)、先の検証用のデータをコピーして上書きします(yexampleGeometry.DAE)
FaceRigへのVroidのモデルデータ(.vrm)のインポート
検証の時と同じ手順です。
注意点を書いておきます。
- DAEのモデルデータはキャラ名+Geometry.DAEとしておくこと。Data Folderのパスを指定した後の処理で自動でマテリアルが表示されます。
- Avatar Nameは好きな名前に変更しておくこと。
- アルファなしのマテリアルはOpaque(Skin no blended normals)、アルファ付きは値は1にすればOK Opaque(Skin no blended normals)に設定
自作データで試した時のメモ
- カメラ位置用のNull(ロケーター)をモデルに入れていないとインポートできない。
- Animations idle1を設定しないとインポートできない。
- マテリアルを設定しないとインポートできない。
- キャラの骨が1個だけだとインポートできない。(おそらく)いくつかの必須の骨を仕込まないとインポートできない。
Vroidモデルデータ(.vrm)のFaceRigへのコンバートテスト
- VRoidの階層データのままでもFaceRigにて表示可能でした。
- GlobalでZ-180回転したり、スケール変えたり調整
- 原点に頭がくるようにPosition調整。そこを起点にカメラが回転する
- 腰骨と同階層にCameraを置く。スケールが小さい場合は原点においてもOK
[検証3]VRoidをFaceRigへコンバートする設定
Mayaでいろいろ検証して、落ち着いたモデルデータの設定。
- VRMを変換後、ブレンドシェイプの設定とオブジェクトは削除。テクスチャはTGAに差し替え
- 最上位のノード(ロケーター)のスケールを100→1に変更、さらにRotateYを180度に(正面が背中を向ける様に)、頭の位置を原点に(Translate Y-14.3)
※この方向にしないとFaceRigの上下のカメラ操作が逆になってしまう。 - VRMを変換後、ブレンドシェイプの設定とオブジェクトは削除。テクスチャはTGAに差し替え
- 最上位のノード(ロケーター)のスケールを100→1に変更、さらにRotateYを180度に(正面が背中を向ける様に)、頭の位置を原点に(Translate Y-14.3)
- ※この方向にしないとFaceRigの上下のカメラ操作が逆になってしまう。
気をつけることはこれだけと思うかもしれないですが、スケールやカメラ方向などを余計な操作をすると沼にハマります。
最低限の箇所だけいじることで、次のフェーズにスムーズに移れます。
Vカツモデルデータ(.vrm)のFaceRigへのコンバート
VRoidと同様の手順です。
VRMのデータを3DソフトでFaceRigの仕様に合わせてセットアップしなおして、コンバートします。
3Dモデル(.vrm)をFaceRigにインポートする方法まとめ
VRoidのモデルをFaceRigに表示させてみました
正直フェイシャル作り直しなので、ちゃんと作ろうとすると大変です…。#Vroid #vroidstudio pic.twitter.com/tfFAPERjP5— すいみん@CGメソッド (@cg_method) 2018年10月19日
なんとか3DモデルをFaceRigに入れることができました。
あとは骨の位置を修正し、ウェイトをちゃんとつけて、可動範囲のアニメーションを作成し、マテリアルを調整すれば実用に耐えうるFaceRigモデルができると思います。
ブレンドシェイプベースからボーンベースのフェイシャルに変更しないといけないので、作り直しのコストが非常に大きいです。
あとはコンバート処理が時間が数分かかるのとエラーを潰すのが大変なので、もうすこしまとまった時間が必要だと思います。
今回はざっくり表示することろまでにとどめておきます。