Choose your operating system:
Windows
macOS
Linux
Rigid Body スケルタル制御ノード (以下の図) を使用すると、高性能の Immediate Mode PhysX API を使用して、キャラクターに対して軽量に物理シミュレーションを行うことができます。 Rigid Body ノードは Animation ブループリント の AnimGraph に追加することができ、Blend ノード と併せて使用することもできます。これにより、あるポーズからシミュレーションした物理ステートに切り替えることができます。 このシミュレーションを使うキャラクターは、ワールドで静的ジオメトリとのコリジョンを起こすこともできます。
Rigid Body ノードの一般的な用途としては、ポニーテールやチェーンなど、物理を適用して揺らしたいボーンを持つキャラクターでの使用があります。
上の図では、キャラクターの頭部から出ているホースには Physics アセットがあり、これが Animation ブループリント内で Rigid Body ノードと共に使用されます。
入力ピンと出力ピン
次の表には、利用可能な入力ピンおよび出力ピンと、それらの用途の定義が記載されています。
ピン |
説明 |
---|---|
External Force |
ワールド空間で均一な外力を適用します。例えば、コンポーネント空間でシミュレーションしながら、簡単に動きの慣性を模倣することができます。 |
Component Pose |
コンポーネント空間からポーズを取り込み、コンポーネント空間にポーズを出力します。 |
Alpha |
現在のスケルタル制御の強さです。 |
RigidBody ノードの設定例
このノードを使用する前に、シミュレートする 物理ボディ を [Physics Asset] で選択して [Simulated] に設定します。
上の図では、キャラクターの頭から出ているホースに関連する各ボーンで物理をシミュレーションするように設定しました。
[Physics Asset] が設定されている状態で、Animation ブループリント の [AnimGraph] 内で、Rigid Body ノードと、使用するタイミングを定義するのに必要なロジックを追加します。
上の図では別の Animation ブループリントからデータを取り込んで、Rigid Body ノードを介して入力し、Final Animation Pose を終了しています。
AnimGraph で Rigid Body ノードを選択した状態で、[Details(詳細)] パネルでノードがどのように使われるかを定義するプロパティを変更することができます。
プロパティ |
説明 |
---|---|
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 値を設定します。 |
プロパティ |
説明 |
---|---|
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 を使用して、シミュレーションをリセットします。