Rigidbody コンポーネントを使用して、ゲームオブジェクトに Rigidbody (リジッドボディ) を適用できます。Rigidbody は、ゲームオブジェクトの動きや位置を物理ベースで制御する方法を提供します。Transform プロパティを使用する代わりに、シミュレートされた物理的な力とトルクを使ってゲームオブジェクトを動かし、物理演算エンジンに結果を計算させることができます。詳細は Rigidbody の物理演算の概要 を参照してください。
Rigidbody のパフォーマンスをモニタリングするには、Physics Debug ビジュアライゼーション ツールを使用します。
プロパティ | 機能 |
---|---|
Mass | ゲームオブジェクトの質量をキログラム単位で定義します。デフォルトでは Mass は 1 に設定されています。現実世界と同様に、質量 (mass) は、物が重力によって落下する速さには影響しません。動きを遅くする抵抗力をシミュレートするには、Drag を使用してください。 |
Drag | 抵抗、空気抵抗、あるいは摩擦をシミュレートするために、Rigidbody の直線速度の減衰率を定義します。値を低くすると減衰速度が遅くなり、ゲームオブジェクトがより長く速く動きます (これは、現実世界の重い物体のシミュレーションに役立ちます)。値を高くすると減衰速度が速くなり、ゲームオブジェクトが短時間で減速します (これは、現実世界の軽い物体のシミュレーションに役立ちます)。 |
Angular Drag | 抵抗、空気抵抗、あるいは摩擦をシミュレートするために、Rigidbody の回転速度の減衰率を定義します。値を低くすると減衰速度が遅くなり、ゲームオブジェクトがより長く速く動きます (これは、現実世界の重い物体のシミュレーションに役立ちます)。値を高くすると減衰速度が速くなり、ゲームオブジェクトが短時間で減速します (これは、現実世界の軽い物体のシミュレーションに役立ちます)。Angular Drag を無限大に設定しても、ゲームオブジェクトの回転を止めることはできません。Angular Drag はデフォルトでは 0.05 に設定されています。 |
Use Gravity | Rigidbody に重力の影響を与えるかどうかを切り替えられます。有効にすると、物理演算システムによって、シミュレートされた重力の方向 (デフォルトでは y 軸上で下方) にゲームオブジェクトを動かす力が加えられます。Use Gravity はデフォルトでは有効になっています。 |
Is Kinematic | ゲームオブジェクトの動きを、物理ベースとキネマティックとの間で切り替えられます。Is Kinematic を有効にすると、物理演算システムは、ゲームオブジェクトを移動/回転させる力を加えることができません。その代わりに Unity が Transform によってゲームオブジェクトを移動/回転させます。詳細は Rigidbody の物理演算の概要: 物理ベースの動きをしない Rigidbody を参照してください。Is Kinematic は、デフォルトでは無効になっています。 |
Interpolate | Rigidbody の Interpolate (補間) 設定は、ランタイムで Rigidbody のモーションにジッターが見られる場合に、その見た目を滑らかにする 2 つのオプションを提供します。そのオプションとは Interpolate (内挿) と Extrapolate (外挿) です。 内挿と外挿はどちらも、物理演算の更新と更新の間に Rigidbody のポーズ (つまり位置と角度) を計算します。 どちらのオプションを使用するかは、ユースケースによって、より良いビジュアルが実現できるほうを選択してください。Interpolate プロパティの詳細については、Rigidbody への補間の適用 を参照してください。 |
- None | 内挿も外挿も適用しません。これがデフォルトのオプションです。 |
- Interpolate | 直前の 2 回の物理演算更新の Rigidbody のポーズと速度を使用して、現在のフレームの Rigidbody のポーズを計算し、適用します。 Interpolate は Extrapolate よりも正確ですが、物理演算更新 1 回分のタイムラグがあります。Interpolate の使用は通常、正確さが重要な場合に適しています。例えば、Rigidbody の速度が変化する場合や、他に Rigidbody の動きに影響を与える物理演算要素がある場合などです。 |
- Extrapolate | 直前の物理演算更新の Rigidbody のポーズと速度を使用して、次の物理演算更新の Rigidbody のポーズを予測することで、現在のフレームの Rigidbody のポーズの計算と予測を行います。 Extrapolate を使用すると、Rigidbody が本来あるべき位置より少し先を動いているように見え、若干不正確になることがあります。Extrapolate の使用は通常、正確さが重要でない場合に適しています。例えば、Rigidbody が一定の速度で動き、他に Rigidbody の動きに影響を与える物理演算要素がない場合などです。 |
Collision Detection | 物理演算システムがこの Rigidbody のコライダーとシーン内の他のコライダーとの衝突を判定する方法の定義です。Unity はコライダーのペアごとに 1 つのコリジョンを生成し、この Collision Detection プロパティに基づいて、衝突判定の方法を決定します。 デフォルトでは、Collision Detection は Discrete に設定されています。各種の衝突判定に関する詳細は、CCD (連続的衝突判定) を参照してください。 |
- Discrete | 物理演算システムが、非連続衝突判定を使用して、この Rigidbody のコライダーの衝突を計算します。高速な動きの衝突に関与しない Rigidbody の場合に Discrete を選択してください。Discrete 衝突判定は、あまり計算負荷が高くありません。 |
- Continuous | 物理演算システムが、スイープに基づく CCD を使用して、この Rigidbody のコライダーと静的なコライダー (つまり、関連付けられた Rigidbody がないコライダー) との衝突を計算します。Continuous は、Rigidbody が静的コライダーとの高速な動きの衝突に関与している場合に選択してください。スイープに基づく CCD は、Discrete や Continuous Speculative よりも計算負荷が高くなります。 |
- Continuous Dynamic | 物理演算システムが、スイープに基づく CCD を使用して、この Rigidbody のコライダーと (衝突判定が Discrete に設定されたコライダー以外の) 全てのコライダーとの間の衝突を計算します。Continuous Dynamic は、Rigidbody が高速な動きの衝突に関与する場合に選択してください。スイープに基づく CCD は、Discrete や Continuous Speculative よりも計算負荷が高くなります。 |
- Continuous Speculative | 物理演算システムが、投機的 CCD を使用して、この Rigidbody のコライダーと他の全てのコライダーとの衝突を計算します。Continuous Speculative は、衝突の精度が重要でない Rigidbody の場合に選択してください。Speculative 衝突判定の計算負荷は、Discrete より高くなりますが、Continuous や Continuous Dynamic よりは低くなります。 |
Constraints | Rigidbody の動きに制限を加えます。 |
- Freeze Position | ワールド座標の選択した軸で Rigidbody の移動を停止します。 |
- Freeze Rotation | ローカル座標の選択した軸で Rigidbody の回転を停止します。 |