揺れるシャンデリア、水車を作成する、または一般の領域に 物理ボディ を維持したい場合、Physics Constraint Actor (物理コンストレイント アクタ) が必要となります。このページでは、Physics Constraint アクタの使用方法を説明します。
コンストレイントは基本的にジョイントの 1 つのタイプです。2 つのアクタを接続し (おそらく 1 つは物理的にシミュレーションします)、制限や力を適用することもできます。Unreal Engine は非常に柔軟かつデータ ドリブンのコンストレイント システムです。オプションを変更することで、デザイナーは様々な種類のジョイントを作成することができます。エンジンにはデフォルトでジョイントに種類 (ボールアンドソケット、ヒンジ、プリズマティック) がついています。こららの違いは設定だけです。どの種類のジョイントでもいいので、自分だけの設定を作ってみましょう。
Physics Constraint アクタ
-
Physics Constraint アクタは、[Place Actors (アクタを配置)] パネルの [All Classes (すべてのクラス)] タブにあります。
-
他のアクタの場合と同様に、アクタをビューポートにクリックしドラッグしてレベルに入れます。
-
レベルに入れたら、2 つのアクタが制約するものを [Details (詳細)] ペインまたは Constraint カテゴリを展開して指定できます。
- 選択したいアクタの検索には、プルダウンでアクタを検索して選択、あるいは "eye dropper" ![] (eyedropper_button.png) アイコンを使ってビューポートからアクタを選択します。
-
Constraint Actor 2 に対してステップ 4 を 繰り返します。
-
希望する位置に Physics Constraint アクタと制約されたアクタを配置します。
上の例では、 3 つのアクタすべて (2 つのボックスと物理コンストレイント) を同時に選択してから、赤い制限ボックスが青い制限ボックスの上にくるように 90 度回転します。これにより物理コンストレイントも回転するので、Angular Swing Motions が正しい軸上で行われます。
-
少なくとも 1 つの制約されたアクタ上で 物理を有効化します。
-
Physics Constraint アクタ に対して好きな設定をします。
この例では、以下のプロパティのみが変更されています。
- [Angular Swing 1Motion] と [Angular Swing 2Motion] を [ACM_Limited] にします。
- Swing 1Limit Angle と Swing 2Limit Angle が 25 度です。
- [Swing Limit Soft] を無効にします。
物理コンストレイント上のすべてのプロパティの影響については、詳細は「コンストレイントのリファレンス」を参照してください。
-
Play in Editor または Simulate in Editor で物理コンストレイントをテストします。
配置によって制約されたアクタに力を適用しなければなりませんが、全てのプロジェクト テンプレートで行えるわけではありません。RadialForceActor を使用できます。Physics Constraint アクタ と同様に「Classes」タブに同じ方法で置かれています。
このページで使用しているキューブを押すには、50000 の力があれば十分です。RadialForceActor の半径は画像に合わせて縮小しています。
スケルタル メッシュの留意事項
スケルタル メッシュが含まれている場合、適切なプロパティに対し コンストレイント ボーン に名前を付ける必要があります。このケースのボーンは、実際にはスケルタル メッシュの物理アセットの物理ボディです。物理ボディは関連づいているスキン ボーンに因んだ名前が付けられますが、物理アセットが全てのスキン ボーンに必要なわけではないので、指定する必要があります。
アクタ内のコンポーネント
アクタ内の特定のコンポーネントを制約したい場合は、適切なプロパティ内にコンポーネント名を付けることができます。アクタのルートが制約可能な場合、制約を受けるのはデフォルトのコンポーネントになります。ただし、制約されたアクタ 1 あるいは 2 のいずれかに有効なコンポーネント名を付ける場合、そのコンポーネントは物理コンストレイントのターゲットになります。このコンポーネントがスケルタル メッシュの場合、適切なプロパティにボーン名を付けることもできます。

機能的に、これら 2 つのアクタと物理コンストレイントは同じエフェクトを生み出しますが、右側のブループリントはポイントライトをルートの子供にすることで異なるエフェクトを生み出すことができます。キャラクターはルートだけではなくスケルタルメッシュとして物理カプセルを持っていますが、どちらも物理コンストレイントのターゲットになることができます。
物理コンストレイントが適用することができるコンポーネント名を付けると、バウンディング ボリュームがコンポーネントの周辺に表示されます。バウンディング ボリュームが表示されない場合、コンポーネント名を確認し、実際には物理コンストレイントだけが制限されるようにしてください。