Rigidbody コンポーネントを使用して、ゲームオブジェクトに Rigidbody (リジッドボディ) を適用できます。Rigidbody は、ゲームオブジェクトの動きや位置を物理ベースで制御する方法を提供します。Transform プロパティを使用する代わりに、シミュレートされた物理的な力とトルクを使ってゲームオブジェクトを動かし、物理演算エンジンに結果を計算させることができます。詳細は Rigidbody の物理演算の概要 を参照してください。
Rigidbody のパフォーマンスをモニタリングするには、Physics Debug ビジュアライゼーション ツールを使用します。
プロパティ | 機能 |
---|---|
Mass | ゲームオブジェクトの質量をキログラム単位で定義します。デフォルトでは Mass は 1 に設定されています。現実世界と同様に、質量 (mass) は、物が重力によって落下する速さには影響しません。動きを遅くする抵抗力をシミュレートするには、Drag を使用してください。 |
Drag | 抵抗、空気抵抗、あるいは摩擦をシミュレートするために、Rigidbody の直線速度の減衰率を定義します。値を低くすると減衰速度が遅くなり、ゲームオブジェクトがより長く速く動きます (これは、現実世界の重い物体のシミュレーションに役立ちます)。値を高くすると減衰速度が速くなり、ゲームオブジェクトが短時間で減速します (これは、現実世界の軽い物体のシミュレーションに役立ちます)。 |
Angular Drag | 抵抗、空気抵抗、あるいは摩擦をシミュレートするために、Rigidbody の回転速度の減衰率を定義します。値を低くすると減衰速度が遅くなり、ゲームオブジェクトがより長く速く動きます (これは、現実世界の重い物体のシミュレーションに役立ちます)。値を高くすると減衰速度が速くなり、ゲームオブジェクトが短時間で減速します (これは、現実世界の軽い物体のシミュレーションに役立ちます)。Angular Drag を無限大に設定しても、ゲームオブジェクトの回転を止めることはできません。Angular Drag はデフォルトでは 0.05 に設定されています。 |
Automatic Center Of Mass | 物理演算システムが Rigidbody の形状とスケールに基づいて予測した重心を使用するには、Automatic Center Of Mass を有効にしてください。重心の X、Y、Z 座標を独自に設定する場合は無効にしてください。 |
Automatic Tensor | Automatic Tensor を有効にすると、Rigidbody に、接続されている全てのコライダーに基づいて物理演算システムが予測したテンソルおよびテンソルの回転が使用されます。質量 (Mass) と同様に、慣性テンソル (Inertia Tensor) は、Rigidbody を動かすために必要な力やトルクを定義します。ただし、Mass が直線運動に影響するのに対し、Inertia Tensor は回転運動に影響します。テンソルの X、Y、Z 座標を独自に設定するには、この設定を無効にしてください (以下のプロパティを参照)。 |
- Inertia Tensor | Rigidbody の慣性テンソルを定義します。Inertia Tensor の値が大きいほど、Rigidbody がその軸を中心に回転するために必要なトルクが大きくなります。 |
- Inertia Tensor Rotation | 慣性テンソルの回転を定義します。 |
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 の回転を停止します。 |
Rigidbody