自己紹介
こんにちはゆずです。@Yuzu_Unity
手っ取り早く…
アセットが公開されているみたいなので、このアセットのインポートを行えば以下の記事は読む必要はありません!!
https://assetstore.unity.com/packages/tools/utilities/neuron-fbx-importer-144203
(※筆者はアセットを購入していません…)
無料で行いたい場合のみお願いします。
なぜデータがおかしな動作をするのか
簡潔に言うとUnityのHumanoidの仕組みによる誤作動です。
UnityのHumanoidアニメーションはHumanoid同士ならアニメーションがリターゲットできるというものになっています。
(初期TポーズからIK・FK等を用いオフセットのパラメータを割当する機能です。)
まずはスケルトンの定義を行います。
この時初期フレーム時のモーションがTポーズとして設定されます。
なのでNeuronのデータの場合、初期フレームにアニメーションが入ってしまいTポーズとして
設定されないといった現象が起こるのです。
これはNeuronに限らずMaya等のツールでも起こります。Mixamo等
Blender上ではクリップを分けられるので便利!!
解決策
やることは簡単です。
Tポーズの状態の同じボーン構造のデータを用意しそのスケルトン定義をコピーすればよいのです。
以下のデータにTポーズ(回転値0のデータ)の状態のデータを用意してみたのでダウンロードお願いします。
FBXデータ
ダウンロードしたデータをUnityにインポートしRigの項目のAnimationTypeをHumanoidにしApplyを押します。
次にNeuronから書き出したFBXデータを同様にHumanoidにし
AvaterDefinitionをCopyFromOtherAvatarに設定しSourceを先程インポートしたFBXデータのAvatarに設定しApplyを押します。
これで問題なく動作するようになります。
その他Tips
初期設定ではアニメーションがリダクション(フレームレートが減少)されてしまいます。
きれいに中割されるわけではないので、ただただカクカクになってしまいます。
なのでここの設定を変更すると、もとのフレームレートで動くことができます。