見出し画像

Unity x UniVRM(v0.121.0)でVRMインポートしてFBXモーションで踊らせてみる

本記事では、UnityにVRMを導入する方法について、UniVRM(v0.121.0)を使用した最新の手順をメモとしてまとめる。
UniVRMの最新版(0.121)は、0.10等の旧バージョンと導入方法が異なるため、その違いを明確にし、円滑にVRMモデルを導入できるようにすることを目的とする。
注意:本記事は、最新版UniVRMを用いたUnityへのVRM導入の個人的なメモであり、記事作成者はUnityのプロフェッショナルではない。


1.前提条件

2.プロジェクトの準備

Unityバージョンを確認の上、3D Coreにてプロジェクトを作成します。
最新版のUniVRMでは、Universal RPが必要なようなので、プロジェクト起動後、Universal RPをインストールします。

「Window」→「Package Manager」よりパッケージマネージャーを起動し、検索条件に「Packages:Unity Registry」を選択します。
その後検索欄に、「Universal RP」を入力し検索。

上記画面が出てくるので、インストールを選択します。

もし、Universal RPをインストールせずにUniVRMを導入した場合、
以下のようなエラーが表示されます

vrm Shader error in 'VRM10/Universal Render Pipeline/MToon10': Couldn't open include file 'Packages/com.unity.render-pipelines.universal/ShaderLibrary/Core.hlsl'.
at Assets/VRMShaders/VRM10/MToon10/Resources/VRM10/vrmc_materials_mtoon_depthonly_vertex.hlsl(5)

3.UniVRMの導入

UniVRM Gitページより、v0.121.0をダウンロードします。

ダウンロードしたUnityPackageをダブルクイックして導入します。ダブルクイック後、ImportでUniVRMをプロジェクトにインポートします。

インポート後、「Consloe」にて、エラーが発生していないことを確認してください。
「vrm Shader error in 'VRM10/Universal Render Pipeline/MToon10': Couldn't open include file 」のエラーが発生している場合は、Universal RPがインストールされていません。再度インストールを確認してください。

Assets\VRMShaders\GLTF\IO\Runtime\Texture\Importer\KtxTextureDeserializer.cs(13,38): warning CS1998: This async method lacks 'await' operators and will run synchronously. Consider using the 'await' operator to await non-blocking API calls, or 'await Task.Run(...)' to do CPU-bound work on a background thread.

は、非同期処理についての警告なため一旦無視します。

4.VRMアバターのインポート

今回は、「Mxueru -ミュエル-」のアバターを購入し、アニメーション適応を行いました。(私が開発しているAITuber アイリに用いさせていただいているアバター)

VRMアバターをお持ちでない場合は、ニコニコ立体ちゃんやユニティーちゃんなど、フリーアバーターの利用を推奨いたします。(利用規約要確認)

Unity Assets内に任意の名前のフォルダーを作成し(VRM導入の際ファイルが自動生成されるためキャラ名等でフォルダー作成推奨)、VRMファイルを作成したフォルダーにドラッグアンドドロップします。

VRMドラッグアンドドロップ後、VRMモデルのUnityプレハブデータが生成されます。

プレハブデータをHierarchyウインドウにペーストすることで、SceneにVRMモデルを表示できます。

基本的なVRMモデル導入の流れはここまでとなります。

参考:

5.モーション付きFBXファイルを使ってVRMを踊らせてみる

VRMモデルをUnity導入だけだと、味気ないので、VRMモデルを踊らせてみることとします。

今回用いるモーションデータは、星街すいせいさんの「ビビデバ」の配布モーションデータを用いさせてもらいました。

5A.モーションファイルの準備

上記Youtubeリンク概要欄にてモーションデータ配布がありますので該当リンクよりvmdデータをダウンロードします。

5B.FBXファイルのインポート

その後、Assetsフォルダーに適当なファイル(今回の例ではMotion)を作成しその中にダウンロードしたFBXファイルをインポートします。

インポートしたFBXデータを選択し、Inspectorウインドウ、Rig→Animation TypeをHumanoidに変更しApplyをクリックしリグ設定をHumanoidモデルに変更します。

5C.モーションの適応

モーションファイルを適応するアニメーションコントローラを作成します。

右クイックCreate→Animation Controllerを選択し、新規コントローラを作成します。

作成したコントローラをダブルクイックして「Animator」ウインドウを表示。

5BでインポートしたFBX内のツリーを表示し、motionファイルをAnimatorウインドウにドラッグアンドドロップします。

ドラッグアンドドロップすると以下のような状態になります。

踊らせたいVRMモデルのプレハブデータをHierarchyにドラッグアンドドロップしたうえで、プレハブモデルを選択し、Inspectorを開きます。

先ほど作成したアニメーションコントローラを、プレハブモデルのAnimator Controllerにドラッグアンドドロップします。

この状態で再生ボタンを押すと、以下のようにモーションが再生されます。


この記事が気に入ったらサポートをしてみませんか?