今回は上下の動きが最初から含まれているジャンプモーションをアクションゲーム等で使用する方法についてです。
ジャンプ中にジャンプモーションがジャンプする
ユニティちゃんのようなキャラクターをアクションゲーム等で使用していると、キャラクターのジャンプ中にもう一度ジャンプしてしまう…という事があります。
例えば上のGifアニメのケースです。
右が通常のジャンプ、中央がジャンプモーションです。各々はそれ程問題が無いのですが、二つ合わせてしようすると左のジャンプモーションのように、ジャンプ中にもう一段ジャンプする問題が発生します。
ジャンプアニメーションから上下移動を取り除く
この問題は、ジャンプモーション中に「ジャンプの上下」が含まれている事が問題です。その為、カプセルのジャンプに追加してジャンプモーションの上下も入ってしまう為、追加で上下してしまう訳です。
これはアドベンチャーゲームやRPGといったジャンルのゲームでMatch Targetを駆使して移動するならば非常に綺麗に動いてくれて良いのですが、プラットフォーマー(横スクロールアクション)や3Dアクションではジャンプの位置をズラす要因になります。
この問題を手っ取り早く解決する方法は、ジャンプアニメーションから上下移動しなくする事です。
手順
この操作はアニメーションのImporter設定を操作して、キャラクターの移動部分を無効化することで実現します。
やることは概ね4つ。
- AnimatorのApply Root Motoinのチェックを外す
- アニメーションのImporterの、Bake Transform Position(Y)を外す
- Based UponをCenter Of Massに設定して、モーションの中心位置をモデル中央に設定。
- Offsetでモデルの位置を調整
これでアニメーションを再生した時、キャラクターが上下せずアニメーションが再生されたら成功です。
実際の動作
このモーションをジャンプの動きに合わせて動かすと、カプセルにジャンプをさせた場合でも綺麗にジャンプモーションを再生してくれます。
着地時に足がめり込む
もし「踏み込み」と「着地」のモーションをジャンプモーションの流れに組み込みたい場合、そういった「足が付いている」部分は別モーションとして切り出して制御するのが良いかもしれません。
Based UponがFootの場合は、モーションの中心点が足になります。
ジャンプ動作が分割されていない場合
分割します。