Version: 2023.1
言語: 日本語
Target Joint 2D
Constant Force 2D

Wheel Joint 2D

Wheel Joint 2D は、移動できるオブジェクトの、ホイールの回転をシミュレートする際に使います。オプションでモーター駆動力を付加できます。車体本体とホイールの距離を保つためには、サスペンションスプリングを用います。

プロパティ

プロパティ 機能
Enable Collision このプロパティを有効にすると、つながれた 2 つのゲームオブジェクトの衝突が可能になります。
Connected Rigid Body このジョイントと接続するもう 1 つのゲームオブジェクトを指定します。ここを None にすると、もう一方の端が、Connected Anchor 設定によって定義された空間の点に固定されます。入力欄の右側にある丸いアイコンを選択すると、接続先オブジェクトのリストを見ることができます。
Auto Configure Connected Anchor このプロパティを有効にすると、この Hinge Joint 2D が接続する他のオブジェクトのアンカー位置が自動的に設定されます。このプロパティを有効にすると、Connected Anchor プロパティの座標を入力する必要はありません。
Anchor ジョイントの端点がこのゲームオブジェクトの (Rigidbody 2D の X、Y 座標の) どこに接続するかを定義します。
Connected Anchor ジョイントの終点が他のゲームオブジェクトに接続する位置 (Rigidbody 2D 上の x、y 座標) を定義します。
Suspension これを選択すると、このプロパティの設定が開きます。
Damping Ratio スプリングの振動を抑える度合いを設定します。0 - 1 の範囲で、値が大きいほど動きが小さくなります。
Frequency ゲームオブジェクトが目的の分離距離に近づいていく間の、スプリングの振動周波数 (単位: 周/秒) を設定します。範囲は 0 - 1,000,000 で、値が高いほどスプリングが硬くなります。ノート: Frequency を 0 に設定すると、最も硬いスプリングになります。
Angle サスペンションのワールドの移動角度を設定します。
Use Motor これを有効にすると、モーター力をジョイントに適用します。
Motor これを選択すると、このプロパティの設定が開きます。
Motor Speed モーターが到達する目標速度 (度/秒)
Maximum Motor Force ターゲット速度に到達するまでにモーターが加えることのできる最大の回転力 (Torque) を設定します。
Break Action 力またはトルクのしきい値を超えた時に実行されるアクションを設定します。
Break Force 力のしきい値を設定します。このしきい値を超えると、ジョイントが、選択された Break Action を実行します。デフォルト値は Infinity 設定されており、これは超えることができません。したがって、しきい値がこの値のままである場合は Break Action は実行できません。
Break Torque 力のしきい値を設定します。このしきい値を超えると、ジョイントが、選択された Break Action を実行します。デフォルト値は Infinity 設定されており、これは超えることができません。したがって、しきい値がこの値のままである場合は Break Action は実行できません。

このジョイントの使用

ホイールとサスペンションをシミュレートするためにジョイントを使います。ジョイントの目的は、無限に長い直線上にある二点の位置を保つ事です。重ね合わせる事も可能です。それら 2 点は、2 つの Rigidbody2D コンポーネント、または、Rigidbody2D コンポーネントとワールド座標の固定位置に設定できます (ワールド座標の固定位置に接続するときは、Connected Rigidbody を None に設定します)。

Wheel Joint 2D は、 Slider Joint 2D (モーターやコンストレイント制限は無し) と Hinge Joint 2D (コンストレイント制限は無し) の組み合わせのような挙動をします。

ジョイントは、接続されたリジッドボディ双方を直線上に保つための直線的な力、直線上にあるオブジェクトを回転させるための角モーター、ホイールサスペンションをシミュレートするためのスプリング、を適用します。

Maximum Motor SpeedMaximum Motor Force (ジョイントのトルク) を調整して、角モーターの速度を設定し、2 つのリジッドボディオブジェクトを回転させます。

さまざまな度合いのサスペンションをシミュレートするために、ホイールサスペンションの硬さと動きを設定できます。例えば、硬くてほとんど動かないサスペンションのシミュレーションは、以下の通りです。

  • Frequency を高く (1,000,000 が最高です) 設定すると、サスペンションが硬くなります。

  • Damping Ratio を高く (1 が最高です) 設定すると、サスペンションがほぼ動かなくなります。

よりルーズで自由に動くサスペンションをシミュレートするには、以下の設定を使用します。

  • Frequency を低く設定すると、サスペンションが緩くなります。

  • Damping Ratio を低く設定すると、よく動くサスペンションになります。

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

  • 2 つのリジッドボディオブジェクト上の 2 つのアンカーポイント間の特定の線からの相対的な直線距離を維持する。
  • 2 つのリジッドボディオブジェクト上の 2 つのアンカーポイント間の角速度を維持する (Maximum Motor Speed で速度を設定し、Maximum Motor Force で最大トルクを設定します。)

このジョイントは、物理制御のオブジェクトを作成するのに使う事ができます。回転軸で接続し、設定したラインから外れないようにしなくてはいけないようなオブジェクトです。例えば、

  • 回転用のモーターを持ったタイヤと、サスペンションで可能な動きを定義する線をシミュレーションします。

ホイールコライダーとの動作の違い

Wheel Collider が 3D の物理演算を使うのとは異なり、Wheel Joint 2D は、力が加わったときに回転する、独立した Rigidbody オブジェクトをホイールとして使います。(対照的に、Wheel Collider は、レイキャストを使ってサスペンションをシミュレートしていて、ホイールの回転は、単に見た目上の効果です。)ホイールオブジェクトは通常、Physics Material 2D を適用した Circle Collider 2D にすると、ゲームプレイにちょうどよいトラクションになります。

その他の参考資料

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

WheelJoint2D

Target Joint 2D
Constant Force 2D