Version: 2021.1
言語: 日本語
Package Manager
Physics 2D

Physics

Physics (物理演算) 設定 (Edit > Project Settings の順に移動し、次に Physics カテゴリを選択) を使用して、3D物理演算のグローバル設定を適用します。

ノート: 2D 物理演算のグローバル設定を管理するには、代わりに Physics 2D 設定を使用します。

3D Physics設定
3D Physics設定

これらの設定は、物理シミュレーションの精度の制限を定義します。一般的に言えば、より正確なシミュレーションを行う場合、処理のオーバーヘッドが増えます。そのため、これらの設定を使用すると、パフォーマンスに対し精度をどの程度犠牲にするかを設定することができます。詳細は、マニュアルの Physics を参照してください。

プロパティ 機能
Gravity すべての リジッドボディコンポーネントに適用される重力量。x, y, z 軸を使用して設定します。現実的な重力設定にするには、Y 軸を負の数にします。重力は、ワールド単位/ (秒 ^2) で定義されます。
注意 重力を増加すると場合によっては衝突をするために Default Solver Iterations も増加させる必要があります。
Default Material 個々のコライダーに物理マテリアルが割り当てられていない場合に、使用するデフォルトの物理マテリアルへの参照を設定します。
Bounce Threshold 速度の値を設定します。 2つの衝突するオブジェクトの相対速度がこの値より小さい場合、オブジェクトは互いに跳ね返りません。この値はジッタも減少させるため、非常に低い値に設定することは推奨されません。
Sleep Threshold キネマティックでないリジッドボディがスリープ状態になる可能性があるグローバルエネルギーの閾値を設定します。リジッドボディがスリープ状態のときはフレーム毎に更新されるわけではないため、リソースの負担は少なくなります。 リジッドボディの運動エネルギーを質量で割った値がこの閾値を下回る場合、スリープの候補となります。
Default Contact Offset 衝突検知システムが、接触判定をするために使用する距離の指定をします。この値は正の値でなくてはならず、また、もし0に近すぎる値を設定するとジッタの原因になります。デフォルト値は 0.01 です。コライダーは、Contact offset 値の合計値よりもこの距離が小さい場合のみ、衝突接触判定を生成します。
Default Solver Iterations すべての物理フレームで Unity が実行するソルバープロセスの数を定義します。ソルバーは小さな物理エンジンのタスクで、ジョイントの動きや重複するリジッドボディコンポーネント間の接触の管理など、多くの物理演算の相互作用を決定します。
これはソルバーの出力の質に影響を与えます。デフォルト以外の Time.fixedDeltaTime が使用されている場合や、高精度が必要な場合にプロパティを変更することが推奨されます。通常、ジョイントや接触によるジッタを低減するために使用されます。
Default Solver Velocity Iterations ソルバーが各物理フレームで行う速度処理の数を設定します。ソルバーが行う処理数が増えるほど、リジッドボディが跳ね返った後の速度の精度は高くなります。ジョイントしたリジッドボディコンポーネントで問題が発生する場合、または、ラグドールが衝突後に動きすぎる場合に、この値を増やしてください。
Queries Hit Backfaces Physicsクエリ( Physics.Raycastなど)がMeshColliderの裏面の三角形でヒットを検出したい場合は、このオプションを有効にします。デフォルトでは、この設定は無効になっています。有効にすると、物理クエリ (Physics.Raycast など) がメッシュコライダーの裏面の三角形の衝突を検知します。デフォルトでは、この設定は無効になっています。
Queries Hit Triggers Raycast、SphereCast、SphereTests などのレイが、トリガーが有効であるコライダーと交差するときに、ヒットを返すようにしたい場合は、このオプションを有効にします。個々のレイキャストは、この挙動をオーバーライドすることができます。デフォルトでは、この設定は有効になっています。
Enable Adaptive Force adaptive force を有効にするには、このオプションを有効にします。adaptive force は、積み重なったオブジェクトを通じて力が伝達される方法に影響し、より現実的な動作を得られます。デフォルトでは、この設定は無効になっています。
Contacts Generation 接触の生成方法を選択します。
Legacy Contacts Generation Unity 5.5 より前では、Unity は分離軸の定理 (SAT にもとづいた接触生成メソッドを使用していました。

PCM はより効率的ですが、古いプロジェクトでは、SAT の使用を続け、物理演算を微調整することを避ける方が簡単かもしれません。PCM を使用すると、バウンスがわずかに異なる場合があり、無駄な接触が接点バッファ (つまり、OnCollisionEnterOnCollisionStayOnCollisionExit に渡される Collision インスタンスに取得する配列) に残る場合があります。
アップグレードのアドバイス Unity 2018.2 以下で作成したプロジェクトをマイグレーションする場合、マニフォールド内のパッチをマージし、接触を選択するコードと動作するようにスクリプトを更新が必要な場合があります。
Persistent Contacts Manifold (PCM) 物理フレームごとに少ない接触数を生成し、より多くの接触データをフレーム間で共有します。さらに、PCM 接触生成パスはより正確であり、大抵、より良い衝突フィードバックを生成します。詳細は、Nvidia documentation on Persistent Contact Manifold を参照してください。
これが、デフォルト値に設定されています。
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 物理シミュレーションに使用する ブロードフェーズアルゴリズム を選択します。PhysX SDKRigid Body Collision に関する NVIDIA のドキュメントを参照してください。
Sweep and Prune Broadphase スィープ & プルーンブロードフェーズ衝突メソッドを使用します (つまり、1 つの軸に沿ってオブジェクトをソートすることで、離れているペアをチェックしないようにすることができます)。
Multibox Pruning Broadphase マルチボックスプルーニングはグリッドを使用し、各グリッドセルがスイープ & プルーンを実行します。通常これは、フラットな世界に多くのゲームオブジェクトがあるような場合に、パフォーマンスを向上させるのに役立ちます。
Automatic Box Pruning このアルゴリズムは Multibox Pruning のアルゴリズムと似ていますが、ワールドの境界と分割数を自動的に計算することもできます。一群のグリッドセルを維持し、通常のスイープ & プルーンのアプローチを使用して、重複する可能性のあるコライダーのペアを計算します。これは通常、1 つのスイープ & プルーンが多くの余分な誤検知を生成する大きなシーンで役立ちます。
World Bounds Multibox Pruning Broadphase アルゴリズムを使用する場合、遠くにあるオブジェクトが互いに影響を及ぼさないように、ワールドを囲む 2D グリッドを定義します。
このオプションは Broadphase TypeMultibox Pruning Broadphase に設定した場合にのみ使用できます。
World Subdivisions 2D グリッドアルゴリズムの X 軸と Z 軸に沿ったセルの数。
このオプションは Broadphase TypeMultibox Pruning Broadphase に設定した場合にのみ使用されます。
Friction Type シミュレーションに使用する摩擦アルゴリズムを選択します。
Patch Friction Type 低ソルバー反復回数でもっとも安定した結果をもたらす、基本的な強力な摩擦アルゴリズム。このメソッドは、タッチするオブジェクトのペアごとに最大 4 つのスカラーソルバー制約のみを使用します。
One Directional Friction Type クーロン摩擦モデルを単純化したもので、ある接触点の摩擦は、接触の法線の交互の接線方向に適用されます。これはパッチ摩擦よりもソルバーの反復回数が多くなりますが、2 方向モデルほどの精度はありません。Articulation body がこの摩擦タイプで動作するためには、Solver TypeTemporal Gauss Seidel に設定してください。
Two Directional Friction Type 一方向モデルと同様に、しかし両方の接線方向に同時に摩擦を適用します。そのため、ソルバーの反復回数は増えますが、精度は高くなります。すべての接触点で適用されるため、多くの接触点があるシナリオではパッチ摩擦よりもコストがかかります。Articulation body がこの摩擦タイプで動作するためには、Solver TypeTemporal Gauss Seidel に設定してください。
Enable Enhanced Determinism シーン内のシミュレーションは、(ゲームが決定的な順序でアクターを挿入するという条件で) 存在するアクターにかかわらず一貫しています。このモードは、この追加の決定を確実にするために、パフォーマンスを犠牲にします。
Enable Unified Heightmaps このオプションを有効にすると、メッシュ衝突と同じ方法で Terrain (地形) の衝突を処理します。
Solver Type シミュレーションに使用する PhysX ソルバーのタイプを選択します。
Projected Gauss Seidel デフォルトの PhysX ソルバー。
Temporal Gauss Seidel このソルバーは、より良い収束と高質量比のより良い処理を提供し、貫通を修正するときに導入されるエネルギーを最小限に抑え、ジョイントのオーバーストレッチに対する抵抗力を改善します。これは通常、デフォルトのソルバーでシミュレーション中に不安定な動作が発生した場合に役立ちます。
Layer Collision Matrix レイヤーベースの衝突 検出システムの動作を定義します。チェックボックスにチェックを入れて、Collision Matrix のどのレイヤーがどのレイヤーと相互作用するかを選択します。
Cloth Inter-Collision
Distance それぞれの インターコリジョンするクロス の周りのスフィアの直径を定義します。Unity は、シミュレーション中にこれらのスフィアが重なり合わないようにします。 Distance は、2 つのパーティクル間の最短距離よりも小さく設定する必要があります。距離が大きい場合、クロスのコリジョンが距離の制約に反してジッタが発生する場合があります。
Stiffness インターコリジョンするクロス のパーティクル間の分離の衝撃の強さ。クロスソルバーは、パーティクルを分離しておくのに十分な強さを計算します。


  • 2018–10–12 修正されたページ

  • 5.5で追加された設定: Default Solver Iterations, Default Solver Velocity Iterations, Queries Hit Backfaces, Enable PCM

  • Physics Manager 設定に関するドキュメントは 2017.4 で更新

  • 2018.3で追加されたFriction Type、Enhanced Determinism、Unified Heightmapsの物理演算の設定) NewIn20183

Package Manager
Physics 2D