AnimDynamics

AnimDynamics を使用して物理ベースのセカンダリ アニメーションを作成する方法を説明します。

Choose your operating system:

Windows

macOS

Linux

AnimDynamics ノードは、小さなソルバーです。Skeletal Mesh アセット用の物理ベースのセカンダリ アニメーションを提供するために使用できます。 キャラクターが動くと揺れたり、動いたりするネックレス、ブレスレット、荷物、ワイヤー、ヘア、クロスなどのアイテムがあれば、このノードを使ってそうした動きを処理することができます。

AnimDynamics は非常に軽い実装で LOD (Level of Detail) やその他のアニメーション設定でオンオフできます。処理は AnimGraph でのアニメーション処理中に行われます。 単純なクイック ソルバーになるように作られているため、ソルバーが計算する考慮すべき近似値があります。

  • 動的ボーンはボックスのみで表され、その部分の慣性を計算するために使われます。

  • コリジョンは計算されません。ただし、コンストレイントを使用して動きを制限することができます。

AnimDynamics は、Linear、 Angular、 Planar のコンストレイントをサポートします。Linear コンストレイントと Angular のコンストレイントは、スプリングによって操作され、より弾むような感覚が得られます。一方、Planar コンストレイントはその部分が交差しない平面で使われます。

チェーンもサポートされます。キャラクターの開始と終了のボーンが選択可能であり、こうしたリンクに対してチェーンが生成されます。これは単一ボディの動的ボーンよりもはるかに負荷が高くなります。リンクされたコンストレイントをソルブする必要があり、正しく収束するするために多くのイタレーションが必要になるからです。 イタレーションのカウントもノード毎に設定可能です。

以下は AnimDynamics を使用したチェーンの例です。

AnimDynamicsChain.gif

このオプションを有効にするには、 AnimDynamics ノードの [Details (詳細)] パネルにある [Chain] チェックボックスにチェックを入れます。

ボディがある場所とそのサイズを示すビジュアル化のレイヤーがあります。

AnimDynamicsVisualization.png

以下は角度の制限のビジュアライザーを示した例です。

AnimDynamicsaAngular.png

これらは、AnimDynamics ノードを選択した状態で [Details] パネルから設定することができます。

AnimDynamics のコア アプリケーションは [Details] パネルの [Setup] [Constraint] のセクションにあります。

SetupConstraints.png

この 2 つのエリアで必要とする動きにするために値を微調整します。 Bound Bone はノードによって影響を受けるボーンです。 Box Extents セクションは、慣性を生じ、動きを操作するボリュームを作成するために使用します。

例えば、スローな前後の動きにしたい場合、非常に高く若干幅広のボックスを必要とするかもしれません。一方、少し動きを増やしたいが移動後にある位置に落ち着かせたい場合は、低くより幅が広いボックスを作成します。

Local Joint Offset は、コンストレイントをアタッチするために使用するオフセットで、回転の基点を決めます。これを 0 のままにすると、どこから回転してよいかわからないため、何も動かない場合があります。必要な動きになるまでこの値を調整します。

[Constraint] のセクションで、動きの範囲を定義することができます。この範囲は、ビジュアライザーで確認できます。0 のままにすると何も影響がありません。そこに値を入力すると移動の範囲が示されます。

映像による AnimDynamics の概要、ヒントとコツ、 Paragon でのユース ケースについては、以下の AnimDynamics Twitch Stream をご覧ください。

開始するには、 Animation ブループリント の AnimGraph 内で AnimDynamics ノードを作成します。ひとつの動的ボーン毎または連続する動的チェーンに対してひとつのノードを作ります。すべてのビジュアル化、コンストレイント、ボディ、およびシミュレーションの設定は、各ノードで設定されます。

AnimDynamicsNode.png

ピン

説明

入力ピン

External Force

チェックを入れた場合 (ワールド空間で指定)、シミュレーションですべてのボディに適用する外部の力です。

Component Pose

トランスフォームさせる入力ポーズです。

Alpha

スケルタル制御で適用されるトランスフォームの重み付けを決定するためのアルファ値として使用する [0.0, 1.0] 範囲の浮動小数点値です。値 0.0 は入力ポーズに最大限の重み付けをし、値 1.0 は制御の計算をしたトランスフォームに対し最大限の重み付けをします。

出力ピン

Pose (Blank)

トランスフォーム適用後の最終ポーズ

AnimDynamics ノードも 4.11 で導入された LOD Threshold システムの影響を受けます。 AnimDynamics ノードの [Details (詳細)] パネルにこの設定が表示されます。

perf.png

プロパティ

説明

LOD Threshold

このノードで実行が認められている最高 LOD (Level of Detail) です。例えば、LOD Threshold を 2 に設定すると、LOD 2 になるまでは実行しますが、コンポーネントの LOD が 3 になると無効になります。

AnimDyamics の使用手順については、 動的アニメーションを作成する をご覧ください。

Unreal Engine のドキュメントを改善するために協力をお願いします!どのような改善を望んでいるかご意見をお聞かせください。
調査に参加する
閉じる