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 に対応してセットされます。
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.