Rigid Body ノード

Rigid Body ノードと、それを Animation ブループリント内で軽量物理シミュレーションとして使用する方法を説明します。

Windows
MacOS
Linux

Rigid Body スケルタル制御ノード (以下の図) を使用すると、高性能の Immediate Mode PhysX API を使用して、キャラクターに対して軽量に物理シミュレーションを行うことができます。 Rigid Body ノードは Animation ブループリントAnimGraph に追加することができ、Blend ノード と併せて使用することもできます。これにより、あるポーズからシミュレーションした物理ステートに切り替えることができます。 このシミュレーションを使うキャラクターは、ワールドで静的ジオメトリとのコリジョンを起こすこともできます。

RigidBodyNode.png

Rigid Body ノードの一般的な用途としては、ポニーテールやチェーンなど、物理を適用して揺らしたいボーンを持つキャラクターでの使用があります。

上の図では、キャラクターの頭部から出ているホースには Physics アセットがあり、これが Animation ブループリント内で Rigid Body ノードと共に使用されます。

入力ピンと出力ピン

次の表には、利用可能な入力ピンおよび出力ピンと、それらの用途の定義が記載されています。

RigidBodyPins.png

ピン

説明

External Force

ワールド空間で均一な外力を適用します。例えば、コンポーネント空間でシミュレーションしながら、簡単に動きの慣性を模倣することができます。

Component Pose

コンポーネント空間からポーズを取り込み、コンポーネント空間にポーズを出力します。

Alpha

現在のスケルタル制御の強さです。

RigidBody ノードの設定例

このノードを使用する前に、シミュレートする 物理ボディ を [Physics Asset] で選択して [Simulated] に設定します。

RigidBody_02.png

上の図では、キャラクターの頭から出ているホースに関連する各ボーンで物理をシミュレーションするように設定しました。

[Physics Asset] が設定されている状態で、Animation ブループリント[AnimGraph] 内で、Rigid Body ノードと、使用するタイミングを定義するのに必要なロジックを追加します。

RigidBody_11.png

上の図では別の Animation ブループリントからデータを取り込んで、Rigid Body ノードを介して入力し、Final Animation Pose を終了しています。

AnimGraph で Rigid Body ノードを選択した状態で、[Details(詳細)] パネルでノードがどのように使われるかを定義するプロパティを変更することができます。

RigidBodyDetails.png

プロパティ

説明

Override Physics Asset

使用する Physics アセットです。空の場合、スケルタル メッシュのデフォルトの Physics アセットが使用されます。

Override World Gravity

このボディに対する重力をオーバーライドするベクター値の指定を有効にします。

External Force

ワールド空間で均一な外力を適用します。例えば、コンポーネント空間でシミュレーションしながら、運動の慣性を簡単に模倣することができます。

Overlap Channel

このチャンネルは、衝突する静的ジオメトリを見つけるために使用します。

Component Space Simulation

true の場合、シミュレーションはコンポーネント空間で行われます。つまり、アニメートされたボディによってのみベロシティが継承されることを意味します。

Cached Bounds Scale

キャッシュされた境界の (実際の境界に対する) スケールです。これを増やすとパフォーマンスが向上する可能性がありますが、オーバーラップが機能しなくなる場合があります。値 1.0 では、キャッシュした境界を効果的に無効にします。

(As Pin) Alpha

ノード上または [Details] パネルで、アルファ プロパティをピンとして表示します。

Alpha Scale Bias

アルファ プロパティの最小および最大の Influence 値を設定します。

perf.png

プロパティ

説明

LOD Threshold

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

シミュレーションのベースとしてジョイントを使用する

バージョン 4.20 のエンジンでは、[Simulation Space (シミュレーション スペース)][Base Bone Space (ベースボーン スペース)] に設定して、Base Bone Ref として使用するボーンを選択することで、RigidBody ノードで指定したジョイントをシミュレーションのベースとして使用することができます。ただし、スケルタル メッシュ全体を移動して、ベース ボーンを個別に変更しても、ベロシティには影響がないことに留意してください。

次は、RigidBody ノードを使用して、武器に対して割り当てられているベース ボーンからシミュレーションを行う例です。

ダイナミクスをリセットする

RigidBody ノードでは Reset Dynamics もサポートされます。これを使用するには、ブループリントでスケルタル メッシュから Anim Instance を取得し、関数呼び出しである Reset Dynamics を使用して、シミュレーションをリセットします。

ResetDynamics

Select Skin
Light
Dark

新しい Unreal Engine 4 ドキュメントサイトへようこそ!

あなたの声を私たちに伝えるフィードバックシステムを含め、様々な新機能について開発をおこなっています。まだ広く使える状態にはなっていないので、準備ができるまでは、ドキュメントフィードバックフォーラムで、このページについて、もしくは遭遇した問題について教えていただけると助かります。

新しいシステムが稼働した際にお知らせします。

フィードバックを送信