Unity

【Unity】Rigidbodyの使い方(設定項目・摩擦抵抗・isKinematic)

この記事について

この記事では RigidbodyのInspector上の設定項目 を解説します。
摩擦抵抗や重力の扱い、isKinematic などのチェックボックスの意味を知ることで、スクリプトを書かなくても物理挙動を調整できるようになります。

この記事でわかること

  • Rigidbodyとは何か
  • Inspectorで設定できる各パラメータの意味
  • 摩擦抵抗(Drag / Angular Drag)の違い
  • isKinematicの役割

※ Colliderについては以下のサイトを参考にしてください。

UnityのRigidbodyとは?

Rigidbodyはオブジェクトに物理挙動(重力・衝突・加速度)を与えるためのコンポーネントです。
CubeやSphereなどにアタッチすると、落下や衝突が自然に再現されます。

Rigidbodyの設定方法

  1. Hierarchyでオブジェクトを選択
  2. InspectorでAdd Component → Rigidbodyを追加(今回は2Dは省略)
Unity Rigidbodyのコンポーネントの画像

Rigidbodyの設定項目(Inspector)

Unity Rigidbodyの設定の画像

Mass(質量)

  • オブジェクトの重さを表します。
  • 値が大きいと衝突時の押し返しや加速しにくさが増えます。

Drag(線形抵抗)

  • 移動に対する「空気抵抗」。
  • 値を大きくすると速度がすぐに落ちる

Angular Drag(角度抵抗)

  • 回転に対する抵抗。
  • 値を大きくすると回転が止まりやすくなる

Use Gravity

  • ON:重力の影響を受けて落下する。
  • OFF:重力の影響を受けない。

Is Kinematic

  • ON:物理シミュレーションの影響を受けない。
  • Transformをスクリプトやアニメーションで直接操作する時に使う。
  • OFF:通常の物理演算に従う。

Interpolate

  • 物体の移動を補間して「カクつき」を軽減する設定。
    • None:補間なし(デフォルト)
    • Interpolate:前フレームから補間
    • Extrapolate:次フレームを予測して補間

Collision Detection

  • 高速移動するオブジェクトが「すり抜け」しないようにする設定。
    • Discrete:通常(低負荷)
    • Continuous:高速移動する小物体向け
    • Continuous Dynamic:高速移動する大物体向け
    • Continuous Speculative:最も正確だが重い

Constraints

  • 移動や回転を制限する。
  • 例:X軸の移動を固定、Y軸の回転を固定など。
  • キャラクターの動きを制御するときによく使う。

Rigidbodyを物理挙動で動かす

Rigidbodyを用いて物理挙動をスクリプトで制御できます。以下の記事を参考にしてください。

まとめ

  • Mass:重さ
  • Drag / Angular Drag:摩擦抵抗(移動・回転)
  • Use Gravity:重力の有無
  • isKinematic:物理演算を使うかどうか
  • Interpolate:動きの滑らかさ調整
  • Collision Detection:すり抜け防止
  • Constraints:動きや回転の固定