【Unity】mixamoのアニメーションが動かない場合の対処
概要
ハイクオリティな3Dキャラクターモデルやアニメーションがfreeでダウンロードできるありがたいサイトとしてmixamoがあります。(アカウント登録が必要です)
このmixamoからダウンロードしたanimationのfbxファイルをUnityのオブジェクトで使用するまでにすこし躓いたことがあったので、その方法についてメモします。
環境
Windows10
Unity 2020.1.1f1
最初にやったこと
FBXのダウンロード
mixamoで使いたいanimationを選択し、Downloadボタンから以下の設定でUnity用のfbxファイルをダウンロードします。今回は以下のリンク先のAnimationを使用しました。
https://www.mixamo.com/#/?page=1&query=one+hand&type=Motion%2CMotionPack
インポートとRigの設定
落としてきたfbxファイルをドラッグ&ドロップでProjectに取り込み、Animation ClipのInspectorからEditを押し、RigメニューでHumanoidを選択してApplyします。
あとはこのAnimation Clipを使用したいキャラクターのGameObjectで使用するだけだと思っていたのですが・・・
困ったこと
何故かわからないがこのようなくねくねした気持ち悪い動きになってしまっていた。
原因と対処方法
エラーとかは出ていないので、どうやらInspectorの設定のようです。Unityの他のAnimationClipと見比べてみるとどうやらAnimationの設定のところが怪しいことに気づきました。
Humanoidを選択したあとのAnimationタブ内のメニューのうち、Loop Time、Root Transform Rotation、Root Transform Postition、Root Transform Position XZのデフォルトは以下のようにいずれもチェックが入っていない状態でした。
ここを次の赤枠部のように変更し、Applyしました。
そしてその結果の動きがこれです。
なんかまだ調整代はありそうですが、デフォルトよりは大分マシになっている気がします。
分かったこと
どうやら、AnimatorでApply Root Motionを無効にしている場合はAnimation Clip側でLoop Time、Root Transform Rotation、Root Transform Postition、Root Transform Position XZなどを適切に設定してあげないと気持ち悪い動きになるようです。
mixamoは素晴らしい3Dモデルが沢山あるので、これからもこの辺をうまいこと調整しながら活用していきたい。
以上
Unityを一から学ぶのにおすすめの本はコチラ