チュートリアル:マニュアルでのルートモーションのスクリプティング
1D ブレンディング

ブレンドツリー

ゲームアニメーションでは 2 つかそれ以上のモーション間でブレンドを行うことがよくあります。もっとも良く知られるケースはキャラクターの速度に基づいた歩行と走行アニメーションのブレンディングです。もうひとつの事例は走っているときに左右に体を傾けるようなケースです。

遷移(Transition)とブレンドツリー(Blend Tree)は区別して考えることが重要です。両方とも滑らかなアニメーションを作るために使用されるものですが、それぞれ異なる状況で用いられます。

  • 遷移 は、ある Animation State から別の Animation State への移り変わりを、一定の時間内で滑らかに行うために使用されます。遷移は、アニメーションステートマシン の一部として指定されます。あるモーションからまったく違う別のモーションへの遷移も、素早い遷移であれば通常問題ありません。

  • ブレンドツリー は、複数のアニメーションを、それらすべての部分部分を異なる度合いで組み込むことによって、滑らかにブレンド(混合)できるようにするものです。それぞれのモーションを最終的なアニメーションにどの程度影響させるかは、ブレンディングパラメーター を使用して制御します。これは Animator Controller に付随する アニメーションパラメーター のひとつです。ブレンドされたモーションが自然に見えるためには、性質とタイミングが類似したモーション同士でブレンドされる必要があります。ブレンドツリーは、アニメーションステートマシンにおける特殊なタイプのステートです。

同様のモーションの事例はさまざまな歩行や走行のアニメーションで見られます。ブレンドが適切に動作するためにはクリップの動きは正規化された時間で同期して行われる必要があります。例えば、歩行や走行アニメーションは足が地面に着地する同じ正規化された時間に起きるように同期させることごできる(例えば左足が 0.0 で着地、右足が 0.5 で着地など)。正規化された時間が使用されるため、クリップが異なる長さであるかは影響しない。

ブレンドツリーの使用

新規のブレンドツリーで作業するためには:

  1. Animator Controller Window 上の空いたスペースで右クリック
  2. 右クリックで表示されるコンテキストメニューから Create State > From New Blend Tree を選択
  3. Blend Tree ダブルクリックして Blend Tree Graph に入ります。

これで Animator Window にブレンドツリー全体のグラフを表示し、インスペクターでは現在選択されているノードおよびその直接の子ノードを表示します。

Animator Window は Blend Tree 全体のグラフを表示します。その左にあるのはルートのブレンドノードを持ったブレンドツリーがあり、子ノードとして 3 つのアニメーションクリップを保有しています。
Animator Window は Blend Tree 全体のグラフを表示します。その左にあるのはルートのブレンドノードを持ったブレンドツリーがあり、子ノードとして 3 つのアニメーションクリップを保有しています。

ブレンドツリーにアニメーションクリップを追加するには、インスペクタービューの + ボタンを押し、Motion Field をクリックします。

 Inspector 上でモーションを追加する前のブレンドノードを表示。+ アイコンはアニメーションクリップまたはブレンドツリーを追加するために使用されます。
Inspector 上でモーションを追加する前のブレンドノードを表示。+ アイコンはアニメーションクリップまたはブレンドツリーを追加するために使用されます。

代わって、コンテキストメニューから選択して、プレンドツリー上で右クリックすると子ノードかアニメーションクリップを追加することができます。

ブレンドツリーのノード上で右クリックしたときのコンテキストメニュー
ブレンドツリーのノード上で右クリックしたときのコンテキストメニュー

ブレンドツリーをアニメーションクリップと入力パラメーターで設定する場合、インスペクター ウィンドウでパラメーター値の変更して、アニメーションがどのように組み合わされるかグラフィックの視覚化を行います(スライダーをドラッグすると、ツリーのルートからの矢印が変化して、現在優位となっているアニメーションクリップを表示します)

2D Blendtree は、インスペクタービューでプレビューされ 5つのアニメーションクリップによって設定されます
2D Blendtree は、インスペクタービューでプレビューされ 5つのアニメーションクリップによって設定されます

ブレンドツリーグラフの任意のノードを選択してインスペクターで表示することが可能です。もし選択されたノードがアニメーションクリップである場合は、インスペクター上でそのアニメーションクリップが表示されます。アニメーションがモデルからインポートされた場合、設定は読み取り専用となります。もしノードがブレンドノードである場合、インスペクター上でブレンドノードが表示されます。

Blend Type メニューから、1D ブレンディング2D ブレンディング のいずれかのタイプのブレンディングを選ぶことができます。二つの違いは、このセクション中、それぞれに関するページで説明しています。

ブレンドツリーとルートモーション

アニメーション間のブレンディングは、リニア補間を使用して行われます。(つまり、ブレンディングパラメーターによって加重される個々のアニメーションの平均が、各アニメーションの量になります。)ただし、ルートモーションは同じ方法で補間される訳ではありません。このことがキャラクターにどのような影響を及ぼすか、詳しくはルートモーションの仕組み のページを参照してください。

チュートリアル:マニュアルでのルートモーションのスクリプティング
1D ブレンディング