ここでは、タイムラインインスタンスを使用して外部モーションクリップでヒューマノイドキャラクターをアニメーション化する方法を説明します。このワークフローでは、クリップのギャップをマッチする方法、手動でクリップのギャップを調整する方法、クリップ間をブレンドしてジャンプや抜け落ちを最小限に抑える方法も示しています。ここではヒューマノイドキャラクターが使用されていますが、このアニメーションメソッドはどのゲームオブジェクトでも使用できます。
このワークフローでは、ヒューマノイドにバインドされた空のアニメーショントラックを持つタイムラインインスタンスを既に作成していることを前提としています。
プロジェクトから、モーションクリップをアニメーショントラックにドラッグして新しいアニメーションクリップを作成します。例えば、最初のクリップとして、アイドル状態 (Idle) をドラッグして、何もしていない状態からヒューマノイドを開始します。アイドルのクリップを適切な位置に配置し、サイズを変更します。
2 番目のモーションクリップを加えます。この例では、走って左に曲がるクリップ (Run_Left) をアニメーショントラックにドラッグします。 Run_Left クリップのサイズを適宜変更します。この例では、Run_Left クリップのサイズを変えてループを 1 つ加えています。そのため、Guard が走ってから 180 度方向転換できます。
タイムラインインスタンスを再生します。ヒューマノイドの Guard キャラクターは、各アニメーションクリップ間をジャンプします。これは、最初のアニメーションクリップ (Idle) の終了時のヒューマノイドキャラクターの位置が、次のアニメーションクリップ (Run_Left) の開始位置と一致しないために発生します。
クリップ間のジャンプを修正するには、各アニメーションクリップのギャップをマッチします。Timeline エディターウィンドウには、ギャップをマッチするためのいくつかの異なる方法あります。 この例では、2 番目のアニメーションクリップが前のクリップとマッチしています。これを行うには、Run_Left クリップを選択し、右クリックし、Match Offsets to Previous Clip を選択します。
タイムラインインスタンスをもう一度再生します。ヒューマノイドの位置と回転は一致しますが、ヒューマノイドが違う姿勢であるため 2 つのアニメーションクリップの間にまだジャンプがあります。最初のアニメーションクリップの終わりに、ヒューマノイドは足を揃えて直立しています。2 番目のアニメーションクリップの開始時では、ヒューマノイドは足を開いて前方にかがんでいます。
ブレンドを作成して、2 つの姿勢ののジャンプを削除し遷移させます。クリップのサイズ、ブレンドエリア、クリップイン、各ブレンドカーブの形を調整して、2 つの姿勢の間に遷移を作成します。例えば、Idle クリップと Run_Left クリップの間の遷移では、Idle クリップは長さ 36 に変更され、Run_Left クリップはフレーム 25 で開始するように再配置されます。残りのプロパティーはデフォルト値のままです。
Idle クリップから Run_Left クリップに遷移するときに、ブレンドによって姿勢の間にある目立つジャンプが削除され、ほとんどのボディーパーツの遷移が自然になりました。ただし、異なる足の位置をブレンドしたため、結果的に不自然に足がスライドします。
足のスライドを修正するには、アニメーションクリップのルートのギャップを手動で調整して、足の位置があまり変化しないようにして、スライドを減らします。 ルートのずれを手動で調整するには、Timeline エディターウィンドウでアニメーションクリップを選択します。Inspector ウィンドウで、Animation Playable Asset を展開し、Clip Root Motion Offsets を展開します。
Clip Root Motion Offsets の Position と Rotation は 0 ではありません。なぜなら Match Offsets to Previous Clip を行うことによって、これらの値が前のアニメーションクリップの終了時のヒューマノイドのルート (ヒップ) に一致するように、すでに設定されているからです。
Clip Root Motion Offsets で、移動ツールをクリックします。すると、アニメーションクリップのルートの、移動ギズモがシーンビューに表示されます。以下の方法のうち 1 つを使用して、アニメーションクリップのルートの位置のギャップを手動で調整します。
シーンビューで移動ギズモをドラッグします。
Inspector ウィンドウで、Position プロパティーを適切な値に変更します。
Did you find this page useful? Please give it a rating:
Thanks for rating this page!
What kind of problem would you like to report?
Thanks for letting us know! This page has been marked for review based on your feedback.
If you have time, you can provide more information to help us fix the problem faster.
Provide more information
You've told us this page needs code samples. If you'd like to help us further, you could provide a code sample, or tell us about what kind of code sample you'd like to see:
You've told us there are code samples on this page which don't work. If you know how to fix it, or have something better we could use instead, please let us know:
You've told us there is information missing from this page. Please tell us more about what's missing:
You've told us there is incorrect information on this page. If you know what we should change to make it correct, please tell us:
You've told us this page has unclear or confusing information. Please tell us more about what you found unclear or confusing, or let us know how we could make it clearer:
You've told us there is a spelling or grammar error on this page. Please tell us what's wrong:
You've told us this page has a problem. Please tell us more about what's wrong:
Thank you for helping to make the Unity documentation better!
Your feedback has been submitted as a ticket for our documentation team to review.
We are not able to reply to every ticket submitted.