Hinge Joint 2D
Slider Joint 2D

Relative Joint 2D

このジョイントコンポーネントはリジッドボディの物理演算に管理された2つのゲームオブジェクトの位置を、それぞれの場所を元に維持します。このジョイントは2つのオブジェクトがお互いから一定の位置と角度だけずれ続けるようにできます。どのくらいずれるかは自身で決められます。

RelativeJoint2DFixedJoint2D の違いについては以下の 詳細 を参照してください。

プロパティー: 説明:
Enable Collision 繋がっている2つのオブジェクトがお互いに衝突できるようにする場合はチェックを付けてください。
Connected Rigid Body このジョイントと繋げる他のオブジェクトを指定します。このプロパティーを None のままにすると、ほかのジョイントの端は空間上の点に固定されます。このフィールドの右にある円を選択し、接続するオブジェクトのリストを表示してください。
Max Force 接続されたオブジェクト間のリニア(直線)的なずれを設定します。高い値(最大値は 1,000)を設定するとこのずれを維持しようとする力も増します。
Max Torque オブジェクト間の角度(回転)動作を設定します。高い値(最大値は1,000)を設定するとこのずれを維持しようとする力も増します。
Correction Scale 理想の挙動を取るように、ジョイントを調節してください。(Max Force や Max Torque を増やすと、ジョイントが対象に届かないため挙動に影響する可能性があります。その問題を解決するためにこの設定を使用してください。)デフォルトで設定されている 0.3 はおおむね適切な値ですが、 0 から 1 の範囲で調節する必要があるかもしれません。
Auto Configure Offset このボックスにチェックすると、自動的に繋がっているオブジェクト間の距離と角度を設定・維持します。(このオプションを選択すると手動で Linear Offset and Angular Offset を設定する必要がなくなります)
Linear Offset 繋がったオブジェクトとの距離を指定し、維持するのに使用するローカル空間座標を入力してください
Angular Offset 繋がったオブジェクトとの角度を指定し、維持するのに使用するローカル空間座標を入力してください
Break Force 結合を解き、ジョイントを削除するのに必要な力のレベルを指定してください。Infinity は解除できないという意味です。
Break Torque 結合を解き、ジョイントを削除するのに必要なトルクレベルを指定してください。Infinity は解除できないという意味です。

詳細

( Joints 2D も参照してください。すべての 2D ジョイントに関する有用な背景情報の 詳細とヒント が得られます。)

このジョイントの目的は2点間の相対的な直線距離と角度のずれを維持することです。その2点は Rigidbody2D コンポーネントを持つオブジェクト2つか、Rigidbody2D コンポーネントと空間上の固定位置で指定できます(空間上の固定位置には Connected Rigidbody を None に指定することで接続できます)。

ジョイントは繋がっているリジッドボディに直線と回転(トルク)両方の力を適用します。このジョイントはきわめて力強く事前設定されている疑似モーターを使用します。ジョイントの Max ForceMax Torque の制限は高く設定されています。これらの値を低く設定するとモーターの力を抑えたり、完全に止めることもできます。

このジョイントには以下のとおり連立した2つの制限が用意されています。

  • 指定した2つのリジッドボディオブジェクト間の直線的なずれを維持する
  • 2つのリジッドボディオブジェクト間の初期角度のずれを維持する

例:

このジョイントは以下のような挙動の物理オブジェクトを構築する必要がある場合に使用できます。

  • お互いに近づけず、離れられないかのように距離を保ち続ける(離れる距離は指定できます。距離はリアルタイムで変更できます)
  • お互いに特定の角度を維持するように回転します(維持する角度は決められます)

結合を柔軟にする必要がある場合に使用するかもしれません。例えば、プレーヤーに特別な銃のバッテリーがあり、バッテリーは銃を追従するスペースシューターゲームがあるとします。 Relative Joint を使えば、銃のバッテリーはわずかに遅れて追従し、後を残すことができる一方で、プレーヤーの回転から遅れることはありません。

調節可能な力が必要な場合に使用するかもしれません。例えば、カメラがプレーヤーを追跡し続けるゲームなどです。

Fixed vs. Relative Joint

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

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