Version: 2021.1
言語: 日本語
Physics Material 2D
Distance Joint 2D

2D ジョイント

その名の通り、ジョイントはゲームオブジェクトをつなげます。2D ジョイントは Rigidbody 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 つ以上の制約を適用できます。制約とは、ジョイントが永久に壊れないようにする “規則” です。さまざまな種類の制約が可能ですが、1 つのジョイントにつき、たいていは 2–3、時には 1 つだけ設定されます。リジッドボディをライン上や、ある位置にとどまらせるように動きを制限する制約もあれば、モーターのように、あるスピードを維持しようと、リジッドボディオブジェクトを回転させたり、動かしたりする “動的” な制約もあります。

一時的に破られた制約

物理システムでは、制約が一時的に破られてしまうこともありえます。例えば、オブジェクトが制約された距離よりも遠くに移動しようとする場合や、モータースピードの制約よりも速く移動しようとする場合などです。制約が壊れない状態では、ジョイントには力がかからないので、大した影響はありません。制約が壊れそうな時には、それを修正する力がジョイントに働きます。上記で述べた ‘driving’ の制約の場合は、距離を維持したりモータースピードを確保しようとします。ただし、この力は、いつでも瞬時に制約を修正するわけではありません。たいていは、瞬時に修正しますが、経時的にに修正されることもあります。

このタイムラグがジョイントを “ストレッチ” させたり、“やわらかく” 見せたりします。タイムラグは、物理システムが制約を修正するために、ジョイントに力を加えることによって発生します。一方で、同時に制約を壊そうする他のゲーム内物理力もあります。ゲームオブジェクトには相反する力が作用するのに加えて、ジョイントの中には、他より安定していてより早く反応するものがあります。

ジョイントにどんな制約が使われようと、ジョイントは制約を修正するのに、フォースしか使えません。フォースは、線状 (直線的) か角度 (トルク) どちらかです。

ヒント ジョイントに相反する力を作用させて、ジョイントがアタッチされているリジッドボディオブジェクトに大きな力を働かせる場合、特に大規模なものである場合は、常に注意深く行ってください。

恒久的に破られた制約

すべてのジョイントは、力が指定された制限を超えると完全に動作を停止する (つまり壊れる) 能力があります。過大な直線的力による破損を起こす限界を “破壊力” といいます。 過大なトルク力で破損する限界を “破損トルク” といいます。

  • ジョイントに直線的力が作用している場合、Break Force オプションを適用できます。
  • ジョイントに角度 (回転) 力が作用している場合、Break Torque オプションを適用できます。

これらの制限はどちらも、あらかじめ Infinity です。つまり、制限がないということです。

Break ForceBreak Torque が制限を超えると、ジョイントは壊れ、ゲームオブジェクトから自動的に削除されます。

Physics Material 2D
Distance Joint 2D