Version: 2023.1
言語: 日本語
Hinge Joint 2D
Slider Joint 2D

Relative Joint 2D

Relative Joint 2D はリジッドボディの物理演算に制御される 2 つのゲームオブジェクトを接続し、互いの位置に基づいて位置を維持します。このジョイントを使用して、2 つのオブジェクトを指定した位置と角度で、互いにオフセットの状態に保ちます。

Relative Joint2DFixedJoint2D の違いについては、Fixed Joint 2D と Relative Joint 2D の比較 を参照してください。

プロパティ 機能
Enable Collision このプロパティを有効にすると、つながれた 2 つのゲームオブジェクトの衝突が可能になります。
Connected Rigid Body このジョイントと接続するもう 1 つのオブジェクトを指定します。ここを None にすると、もう一方の端が、Connected Anchor プロパティによって定義された空間の点に固定されます。入力欄の右側にある丸いアイコンを選択すると、接続先オブジェクトのリストを見ることができます。
Max Force 接続したゲームオブジェクト間のリニア (直線) の動きを設定します。値 (最大 1,000) を高くすると、オフセットを維持するために大きな力が必要になります。
Max Torque 接続したゲームオブジェクト間の角度 (回転) の動きを設定します。値を高くすると (最大 1000)、オフセットを維持するために大きな力が必要になります。
Correction Scale 必要な場合は、ジョイントを微調整して動作を修正します。Max Force または Max Torque を増加すると、ジョイントが目標に達しないなど、ジョイントの動作に影響し、この設定を調整して修正する必要があります。 デフォルト設定は 0.3 です。
Auto Configure Offset このプロパティを有効にすると、接続したオブジェクト間の距離と角度が自動的に設定され、維持されます。このプロパティを有効にすると、Linear OffsetAngular Offset を手動で入力する必要はありません。
Linear Offset 接続したオブジェクトとの距離を指定し、維持するのに使用するローカル空間座標を入力します。
Angular Offset 接続したオブジェクトとの角度を指定し、維持するのに使用するローカル空間座標を入力します。
Break Action 力またはトルクのしきい値を超えた時に実行されるアクションを設定します。
Break Force 力のしきい値を設定します。このしきい値を超えると、ジョイントが、選択された Break Action を実行します。デフォルト値は Infinity 設定されており、これは超えることができません。したがって、しきい値がこの値のままである場合は Break Action は実行できません。
Break Torque 力のしきい値を設定します。このしきい値を超えると、ジョイントが、選択された Break Action を実行します。デフォルト値は Infinity 設定されており、これは超えることができません。したがって、しきい値がこの値のままである場合は Break Action は実行できません。

このジョイントの使用

このジョイントの目的は 2 点間の相対的な直線距離と角距離 (オフセット) を維持することです。その 2 点は これら 2 つのポイントは、2 つの Rigidbody2D コンポーネント、または 1 つの Rigidbody2D コンポーネントとワールド内の固定位置です。ノート: Connected Rigidbody を None に設定して、ワールドの固定位置に接続します。

ジョイントは、接続されている両方の Rigidbody オブジェクトに直線と回転 (トルク) 力を適用します。 非常に強力になるように事前設定された模擬モーターを使用します。それには、高い Max ForceMax Torque 制限が適用されます。 これらの値を下げてモーターの出力を弱めたり、完全にオフにしたりすることができます。

このジョイントには同時に 2 つの制限があります。

  • 2 つのリジッドボディオブジェクト間に指定したリニアオフセットを維持すること。
  • 2 つのリジッドボディオブジェクト間に開始角度オフセットを維持すること。

このジョイントを使用して、以下を必要とする物理オブジェクトを構築できます。

  • 互いから離れたり、近づいたりすることができないかのように、お互いから距離を保つ。(相互の距離を設定できます。距離はリアルタイムで変更できます。)
  • 互いに特定の角度を維持するように回転する。(角度は設定できます)

用途によっては、次のような柔軟な接続が必要になる場合があります。例えば、プレイヤーが追加の銃バッテリーを備えたスペースシューティングゲームなどです。 Relative Joint を使用すると、後続の銃バッテリーが追従するときにわずかな遅れを生じますが、遅延なく砲台がプレイヤーとともに回転するようにすることができます。

一部の用途では、設定可能な力が必要になる場合があります。例えば、追跡するために設定可能な力を使用して、カメラがプレイヤーを追跡するゲームなどです。

Fixed Joint 2D と Relative Joint 2D の比較

FixedJoint2D はスプリング型のジョイントです。RelativeJoint2D は最大の力とトルクの両方か、どちらかを持ったモーター型のジョイントです。

  • Fixed Joint は直線、角度の相対的なずれを維持するのにスプリングを使い、 Relative Joint はモーターを使用します。ジョイントのスプリングかモーターを調節できます。
  • Fixed Joint はアンカーポイントと連動します (AnchoredJoint2D スクリプトを継承しています)。これにより、アンカー間の直線と角のオフセットを維持します。Relative Joint にはアンカーポイントがありません ( Joint2D スクリプトを直接継承しています)。
  • Relative Joint は直線と角度の相対オフセットをリアルタイムで修正することができます。Fixed Joint ではできません。

その他の参考資料

  • 他の 2D ジョイントに関する詳細は、2D ジョイント を参照してください。

RelativeJoint2D

Hinge Joint 2D
Slider Joint 2D