Vroid Studioから出力したVRMをHoloLens2で閲覧する
今回は、VRoid Studioで作成したアバターをVRM出力し、HoloLens2で閲覧します。
VRoid Studioでは気軽にアバターが作成できるため、VRChatなどで用いられることが多いです。
私もアバターを作成してみたので、試しにHoloLens上で投影し、現実世界に召還してみます。
前提
今回の環境は以下です。
Unity 2019.4.31
MRTK 2.7.3
シーン中でMRTK用のConigureは設定済みとします。
また、VRoid Studioですでにモデルは作成済みとします。
準備
VRoid StudioからVRMファイルを出力する
まずは、VRoid StudioからVRMファイルを取得します。
モデルを開いた後の画面右上真ん中のボタンから、VRMエクスポート
を選択します。
VRMエクスポート
画面ではエクスポート時の設定を行えます。
ポリゴン数は4万ポリゴン数程度なので問題ないと思いますが、念のため「透明メッシュを削除する」にチェックを入れ、マテリアル数と解像度を削減しておきます。
設定が終わったら「エクスポート」ボタンを押します。
ボタンを押すとVRMの設定画面になります。
必須事項である「タイトル」、「作成者」を入力します。
配布する予定がある場合は、ほかの項目も入力します。
すべて設定が終わったら、一番下の「エクスポート」ボタンを押します。
次に表示されるウィンドウで保存場所を指定したら、VRMファイルの出力は完了です。
VRMファイルをUnityに取り込む
ここで、作成したVRMファイルをUnityに取り込みます。
VRMファイルは通常ではUnityに取り込むことができません。
そこで、UnityにVRMファイルを取り込むことを可能にする、UniVRM
を使用します。
このアセットを使用すると、VRMを取り込み、Unityで使用できるPrefab化することができます。
下記リンクからUniVRM-[バージョン名].unitypackage
をダウンロードします。
github.com
ダウンロードしたUnityPackageをUnityのProject Window
にドラッグ&ドロップします。
ドラッグ&ドロップすると、Import Unity Package Window
が表示されるので、下端のImportボタンを押します。
Importが終わると、おすすめの設定をするように指示されるため、Accept All
で実行します。
Console Windowにエラーが出ていますが、Editor上で使用するGlb Importerが複数あるため発生しているものです。
アプリ実行には特に問題ないため、無視して問題ありません。
設定が終わると、上部メニューにVRM0
が追加されます。
Import from VRM 0.x
を選択することでVRMファイルを読み込むことができます。
最初にVRMファイルを読み込み、次にAsstsのどこに出力するか指定します。
Assetsフォルダ配下でフォルダを作成し、その中を出力先にすると散らからずに済みます。
正常に処理が終わると、出力先に指定したフォルダにVRMモデルから生成したPrefabが生成されます。
これで、Unity上でVRMモデルを取り扱えます。
試しにHierarchyにドラッグ&ドロップすると、Scene上に表示されます。
アニメーションを設定する
出力したモデルはそのままではTポーズをしているだけで味気ないので、アニメーションをさせます。
今回は、下記URLのUnity Animationを使用させていただきました。
ダウンロードしたファイルを解凍するとEmoteSet_Free_v130.unitypackage
が入っているため、先ほどと同様にProject Window
にドラッグ&ドロップします。
ドラッグ&ドロップするとImport Unity Pakcage Window
が表示されるので、Importボタンを押します。
正常にImportされると、Assets/Necocoya
フォルダが作成され、その中にAnimation用のファイルが配置されます。
今回は、Emote02/OneLoopDivision
のAnimation Contollerを使用します。
Animation Controllerをダブルクリックすると、Animation Window
が表示されるので、Parameters
タブから使用したいアニメーションを選択します。今回は01_Tefuri3_OneLoop
を選択します。
アニメーションがどのような動きをするかは、animファイルを選択した状態でInspector Window
の下端の再生ボタンから確認できます。
作成したモデルへのAnimation Controllerの適用は、モデルを選択した状態でInspector Window
中のAnimator
コンポーネントにController
を設定することで実現できます。
そのままではモデル表示位置が初期状態の頭の位置と同じなので位置を微調整します。
また、つかんで移動できるように、Object Manipulator
とCapsule Collider
をアタッチすれば準備完了です。
動作確認
無事、HoloLensで現実世界に投影することができました。
拡縮もできます。
VRM/MToon
シェーダもSingle Pass Instancedに対応しているようで、両目でしっかり見えます。
VRoid Studioでアバター作成してHoloLens2で投影してみた。
— napo tech (@SubNapo) January 23, 2022
シンプルだけどそれだけで実在感ある。
かわいい pic.twitter.com/R1MFkH8FHX