Wheel Joint 2D は、移動できるオブジェクトの、ホイールの回転をシミュレートする際に使います。オプションでモーター駆動力を付加できます。車体本体とホイールの距離を保つためには、サスペンション “スプリング” を用います。
プロパティー | 機能 |
---|---|
Enable Collision | 接続された 2 つのオブジェクトが互いに衝突する場合は、チェックを入れます。 |
Connected Rigid Body | このジョイントと接続するオブジェクトを指定します。ここを None にすると、Connected Anchor 設定による定義で、ジョイントの一方の端が空間に固定されます。入力欄の右側にあるサークルを選択すると、接続先オブジェクトのリストを見ることができます。 |
Auto Configure Connected Anchor | 他のオブジェクトとこのジョイントを接続したときに、自動的に位置を固定する場合は、チェックを入れます。 (チェックを入れるのは Connected Anchor とまったく同じ事になります。) |
Anchor | The place (in terms of X, Y co-ordinates on the RigidBody) where the end point of the joint connects to this object. |
Connected Anchor | The place (in terms of X, Y co-ordinates on the RigidBody) where the end point of the joint connects to the other object. |
Damping Ratio | The degree to which you want to suppress spring oscillation in the suspension: In the range 0 to 1, the higher the value, the less movement. |
Frequency | The frequency at which the spring in the suspension oscillates while the objects are approaching the separation distance you want (measured in cycles per second): In the range 0 to 1,000,000 - the higher the value, the stiffer the suspension spring. |
Angle | The world movement angle for the suspension. |
Use Motor | Apply a motor force to the wheel? Check the box for yes. |
Motor | |
Motor Speed | Target speed (degrees per second) for the motor to reach. |
Maximum Motor Force | Maximum force applied to the object to attain the desired speed. |
Break Force | Specify the force level needed to break and so delete the joint. Infinity means it is unbreakable. |
Break Torque | Specify the torque level needed to break and so delete the joint. Infinity means it is unbreakable. |
有用なすべての 2D ジョイントの背景情報の詳細とヒントは Joints 2D を参照してください。
ホイールとサスペンションをシミュレートするためにジョイントを使います。ジョイントの目的は、無限に長い直線上にある二点の位置を保つ事です。重ね合わせる事も可能です。それら二点は、二つの Rigidbody2D コンポーネントか、Rigidbody2D コンポーネントとワールド座標の固定位置にできます。 (ワールド座標の固定位置に接続するときは、Connected Rigidbody を None に設定します)
Wheel Joint 2D は、 Slider Joint 2D (モーターやコンストレイント制限は無し) と Hinge Joint 2D (コンストレイント制限は無し) の組み合わせのような挙動をします。
ジョイントは、接続されたリジッドボディ双方を直線上に保つための直線的な力、直線上にあるオブジェクトを回転させるための角モーター、ホイールサスペンションをシミュレートするためのスプリング、を適用します。
Maximum Motor Speed と Maximum Motor Force (ジョイントのトルク) を調整して、角モーターの速度を設定し、二つのリジッドボディオブジェクトを回転させます。
ホイールサスペンションの固さと動きを設定することができます。
固くすると、サスペンションはほとんど動かなくなります。
Frequency を高く (1,000,000 が最高です) 設定すると、サスペンションが硬くなります。
Damping Ratio を高く (1 が最高です) 設定すると、サスペンションがほぼ動かなくなります。
緩めると、サスペンションが動くようになります。
Frequency を低く設定すると、サスペンションが緩くなります。
Damping Ratio を低く設定すると、サスペンションがよく動くようになります。
このジョイントには以下のとおり連立した2つの制限が用意されています。
例
このジョイントは、物理制御のオブジェクトを作成するのに使う事ができます。回転軸で接続し、設定したラインから外れないようにしなくてはいけないようなオブジェクトです。例えば、
Wheel Joint 2D の動作は Wheel Collider と異なります。
Wheel Collider が 3D の物理演算を使うのとは異なり、Wheel Joint 2D は、力が加わったときに回転する、独立した Rigidbody オブジェクトをホイールとして使います。(対照的に、Wheel Collider は、レイキャストを使ってサスペンションをシミュレートしていて、ホイールの回転は、単に見た目上の効果です。)ホイールオブジェクトは通常、Physics Material 2D を適用した Circle Collider 2D にすると、ゲームプレイにちょうどよいトラクションになります。
車や他の車輌をシミュレート
車両や、その他の乗り物をシミュレートする際、通常は Motor Speed プロパティーをインスペクターで 0 に設定し、その後、その値を、プレイヤーの入力にあわせてスクリプトから変更したくなるでしょう。Maximum Motor Force の値を変更して、ギアチェンジと出力アップの効果をシミュレートすることも可能です。
ゼロ周波数
周波数 がゼロのときは特殊なケースで、堅いバネとなります。