Version: Unity 6.0 (6000.0)
言語 : 日本語
CCD (連続的衝突判定)
投機的 CCD

スイープに基づく CCD

スイープに基づく CCD (連続的衝突判定) は、Continuous モードおよび Continuous Dynamic モードのための CCD (連続的衝突判定) アルゴリズムです。

静的コライダー (Rigidbody を持たないゲームオブジェクト) とのみ衝突する物理ボディには、Continuous を使用します。移動する動的コライダー (動的な Rigidbody を持つゲームオブジェクト) と衝突する物理ボディには、Continuous Dynamic を使用します。

Continuous および Continuous Dynamic は、最も正確な衝突判定モードです。ただし、計算負荷が最も高い処理でもあります。さらに、直線運動の結果として発生する衝突に対してのみ機能します。物理ボディの回転の結果として発生する衝突 (例えば、ピンボールフリッパーがそのピボットで回転するときにボールに衝突するなど) は検出できません。

スイープに基づく CCD を理解する

スイープに基づく CCD は、衝突の可能性を計算するために衝突の瞬間 (Time-Of- Impact、TOI) のアルゴリズムを使用します。これを行うために、アルゴリズムはオブジェクトの現在の速度でオブジェクトの前方の軌道に沿って「スイープ」するか、検出します。

 ある時間ステップから次の時間ステップへのスイープに基づく衝突判定。詳細は、以下の凡例を参照してください。
ある時間ステップから次の時間ステップへのスイープに基づく衝突判定。詳細は、以下の凡例を参照してください。

上の画像では、以下を示しています。

  • A: 開始位置にあるオブジェクト
  • B:オブジェクトの現在の速度に基づいて、現在と次の時間ステップとの間にオブジェクトが通過すると予測される領域。
  • C 1 つの物理時間ステップの後、新しい位置にあるオブジェクト

オブジェクトの移動方向で接触がある場合、アルゴリズムは衝突の時刻を計算し、その時刻になるまでオブジェクトを動かします。このアルゴリズムは、それ以降のサブステップを実行できます。最も重要なのは、衝突後に速度を再計算し、新しい軌道で再スイープできることです。

 アルゴリズムが障害物を検出した場合のスイープに基づく衝突判定。詳細は、以下の凡例を参照してください。
アルゴリズムが障害物を検出した場合のスイープに基づく衝突判定。詳細は、以下の凡例を参照してください。

上の画像では、以下を示しています。

  • A: 開始位置にあるオブジェクト
  • B:スイープに基づく CCD アルゴリズムが衝突を予測する位置にあるオブジェクト
  • C 1 つの物理時間ステップ後の元の予測位置
  • D:スイープに基づく CCD アルゴリズムによって検出される、直線パスに割り込むコライダー

スイープに基づく CCD は、特にプロジェクトで広く使用されている場合、パフォーマンスに大きな影響を与える可能性があります。スイープに基づく CCD を設定した多数の高速オブジェクトが近接していると、物理エンジンはより多くのスイープと CCD のサブステップを処理する必要があるため、CCD のオーバーヘッドが急速に増加します。

スイープに基づく CCD には、直線 (またはディレクショナル) スイープしか実行できず、角度 (または回転) スイープは実行できないという制限があるため、物理ボディが回転した場合に生じる可能性のある衝突を予測できません。例えば、ピンボールマシンのフリッパーは、一端が固定され、固定点を中心に回転します。回転は角運動のみで、直線運動はありません。オブジェクトの回転も考慮する必要がある場合は、投機的 CCD (連続的衝突判定) を使用します。

CCD (連続的衝突判定)
投機的 CCD
Copyright © 2023 Unity Technologies
优美缔软件(上海)有限公司 版权所有
"Unity"、Unity 徽标及其他 Unity 商标是 Unity Technologies 或其附属机构在美国及其他地区的商标或注册商标。其他名称或品牌是其各自所有者的商标。
公安部备案号:
31010902002961