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 を有効にします。この設定は、デフォルトで無効になっています。 |
Enable PCM | このボックスにチェックを入れると、物理エンジンの永続的なコリジョン (PCM) 接触生成メソッドが有効になります。つまり、各物理フレームごとに再生される接触数が少なくなり、より多くの接触データが他のフレームと共有されます。PCM 接触の生成パスもより正確であり、通常は、より良い衝突フィードバックを生成します。詳細については、Nvidia documentation on Persistent Contact Manifold を参照してください。 注意: Unity 5.5 より前は、Unity は分離軸定理に基づいて SAT と呼ばれる接触生成メソッドを使用していました (dyn4j.org’s guide to SAT を参照)。PCM のほうが効率的ですが、古いプロジェクトでは、物理計算を調整する必要がないため、SAT の使用を続けるほうが簡単な場合があります。PCM はわずかに違うバウンスを起こし、コンタクトバッファ (つまり、 OnCollisionEnter 、OnCollisionStay 、OnCollisionExit に渡された衝突インスタンスでできた配列) では無駄な接触が少なくなります。 |
Auto Simulation | 物理シミュレーションを自動で走らせるか、または、明示的な制御を許可するか。 |
Auto Sync Transforms | Transform コンポーネントが変わるたびに、トランスフォームを物理システムと同期させるかどうか。 |
Layer Collision Matrix | これを使って、レイヤーベースの衝突検出 の挙動を定義します。 |
2017–05–18 限られた 編集レビュー で修正されたページ
5.5で追加された設定: Default Solver Iterations, Default Solver Velocity Iterations, Queries Hit Backfaces, Enable PCM