ゲームアニメーションでは 2 つかそれ以上のモーション間でブレンドを行うことがよくあります。もっとも良く知られるケースはキャラクターの速度に基づいた歩行と走行アニメーションのブレンディングです。もうひとつの事例は走っているときに左右に体を傾けるようなケースです。
遷移(Transition)とブレンドツリー(Blend Tree)は区別して考えることが重要です。両方とも滑らかなアニメーションを作るために使用されるものですが、それぞれ異なる状況で用いられます。
遷移 は、ある Animation State から別の Animation State への移り変わりを、一定の時間内で滑らかに行うために使用されます。遷移は、アニメーションステートマシン の一部として指定されます。あるモーションからまったく違う別のモーションへの遷移も、素早い遷移であれば通常問題ありません。
ブレンドツリー は、複数のアニメーションを、それらすべての部分部分を異なる度合いで組み込むことによって、滑らかにブレンド(混合)できるようにするものです。それぞれのモーションを最終的なアニメーションにどの程度影響させるかは、ブレンディングパラメーター を使用して制御します。これは Animator Controller に付随する アニメーションパラメーター のひとつです。ブレンドされたモーションが自然に見えるためには、性質とタイミングが類似したモーション同士でブレンドされる必要があります。ブレンドツリーは、アニメーションステートマシンにおける特殊なタイプのステートです。
同様のモーションの事例はさまざまな歩行や走行のアニメーションで見られます。ブレンドが適切に動作するためにはクリップの動きは正規化された時間で同期して行われる必要があります。例えば、歩行や走行アニメーションは足が地面に着地する同じ正規化された時間に起きるように同期させることごできる(例えば左足が 0.0 で着地、右足が 0.5 で着地など)。正規化された時間が使用されるため、クリップが異なる長さであるかは影響しない。
新規のブレンドツリーで作業するためには:
これで Animator Window にブレンドツリー全体のグラフを表示し、インスペクターでは現在選択されているノードおよびその直接の子ノードを表示します。
ブレンドツリーにアニメーションクリップを追加するには、インスペクタービューの + ボタンを押し、Motion Field をクリックします。
代わって、コンテキストメニューから選択して、プレンドツリー上で右クリックすると子ノードかアニメーションクリップを追加することができます。
ブレンドツリーをアニメーションクリップと入力パラメーターで設定する場合、インスペクター ウィンドウでパラメーター値の変更して、アニメーションがどのように組み合わされるかグラフィックの視覚化を行います(スライダーをドラッグすると、ツリーのルートからの矢印が変化して、現在優位となっているアニメーションクリップを表示します)
ブレンドツリーグラフの任意のノードを選択してインスペクターで表示することが可能です。もし選択されたノードがアニメーションクリップである場合は、インスペクター上でそのアニメーションクリップが表示されます。アニメーションがモデルからインポートされた場合、設定は読み取り専用となります。もしノードがブレンドノードである場合、インスペクター上でブレンドノードが表示されます。
Blend Type メニューから、1D ブレンディング か 2D ブレンディング のいずれかのタイプのブレンディングを選ぶことができます。二つの違いは、このセクション中、それぞれに関するページで説明しています。
アニメーション間のブレンディングは、リニア補間を使用して行われます。(つまり、ブレンディングパラメーターによって加重される個々のアニメーションの平均が、各アニメーションの量になります。)ただし、ルートモーションは同じ方法で補間される訳ではありません。このことがキャラクターにどのような影響を及ぼすか、詳しくはルートモーションの仕組み のページを参照してください。
BlendTree