はじめに
FBXとして出力したモーションをUnity上のVRMモデルで再生する方法です。
環境
VRM1.0
UniVRM
Unity2022.3.16f(これを使用して記事を書いているだけでこのバージョンが必須ではないです)
モーションを再生するVRMファイル(モデル)をインポートする
使用するVRMファイルをUnityプロジェクトのAssetsフォルダ配下にコピーします。
Assetsフォルダ配下であれば、どこでも問題ないですが、もし本格的な開発をする場合はあらかじめフォルダ構成を検討することをおすすめします。
サンプルとして動かすだけであればAssetsフォルダ配下であればどこでも問題ありません。
今回は Assets/Models 配下に配置することにします。

インポートしたらHierarchyにドラッグ&ドロップしてシーンに配置しておきます。

デフォルトだとカメラが遠かったり背中を向けていたりするので、あらかじめ見えやすいように調整しておいてください。

FBXをUnityにインポートする
出力したFBXを同じくAssetsフォルダ配下にコピーします。
今回は Assets/Models/Animations 配下に配置することにします。
FBXの設定を変更する
FBXをインポートしたら、設定を変更します。
■Modelタブ
BakeAxisConvertionのチェックをONにする

■Rigタブ
AnimationTypeをHumanoidにする。この時点で一旦Applyを押してください。
でないと次のAnimationタブの項目が出現しません。

■Animationタブ
下の方にあるMotionを展開し、「Root Motion Node」を「Root」にする。
エクスポートの仕方によっては Armature.rig配下にRootができている場合もあります。
その場合はArmature.rig/RootをなるようにRootを選択してください。
Root Motion Nodeを選択したら再度Applyを押します。

動作確認用Animation設定
動作確認時にはモーションがループしていたほうが便利なので、動作確認用にループ設定を行います。
実環境においてはモーションごとに適切な設定をするようにしてください。
AnimationタブのClipsから「Armature.rig|Action」を選択します。
これが先程Blenderで作成したモーションです。
「Armature.rig|Action」を選択した状態で、LoopTimeのチェックを入れて、Applyを押します。

これでモーション再生時にモーションがループするようになります。
Animationをモデルに適応して再生する
プロジェクトビューのFBXを展開して、配下にあるAimationClipをHierarchyのモデルにDrag&Dropします。

AnimatonClipをモデルにDrag&DropするとAnimatorControllerが自動生成され、モデルのAnimatorコンポーネントにAvatarSample_AというAnimatorControllerが設定されます。

この状態で再生すると、Blenderで作成したモーションが再生されるはずです。

さいごに
うまく再生できたでしょうか?
本当はAnimatorControllerで複数のモーションを管理したりなど色々とできるのですが、今回は単体のモーションを再生することに絞って方法を紹介しました。
最後までお読みいただきありがとうございます!
ぜひVRMのモデルを素敵に動かしてみてください!
コメント