Unityでキャラクターにアニメーションさせるとき、
まずモーションとして参考にするのが、 Mixamoのアニメーションです。
(無料かつ商用利用可能、種類豊富ですからね^^)
しかし、
Unityのプロジェクトに Mixamoアニメーションファイルをインポ―トして
「Rig」タブから「Humanoid」に設定して使おうとしたとき、
足がおかしくなっていることはありませんか?
本記事では、これを解消するための方法を紹介します。
一般には、下図のように、
Unityにインポートしたモーションファイルにおいて、
「Avatar Definition」を「Copy From Other Avatar」として、
Sourceのアバターを適切に設定します。
しかし、適切にアバターを設定できなければ、このようなエラーが出ることでしょう。
”SourceにしたアバターのHipsがおかしいよ” 的なことを言われてます。
ここで紹介する方法は、そんなわずわしさはありません。
1.Mixamoからモデルごとダウンロードする
Mixamoからモーションをダウンロードする際に、「With Skin」を選択しておきます。
デフォルトだと、丸い人形がMixamo上でアニメーションしていると思いますが、
そのモデルがセットということです。
ちなみに、Unityで使うことが決まっているなら、
「FBX for Unity」にしておくと、
モーションのファイル名が端的にそのモーション名になるのでオススメです。
ダウンロードしたfbxファイルをUnityにインポートしたら、
Rigタブから「Animation Type」を「Humanoid」でApplyするだけです。
モデルのメッシュ、モーション、アバターのファイルが出ます。
モーションファイルを選択して「Ctrl」+Dで複製し、
その連なりから外に出しておけば、使いやすいですね!
ということで「With Skin」でダウンロードするだけで
モーションがおかしくなることを防げました。しかし、
多くのモーションをMixamoからダウンロードしていくのに、
毎回「With Skin」でダウンロードしていると、ファイル容量を食います。。
ここで、冒頭の「Copy From Other Avatar」を活用する出番です(2.へ)
2.アバターを使いまわしてモーションを正常にする
アバターを使いまわすので、一度「With Skin」でダウンロードしたならば、二度目からは、「Without Skin」で大丈夫です。
(ただし、一度目のアバターファイルは、Unityのプロジェクトファイルに入れておきます)
ダウンロードされたファイルは、モーションだけなのでとても軽いです^^
Unityにインポートしたら、
いつものように、Rigタブで「Humanoid」を選択し、
次に「Copy From Other Avatar」として
「Source」を一度目に得たアバターファイル
(remyというキャラクターのCapoeiraモーションのアバターでした)
を選択してApplyします。
これで正常なモーションになります。
これで気兼ねなくMixamoモーションを活用できますね!
自分オリジナルのモーションを作りたいなら↓の方法が最短です!!
【Blenderアニメーション】mixamoのモーションデータを自分好みに改変する方法【作業短縮!Unityにも使える!】