3D 物理にグローバル設定を行うために、Physics Manager (物理マネージャー) を使用します。物理マネージャーにアクセスするには、メニューバーから Edit > Project Settings > Physics の順に選択します。2D 物理にグローバル設定を適用するには、 2D 物理設定 を使用します。
物理マネージャーの設定によって、物理的シミュレーションの精度の限度が決められます。一般的には、シミュレーションの精度を上げると、処理負荷が高くなります。ですから、物理マネージャーの設定で精度とパフォーマンスとの釣り合いを調整できます。詳細はマニュアルの Physics を参照してください。
プロパティー | 機能 |
---|---|
Gravity | すべての リジッドボディコンポーネントに適用される重力量。x, y, z 軸を使用して設定します。現実的な重力設定にするには、Y 軸を負の数にします。重力は、ワールド単位/ (秒 ^2) で定義されます。 注意 重力を増加すると場合によっては衝突をするために Default Solver Iterations も増加させる必要があります。 |
Default Material | このフィールドでは、個々のコライダーに何も割り当てられていない場合に使用するデフォルトの Physics マテリアルを定義します。 |
Bounce Threshold | このフィールドでは、速さの値を設定します。相対速度が指定した値未満のとき、 衝突する2 つのオブジェクトは跳ね返りません。この値により、ジッタも減るため、低すぎる値を設定することはお勧めしません。 |
Sleep Threshold | このフィールドでは、キネマティックでないリジッドボディ (すなわち、物理システムによって制御されていないリジッドボディ) がスリープ状態になる可能性があるグローバルエネルギーの閾値を設定します。リジッドボディがスリープ状態のときはフレーム毎に更新されるわけではないため、リソースの負担は少なくなります。 リジッドボディの運動エネルギーを質量で割った値がこの閾値を下回る場合、スリープの候補となります。 |
Default Contact Offset | このフィールドで、衝突検知システムが、接触判定をするために使用する距離の指定をします。この値は正の値でなくてはならず、また、もし0に近すぎる値を設定するとジッタの原因になります。デフォルト値は 0.01 です。コライダーは、Contact offset 値の合計値よりもこの距離が小さい場合のみ、衝突接触判定を生成します。 |
Default Solver Iterations | ソルバーは小さな物理演算エンジンのタスクで、ジョイントの動きや重なり合うリジッドボディコンポーネント間の接触の管理など多くの物理的な相互作用を決定します。各物理フレームで Unity が行うソルバー処理の数を決定するには Default Solver Iterations を使用します。この値はソルバー出力の品質に影響し、デフォルトでないTime.fixedDeltaTime を使用する場合は、プロパティーを変えることが推奨されます。そうでないと、設定に余計負荷がかかります。通常、ジョイントや接触で発生するジッタを削減するために使用します。 |
Default Solver Velocity Iterations | このフィールドで、ソルバーが各物理フレームで同時に扱う速度処理の数を設定します。ソルバーが行う処理数が増えるほど、リジッドボディが跳ね返った後の流出速度の精度は高くなります。ジョイントしたリジッドボディコンポーネントで問題が発生する場合、または、ラグドールが衝突後に動きすぎる場合に、この値を増やしてみてください。 |
Queries Hit Backfaces | 有効にすると、物理的クエリ (Physics.Raycast など) がメッシュコライダーの裏側の三角の衝突を検知します。この設定は、デフォルトで無効になっています。 |
Queries Hit Triggers | 有効にすると、テスト体 (Raycast、SphereCast、SphereTest など) がトリガーになっているコライダーと接触すると、ヒットを返します。個々のレイキャストは、この挙動をオーバーライドすることができます。この設定は、デフォルトで有効になっています。 |
Enable Adaptive Force | “adaptive force” は、積み重なったオブジェクト間で力を伝達する方法に影響します。このボックスにチェックすると、 adaptive force を有効にします。この設定は、デフォルトで無効になっています。 |
Contacts Generation | 接触の生成方法を選択します。Persistent Contacts Manifold (PCM): 物理フレームごとに発生する接触の再生成を少なくし、フレーム間でより多くの接触データを共有します。PCM 接触生成パスはより正確で、通常、より有効な衝突フィードバックを生成します。詳細は、Nvidia の Persistent Contact Manifold に関するドキュメントを参照してください。 Legacy Contacts Generation: 分離軸法を使用して接触を生成します (dyn4j.org の SAT ガイド を参照)。 PCM のほうが効率的ですが、Unity 5.5 より前のバージョンの Unity で作成されたプロジェクトでは、SAT の使用を継続し、物理計算の調整のし直しを避けるほうが簡単な場合があります。PCM を使用すると、バウンスがわずかに異なり、接触バッファー (つまり、 OnCollisionEnter 、OnCollisionStay 、OnCollisionExit に渡される接触インスタンスに取得した配列) に役立たない接触が送信されることがほとんどありません。 |
Auto Simulation | 物理シミュレーションを自動で走らせるか、または、明示的な制御を許可するか。 |
Auto Sync Transforms | Transform コンポーネントが変わるたびに、トランスフォームを物理システムと同期させるかどうか。 |
Contact Pairs Mode | 使用する接触ペア生成のタイプを選択します。 Default Contact Pairs: キネマティック - キネマティック、キネマティック - 静的のペアを除くすべての接触ペアからの衝突イベントとトリガーイベントを受信します。 Enable Kinematic Kinematic Pairs: キネマティック - キネマティック接触ペアからの衝突イベントとトリガーイベントを受信します。 Enable Kinematic Static Pairs: キネマティック - 静的コンタクトペアからの衝突イベントとトリガーイベントを受信します。 Enable All Contact Pairs:すべての接触ペアから衝突イベントとトリガーイベントを受信します。 |
Broadphase Type | 物理シミュレーションで使用するブロードフェーズアルゴリズムを、Sweep and Prune Broadphase か Multibox Pruning Broadphase (マルチボックスプルーニング) から選択します。マルチボックスプルーニングはグリッドを使用し、各グリッドセルはスイープ&プルーンを実行します。これは、通常、2 次元世界に多くのゲームオブジェクトがある場合、パフォーマンスを向上させるのに役立ちます。詳細は、NVIDIA の PhysX SDK と Rigid Body Collision を参照してください。 |
World Bounds | Multibox Pruning Broadphase アルゴリズムを使用する場合、離れたオブジェクトが互いに影響を与えないように、ワールドを囲む 2D グリッドを定義します。 このオプションは、Broadphase Type を Multibox Pruning Broadphase に設定する場合にのみ使用できます。 |
World Subdivisions | 2D グリッドアルゴリズムの x 軸と z 軸に沿ったセルの数。このオプションは、Broadphase Type を Multibox Pruning Broadphase に設定する場合にのみ使用できます。 |
Layer Collision Matrix | これを使って、レイヤーベースの衝突検出 の挙動を定義します。 |
Cloth Inter-Collision | Cloth のインターコリジョン のためにパーティクルを設定する場合に、クロスパーティクルの Distance と Stiffness を制御します。 |
2018–08–10 限られた 編集レビュー で修正されたページ
5.5で追加された設定: Default Solver Iterations, Default Solver Velocity Iterations, Queries Hit Backfaces, Enable PCM
Physics Manager 設定に関するドキュメントは 2017.4 で更新