Let's Enjoy Unreal Engine

Unreal Engineを使って遊んでみましょう

UE5 Physics Control Actorでお手軽物理セットアップ

UE5.1からPhysics Controlプラグインという物理システムが追加されています。
更にUE5.2からPhysics Contro Actorというアクターが追加され、より簡単に物理挙動のセットアップができるようになりました。

Physics Control(以下PC)では名前の通り物理の細かなコントールが可能になります。ただし設定はそれなりにややこしく、物理が使えるようになるまではそこそこ手間がかかっていました。そこで登場したのが、Physics Control Actor(以下PCA)です。PCAではこれまで複雑だった設定部分がある程度簡略され、BPでのノード設定も最小限までであれば不要となりました。

PCを使うためには最低限、コリジョンが設定された物理アセットがメッシュ側に設定されている必要があり、通常はラグドール用のコリジョンがあれば十分です。ここでは標準マネキンのものを使うので、オリジナルのモデルで使いたい場合には独自に物理アセットを用意してください。

それでは早速使ってみましょう。

プラグイン有効化

PCはプラグインなので、まずはプラグイン設定でオンにしておきます。

ちなみにPhysicsControlプラグインはUE5.2.1の段階では実験段階のプラグインですのでご注意ください。この後エディターを再起動して、アクター配置からPhysics Control Actorが追加されていれば準備OKです。


PCAを配置して設定

PCAをまずはレベル上に設置しましょう。その後に物理で動かしたいスケルタルメッシュアクターを配置します。ちなみにスタティックメッシュでも物理設定することができますが、今回はスケルタルメッシュのみで解説します。

両方の配置が完了したらまずはPCAを選択して、詳細をみてみましょう。

Physics Controlsカテゴリーの中の『Initial Character Contorls』を開いてみます。大量の設定がでてくると思いますが、まずは『Character Actor』に物理を設定したいスケルタルメッシュアクターを設定します。次に重要なのが、『Limb Setup Data』の配列で、ここに影響あるボーンを設定します。標準のマネキンの場合は以下のように設定すると良いです。

Spineのみ『Include Parent Bone』をチェックしておく必要があります。オリジナルのボーン構造を持つ場合はマネキンのボーンと比較して同じ位置にあるボーンと置き換えてみてください。

残りの設定部分も以下の通りに設定してみてください。

『World Space Control Data』の『Linear Strength』を3~5くらいにしておくとよいです。『Enable World Space Contros』にチェックを入れて、最後に『Physics Movement Type』を『Simulated』にしてみましょう。

これで一旦準備が完了したので次にいきましょう。

シミュレーションさせる

それでは実際にシミュレーションさせてみましょう。PIEで実行するか、Simulateのどちらかで実行してみましょう。

なぜかマネキンが転がってしまうような動作になってしまいました。このままではダメなようです。これは物理シミュレーションを行う時に更新モードをコンポーネント単位で実行する必要があるそうです。

というわけでスケルタルメッシュアクターの詳細を開いてみましょう。物理カテゴリー内に『Physics Transform Update Mode』を『Component Transform Is Kinematic』に設定します。これで物理シミュレーションの更新モードが変更されて、上手く直立できるようになります。

再度実行してみて、別のコリジョンを持つスタティックメッシュをスケルタルメッシュに当ててみましょう。※ちなみに実行中にスタティックメッシュを動かすためには可動性をムーバブルにしておく必要あり


足元など部分的に固定したい場合

全身が動く際に足元などを固定したい場合があります。その場合『Initial Body Modifiers』配列にボーンごとの設定を入れる必要があります。

以下の設定は『foot_r』と『foot_l』を追加して、『Movement Mode』を『Kinematic』にすることで足元を固定することができます。以下は設定例です。

この設定で動かした場合、足元が完全に固定されるようになります。必要に応じて固定したいボーンがあれば追加しておきましょう。


まとめ

Physics Controlはそのまま使おうとするとブループリントでの複雑な設定が必要ですが、Physics Control Actorを使うことで一切ノードを組むことなく動作させることが可能です。ただしこの機能はあくまでもレベルに存在している対象に対してのものなので、動的にスポーンしたりするものに対しては行うことができません。その場合は別途ブループリントを組むことになりますので、少し複雑な設定をする必要があります。

もし興味があれば公式からDL可能なUE5.2の機能別サンプルの『Physics Control』レベルを開くことでより詳細を確認できますので、確認してみてください。