Unity上でVRMモデルを動かす
モデルをVRM形式にエクスポート
以前の記事でモデルを作るところまではできたので、今度はモデルをUnityに取り込み、動かしてみるところまで進めていきます。
まず、VroidStudioの 撮影・エクスポート > エクスポートを選択。タイトル欄や作者欄を入力し、「OK」ボタン押下すると、指定したフォルダに [タイトル].vrm の形式でモデルが出力される。
これをUnityに取り込んでいく。
UnityにUniVRMをインポート
Unity上でVRM形式のファイルを扱うには、「UniVRM」というパッケージが必要になる。githubから、UniVRMのunitypackageをダウンロードする。
Unityで新規プロジェクトを作成し、メニューバーから Assets > Import Package > Custom package と進み、先ほどダウンロードしたunitypackageを選択。unitypackage内のすべてのファイルにチェックが入っていることを確認し、「import」ボタン押下プロジェクトウィンドウを見ると、Assets配下に「VRM」のディレクトリが生成されていることが確認できるはず。
Unityにモデルをインポート
VroidStudioからエクスポートしたVRMファイルを、プロジェクトウィンドウ上のAssetsディレクトリにドラッグアンドドロップ。少し待つと、VRMのファイル名に関連するいくつかのファイルがAssetsディレクトリ上に生成される。VRM本体や、マテリアルファイル、テクスチャファイルなど。
その中に、「[タイトル].prefab」が存在する。このprefabをヒエラルキーウィンドウにドラッグアンドドロップすると、シーンウィンドウにモデルが出現する。
これで、UnityにVRM形式のモデルを取り込むことができた。
アニメーションをつけて動かす
このままだとTポーズのモデルが佇むだけなので、何かアニメーションをつけて動かしてみよう。何を使用してもいいのだが、私は下図のフリーパッケージを使用することが多い。
Assets Storeから「Idle MoCap」をインポートすると、Assets配下に同名のディレクトリが生成される。
ヒエラルキーウィンドウでモデルのprefabを選択すると、インスペクターウィンドウにモデルに付与されているさまざまな属性が表示される。その中の「Animetor」を見ると、ContlloerがNoneになっているはず。
Contlloerは、プロジェクトウィンドウ上の任意の箇所で右クリックし、Create > Animator Controller を選択し、空のContlloerを作成する。Contlloerをダブルクリックすると、Animatorウィンドウが開く。
Animatorウィンドウの網掛けになっている部分で右クリック、Create State > Emptyを選択。網掛け部分に新たに追加されたオレンジ色のStateを選択し、インスペクターウィンドウを開く。
Motion欄の右側にある丸いボタンを押下すると、先ほどインポートした「Idle MoCap」に含まれているモーションが一覧表示される。お好みのモーションを選択する。今回は「Nod_Straight」に。
最後に、もう一度モデルのインスペクターウィンドウを表示し、AnimatorのContlloerに先ほど作成したAnimator Contlloerを設定する。
あとはカメラの向き等を調整し、再生すると、モデルが指定したモーションで動く。
以上。