Inspector 上の ブレンドノード の最初のオプションは Blend Type です。このドロップダウンを使用して、ひとつか2つのパラメーターに基づいてブレンドすることができる複数のブレンドタイプのうち、ひとつのブレンドタイプを選択します。2D ブレンディングは 2つのパラメーターに基づいて子のモーションをブレンドします。
各々の用途に応じた 2D Blend Type があります。それぞれどちらを選ぶかにより、モーションがどのように影響されるか異なってきます。
2D Simple Directional: モーションが異なる向きを表す場合に最適です。例えば、walk forward (前に歩く) と walk backward (後ろに歩く)、walk left (左に歩く) と walk right (右に歩く)、aim up (上を向く) と aim down (下を向く)、aim left (左を向く) と aim right (右を向く) というようにです。オプションとして、位置 (0, 0) に、idle (休止) や aim straight (正面を向く) などの 1つのモーションを含むことができます。Simple Directional Type では同じ向きのモーション、例えば walk forward と run forward が複数あるべきでは_ありません_。
2D Freeform Directional: このブレンドタイプも、モーションが異なる向きを表す場合に使用されます。ただし、同じ方向の複数のモーションを使用できます。例えば walk forward (前に歩く) と run forward (前に走る) のように。Freeform Directional type では、ひとまとまりの複数モーションは常に、(0, 0) の位置に 1つのモーション、例えば idle (休止) を必要とします。
2D Freeform Cartesian: モーションが異なる方向を表さない場合に最適です。Freeform Cartesian では X および Y パラメーターに異なる概念、例えば角速度と直線スピードなど、を表すことができます。例としては walk forward no turn (前に歩く、曲がらない)、run forward no turn (前に走る、曲がらない)、walk forward turn right (前に歩く、右に曲がる)、run forward turn right (前に走る、右に曲がる) などです。
Direct: このタイプは各ノードのウェイトを直接ユーザーが制御することができます。顔のシェイプやアイドル状態をランダムにブレンディングするのに便利です。
Blend Type をセットした後、最初にやるべきことはこのブレンドツリーを制御する二つ アニメーションパラメーター を選択することです。この例ではパラメーターは velocityX (strafing) および velocityZ (forward speed) です。
次に個別のアニメーションを追加するには + -> Add Motion Field をクリックしてアニメーションクリップをブレンドツリーに追加します。完了すると、次のようになります。
2D ブレンディングの Position は 1D ブレンディングの Threshold に相当し、違いは値がひとつではなく、二つのパラメーターに対応して値が二つあるということです。水平方向の X 軸の Position は最初のパラメーターに対応し、垂直の Y 軸の Position は二つめのパラメーターに対応しています。前方への歩行アニメーションで velocityX が 0 および velocityZ が 1.5 であったとすると、それらの値は Pos X および Pos Y の数字フィールドに入力すべきです。
インスペクター上部のダイアグラムは 2D ブレンド空間での子モーションの Position を表します。モーションは青い点で表されます。アニメーションクリップまたはブレンドツリーのないモーションはブレンドに影響がなく灰色の点として表されます。モーションを選択するにはダイアグラムの点線をクリックします。一回選択したあとはブレンディング空間の各点の影響は青い領域で表現されます。領域はモーションの位置の真下がもっとも影響が強く、すなわちアニメーションの重み付けが 1 となり、他方のアニメーションの重み付けは 0 となります。その位置から離れていくと影響は弱まり、他方のモーションの影響が強くなります。
赤い点は 2つの Parameter の値を表します。Inspector の下部の Preview で Play を押して、ダイアグラムの赤い点をダイアグラム上でドラッグすると、パラメーターの値が、異なるモーションのブレンディングをどう制御しているかが分かります。さらにダイアグラム上で、各モーションの影響が各モーションの周りの円として表示されていることも分かります。モーションを示す青い点の上に赤い点を重ねると、青いモーションの周りの円の半径は最大となり、他のすべてのモーションの円は無くなります。いくつかのモーションの間にある position については、近くにある複数のモーションがブレンドに影響します。モーションの影響を表す青い領域を見るためにモーションの 1つを選択すると、赤い点を動かすにつれ、さまざまな位置でモーションの円のサイズは、正確に影響領域の大きさと連動することが確認できます。
もしモーションがひとつも選択されていない場合、ダイアグラムはすべての影響領域の組み合わせとなり、ひとつのモーションが支配的な場合は青が強くなり、より影響が小さい場合は青が弱くなります。
モーションの Position を変更するには対応する青の点をクリックして周りでドラッグします。さらにモーションリストのモーションの Position 座標を変更するには、Pos X および Pos Y 列の数字フィールドに値を入力することもできます。
Compute Positions ドロップダウンでアニメーションクリップのルートモーションから選んだデータによる位置を設定します。選択することが可能であるデータは speed、velocity の x、y、z および角度またはラジアン単位の Angular speed です。もし 1つ、または両方の parameter がこれらのプロパティーの 1つに対応する場合、Compute Positions ドロップダウンを使用して Pos X、Pos Y、または両方を計算できます。
プロパティー | 機能 |
---|---|
Velocity XZ | 各々のモーションの Pos X を自身の velocity.x、Pos Y を自身の velocity.z に基づいてセットします。 |
Speed And Angular Speed | 各々のモーションの Pos X を角速度 (ラジアン毎秒単位)により、Pos Y を自身のスピードによりセットします。 |
さらに Compute Position -> X Position From および/または Compute Position -> Y Position From を選択して組み合わせたりマッチングして、1度に 1つだけを自動計算して、他方は変更しないでおくことできます。
プロパティー | 機能 |
---|---|
Speed | 各々のモーションの Pos X または Pos Y を speed (速度の大きさ)に応じてセットします。 |
Velocity X | 各々のモーションの Pos X または Pos Y を velocity.x に応じてセットします。 |
Velocity Y | 各々のモーションの Pos X または Pos Y を velocity.y に応じてセットします。 |
Velocity Z | 各々のモーションの Pos X または Pos Y を velocity.z に応じてセットします。 |
Angular Speed (Rad) | 各々のモーションの Pos X または Pos Y をラジアン/毎秒単位の Angular Speed (角速度)に応じてセットします。 |
Angular Speed (Deg) | 各々のモーションの Pos X または Pos Y を角度/毎秒単位の Angular Speed (角速度)に応じてセットします。 |
例えば、パラメーターが横と正面の向きの velocity に対応していたとして、さらに idle アニメーションが (0, 0, 0)の velocity、歩行アニメーションが(0, 0, 1.5)、さらに横移動のアニメーションがそれぞれ (–1.5, 0, 0) および (1.5, 0, 0) だとします。ドロップダウンから Velocity XZ を選択することでモーションの position が、各々 X および Z 座標の velocity に対応してセットされます。