その名のとおり、ジョイントはゲームオブジェクトをアタッチする機能です。Rigidbody 2D コンポーネントをアタッチしたゲームオブジェクトや、ワールド空間内の固定された位置にのみ 2D ジョイントをアタッチすることができます。
2D ジョイントはすべて、名称の最後に「2D」とあり、「2D」がない場合は 3D ジョイントです。2D ジョイントは 2D のゲームオブジェクトに使用し、3D ジョイントは 3D のゲームオブジェクトに使用します。
(2D ジョイントに関するバックグラウンド情報は、以下の詳細とヒントを参照してください)
さまざまなタイプの 2D ジョイントがあります。プロパティーについての詳細な情報は、各ジョイントのリファレンスページを参照してください。
Distance Joint 2D - リジッドボディ物理特性で制御された 2 つのゲームオブジェクトをアタッチし、オブジェクト間の一定の距離を保ちます。
Fixed Joint 2D - 二つの互いにつながったオブジェクトの相対位置を保ちます。そのため、これらのオブジェクトは、常に決められた位置と角度によってオフセットされます。例えば、オブジェクト同士が強固に接続されているかのように動く必要が有る場合に使います。互いに離れる事はできず、近づくこともできず、互いに対して回転する事もできません。また、このジョイントは、それほど強固でない柔軟な接続を作成するのにも利用できます。
Friction Joint 2D - リジッドボディ物理特性で制御されている 2 つのゲームオブジェクト間の線速度と角速度を 0 に減速します (つまり、それらのオブジェクトを減速し、静止させます)。 動きに抵抗しつつ回転するプラットフォームなどがその例です。
Hinge Joint 2D - リジッドボディ物理特性で制御されているゲームオブジェクトを、空間のある一点を中心に回転できるような点にアタッチします。はさみの支点などがその例です。
Relative Joint 2D - リジッドボディ物理特性に制御されている 2 つのゲームオブジェクトの位置を相対的に保ちます。このジョイントは、2 つのオブジェクトを互いにオフセットにするのに使用します。スペースシューティングゲームで、プレーヤーが追従する予備のガンバッテリーを持っているのがこの例です。
Slider Joint 2D - リジッドボディ物理特性で制御されているゲームオブジェクトを空間の線に沿ってスライドさせます。引き戸などがその例です。
Spring Joint 2D - リジッドボディ物理特性に制御されている 2 つのゲームオブジェクトを、バネで連結されているかのように動かします。
Target Joint 2D - 他のジョイントのように別のリジッドボディオブジェクトにアタッチせず、指定のターゲットにアタッチします。スプリングジョイントと同タイプで、例えば、オブジェクトを重力の影響で運動させるような場合に使用します。
Wheel Joint 2D - 車輪とサスペンションの動きを表現します。
制約
すべてのジョイントにおいて、リジッドボディ 2D の動きに適用できる一つ以上のコンストレイントが利用できます。コンストレイントとは、ジョイントが永久に壊れない事を保障する「規則」です。さまざまな種類のコンストレイントが可能ですが、1 つのジョイントにつき、たいていは 2–3、時には 1 つだけ設定されます。リジッドボディをライン上や、ある位置にとどまらせるように動きを制限するコンストレイントもあれば、モーターのように、あるスピードを維持しようと、リジッドボディオブジェクトを回転させたり、動かしたりする「動的」なコンストレイントもあります。
一時的な制約破壊
物理システムは、コンストレイントが一時的に壊れそうになるのを予測します。例えば、オブジェクトがコンストレイントされた距離よりも遠くに移動しようとする場合や、モータースピードコンストレイントよりも速く移動しようとする場合などです。コンストレイントが壊れない状態なら、ジョイントには力がかからないので、大した影響はありません。コンストレイントが壊れそうな時には、それを修正する力がジョイントに働きます。上記で述べた ‘driving’ のコンストレイントの場合は、距離を維持したりモータースピードを確保しようとします。ただし、この力は、いつでも瞬時にコンストレイントを修正するわけではありません。たいていは、瞬時に修正しますが、時間と共に修正されることもあります。
このタイムラグがジョイントを「ストレッチ」させたり、「やわらかく」見せたりします。タイムラグは、物理システムが制約を修正するために、ジョイントに力を加えることによって発生します。一方で、同時に制約を壊そうする他のゲーム内物理力もあります。ゲームオブジェクトには相反する力が作用するのに加えて、ジョイントの中には、他より安定していてより早く反応するものがあります。
ジョイントにどんな制約が使われようと、ジョイントは制約を修正するのに、フォースしか使えません。フォースは、線状 (直線的) か角度 (トルク) どちらかです。
ヒント ジョイントに相反する力を作用させて、ジョイントがアタッチされているリジッドボディオブジェクトに大きな力を働かせる場合、特に大規模なものである場合は、常に注意深く行ってください。
永久に壊れたジョイント
すべてのジョイントには、直線力と角度トルク力が指定された範囲を超えると、完全に動きを停止する機能 (ブレーク) があります。これらは、 ブレークフォース と ブレークトルク です。
両方とも制限範囲はデフォルトで Infinity (制限なし) に設定されています。
ブレークフォース や ブレークトルク が制限範囲を超えると、ジョイントは壊れ、コンポーネントはゲームから自己消滅します。