2Dジョイントを使う
ℹ️ 留意事項
この記事は Godot 3から Godot 4 へ内容の書き換え中です。 Godot4では存在しない変数、関数が含まれている場合があります。もしその場合はリポジトリのIssuesまでご報告ください。
課題
GodotのJoint2Dノードについて理解したい。
解決策
ジョイントは、接続された物理オブジェクトの動きを制限するために使います。任意のジョイントノードには、PhysicsObject2D から拡張される2つのボディを結合が必要です。
プロパティ
これらのプロパティはすべての関節ノードに共通です。
- Node A and Node B:割り当てられた物理ボディ
- Bias:両オブジェクトが離れる方向に関節が引き寄せる速度。デフォルト値は
0です - Disable Collisions:接続されたオブジェクト間の衝突を考慮しないようにできます。デフォルトは
true(有効)です
以下の3種類の Joint2D があります。すべての例で、1つの RigidBody2D がジョイントを介して StaticBody2D に接続されています。画面で「コリジョン形状を表示」が有効化されているため、ジョイントの表現を確認できます。
PinJoint2D
「ピン接合」は、2つの部材を1点で接続し、自由に回転できるようにします。
ピン接合部の Softness プロパティにより、接続にある程度の「弾力」が与えられます。この値はデフォルト値の 0(移動不可)から最大値 16 まで設定できます。
DampedSpringJoint2D
この継手はスプリング状の力によって2つの部材を連結します。
以下のプロパティでスプリングの挙動を調整できます。
- Length : 関節の最大許容長値
- Rest Length : 外力や運動が作用していない状態における関節の長さ
- Stiffness : ばねの「伸びにくさ」、すなわち外力に対する抵抗強度を表す指標
- Damping : ばねが「反発動作」を停止する速度特性を示すパラメータ
GrooveJoint2D
この関節は、接続された物体が直線的に移動するように制約します。
デフォルトでは垂直方向に配置されますが、ノードを回転させることでこれを変更できます。
以下のプロパティは溝の動作を制御します。
- Length:溝の全長。この最大距離を超える位置まで付属パーツは移動できません。
- Initial Offset:溝に沿った起点となる「位置」です。