ヒューマノイドのアニメーション化
ここでは、Timeline インスタンスを使用して外部のモーションクリップでヒューマノイドをアニメーション化する方法を説明します。また、このワークフローからは、クリップのギャップをマッチさせる方法や、クリップのギャップを手動で調整する方法、クリップ間のブレンドを作成してジャンプや抜け落ちを最小限に抑える方法も学ぶことができます。このワークフローではヒューマノイドが使用されていますが、このアニメーション化の方法は、あらゆるゲームオブジェクトに使用できます。
このワークフローは、ヒューマノイドにバインドされた (紐づけられた) 空のアニメーショントラックを持つ Timeline インスタンスが事前に作成されていることを前提としています。この例で使用されている "DefaultMale" ヒューマノイドは空のアニメーショントラックにバインドされています。
空のアニメーショントラックにバインドされた "DefaultMale" ヒューマノイド
Project (プロジェクト) ウィンドウからアニメーショントラックにモーションクリップをドラッグすると、新しいアニメーションクリップが作成されます。例えば、最初のクリップとしてアイドル状態 (Idle) のポーズをドラッグすると、アイドル状態から開始するヒューマノイドになります。
クリップビューでアニメーションクリップの配置やサイズ変更、トリムを行うには、クリップ編集モードを ミックスモード にします。3 種類のクリップ編集モードがあり、これによって Timeline ウィンドウの編集動作が変わります。ミックスモード では、クリップのドラッグやトリムを行いブレンドを作成できます。
"DefaultMale" ヒューマノイドにバインドされたアニメーショントラック。アイドル状態ののアニメーションクリップが含まれています。クリップ編集モードにはミックスモード (赤丸内) が選択されています。
2 つ目のアニメーションクリップを追加します。ここでは、走って左折するクリップ ("Run_Left") をアニメーショントラックに加え、ループが 1 回含まれるようにクリップのサイズ変更をすることで、DefaultMale が走りながら 180 度方向転換します。
"Idle" クリップと "Run_Left" クリップを含むアニメーショントラック
Timeline インスタンスを再生してみましょう。この時点では、"DefaultMale" ヒューマノイドは 2 つの異なるアニメーションクリップの間でジャンプ (急に移動) してしまいます。これは、最初のアニメーションクリップ ("Idle") の終了時と次のアニメーションクリップ ("RunLeft") の開始時とでヒューマノイドの位置が一致していないためです。
ヒューマノイドが、最初のアニメーションクリップ (フレーム 29、赤い矢印とボックス) と 2 つ目のアニメーションクリップ (フレーム 30、緑の矢印とボックス) との間でジャンプします。
クリップをぴったり合わせる
クリップ間のアニメーションのジャンプを修正するには、各アニメーションクリップのギャップを調整して合わせます。Timeline ウィンドウには、ギャップを合わせる複数の方法があります。ここでは、2 つ目のアニメーションクリップを先行のクリップに合わせています。これを行うには、"Run_Left" クリップを選択した上で右クリックし、Match Offsets to Previous Clip を選択します。
右クリックから Match Offsets to Previous Clip を選択し、アニメーションクリップを先行のアニメーションクリップに合わせます
ギャップをぴったり合わせると、2 つ目のアニメーションクリップの開始時のヒューマノイドの位置と回転 (フレーム 30、緑の矢印の付いたゴースト) が、1 つ目のアニメーションクリップの終了時のヒューマノイドの位置と回転 (フレーム 29、赤い矢印) に一致します。
Timeline インスタンスを再び再生します。ヒューマノイドの位置と回転は一致していますが、ポーズが異なるため、まだ 2 つのアニメーションクリップ間でジャンプが発生します。1 つ目のアニメーションクリップの終了時のヒューマノイドは、足を揃えて直立しています。一方、2 つ目のアニメーションクリップの開始時のヒューマノイドは、足を開いて前にかがんでいます。
クリップのブレンド
ブレンドを作成して 2 つのポーズ間のジャンプを取り除き、遷移させます。クリップのサイズ、ブレンドエリア、クリップイン、各ブレンドカーブの形を調整して、2 つのポーズの間の遷移を作成します。例えば "Idle" クリップと "Run_Left" クリップ間の遷移においては、"Idle" クリップは 36 フレームにサイズ変更され、"Run_Left" クリップはフレーム 25 から開始するように再配置されます。クリップの残りのプロパティーの値はデフォルトのまま変更されません。
ミックスモードを選択し、2 つのクリップ間にブレンド (赤丸内) を作成することで、2 つのアニメーションの間に滑らかな遷移を作成できます。
"Idle" クリップから "Run_Left" クリップへ遷移する際に、ブレンドによってポーズ間の目立ったジャンプが取り除かれます。ほとんどのボディーパーツ同士の遷移は自然に見えていますが、この例では、異なる位置にある足のブレンドが不自然なスライドを発生させています。
足のスライドを減らす
足のスライドを減らすには、足の位置の変化がより小さくなるように手動でアニメーションクリップのギャップを調整します。ギャップを手動で調整するには、Timeline ウィンドウでアニメーションクリップを選択し、Inspector ウィンドウで Animation Playable Asset を展開します。
Animation クリップを選択します。Inspector ウィンドウ内で Animation Playable Asset を展開 (赤枠内) して Clip Transform Offsets を表示します。
Clip Transform Offsets の Rotation (回転) と Position (位置) の値は 0 ではありません。これらの値は Match Offsets to Previous Clip を実行すると、先行のアニメーションクリップの終了時のヒューマノイドのルート (ヒップ) に一致するように設定されるためです。
Clip Transform Offsets で、移動ツールを有効にします。シーンビューのアニメーションクリップのルートに移動ギズモが表示されます。
移動ツール (Inspector ウィンドウ、赤矢印) を有効にするとシーンビューに移動ギズモ (緑矢印) が表示されます
以下のいずれかの方法でアニメーションクリップのギャップの位置を手動で調整できます。
- シーンビューで移動ギズモを動かす。
- Inspector ウィンドウの Clip Transform Offsets で、適切な Position プロパティーの値を変更する。