Language:
Page Info
Skill Level:
Engine Version:

2 - AnimDynamics を適用する

キャラクターを Animation ブループリント でセットアップし、動的にアニメートするボーンが用意できました。これを行うには、 Animation ブループリントAnimGraphAnimDynamics ノードを使用します。

この例では、キャラクターは大きなファーネス (furnace) を首の回りにかけて運んでいます。これをキャラクターの動きに応じてアニメートします。独自のキャラクターを使用している場合は、以下のステップに従って、AnimDynamics で操作したいボーンを指定して、必要に応じて設定を調整することができます。

ステップ

  1. コンテンツ ブラウザ で、キャラクターの Animation ブループリント を開きます(GruntAnimBP)。

    1_OpenAnimBP.png

  2. MyBlueprint をクリックして、次に AnimGraph をクリックして、Animation Graph を開きます。

    2_AnimGraph.png

  3. グラフ内を 右クリック して、 AnimDynamics ノードを探して追加します。

    3_AddNode.png

    AnimDynamics ノードは、External Force 値を取り込みます。これは、シミュレーションですべてのボディに適用する付加的な力です (これはオプションですが、考慮してみてもよいかもしれません)。これは参照ポーズ データである Component PoseAlpha 値 (スケルタル制御を適用する強度で、この場合の 0 は強度なしで、1 は最強) も取り込みます。

  4. このノードを コピーペースト し、以下のようにノードをつなげます。

    4_ConnectNodes.png

    ポーズのピンを接続すると Local to ComponentComponent to Local が自動的に作成されます。

    この例では、2 つの AnimDynamics ノードを使っています (ひとつはハーネス (Harness) に影響を与え、もうひとつはファーネス (Furnace) に影響を与えます)。

  5. シーケンスのひとつめの AnimDynamics ノードを選択し、[Details (詳細)] パネルで以下のように設定します。

    5_Furnance1.png

    [Preview] セクションは、すべてビジュアル化に関するもので、動きに適用されている現在の制限をビューポート内に表示します。Planar Limits を使用し、 CoM (重心) が有効になっていなければ、コリジョンの球体も見えます (これはこの例で扱う範囲外ですが、この設定で試すことができます)。 最後に設定するのは Bound Bone すなわち影響を及ぼすボーンです。このキャラクターでは furnace ボーン (このボーンがハーネス (Harness) に影響を及ぼします) に設定しました。

  6. まだノードを選択したままの状態で Setup セクションと Constraint セクションを以下のように設定します。

    6_Furnance1.png

    Setup セクションと Constraint セクションでは、AnimDynamics で操作される動きとその範囲を定義します。Box Extent では慣性を設定し、Local Joint Offset はピボット ポイントを定義し、Angular Limits は動きの回転範囲を設定します (有効な場合にプレビュー視覚化オプションによって表示されます)。

    セットアップとコンストレイントの設定については、スケルタル制御の AnimDynamics セクションをご覧ください。

  7. [Compile] をクリックして、ハーネス (harness) オブジェクトが横に傾いている様子をご覧ください。

    6_Furnance1b.png

    Y 軸の Angular Limits は、現在、上の図の緑のコーンのように非常に大きくなっています。この範囲を狭めてみましょう。

  8. ノードを選択したままの状態で [Constraint] セクションで Min/MaxAngular Limits を以下のように設定します。

    6_Furnance1c.png

    コンパイル すると、ハーネスはどちらの側にもあまり動かなくなります (たとえ Speed または IsInAir? の設定を調整してもあまり動きません)。

    6_Furnanced.png

  9. シーケンスの 2 つめの AnimDynamics ノードを選択し、以下の設定を使用します。

    フルサイズ表示するにはここをクリック

    上の設定では、 Bound Bone を、キャラクターの Furnace_Pivot ボーンをターゲットにするように変更し、ファーネス (furnace) オブジェクトに影響を与えるようにしました。Twist Axis も調整し、Y 軸でツイストするようにし、横方向ではなく前後の動きを加えました。動く範囲として Angular Limits は -50 および 50 に設定します。

  10. コンパイル保存 してから、エディタで再生します。

最終結果

この例のキャラクターが動くとコンストレイントの設定に応じてファーネス (furnace ) がバウンスするのがわかります。

[Setup] セクションで Box Extent 値と Local Joint Offset 値、および [Constraints] セクションの LinearAngular Limits を調整して、AnimDynamics によってボーンの動きがどのように変化するかをご自由に試してみてください。