Spring Joint 2D コンポーネントにより 2 つのゲームオブジェクトがスプリングでつながっているようなリジッドボディ物理挙動に制御されます。スプリングは 2 つのオブジェクトの軸に沿って力を加え、その間の距離を一定に保とうとします。
プロパティ | 機能 |
---|---|
Enable Collision | このプロパティを有効にすると、つながれた 2 つのゲームオブジェクトの衝突が可能になります。 |
Connected Rigidbody | このジョイントと接続するもう 1 つのオブジェクトを指定します。ここを None にすると、もう一方の端が、Connected Anchor プロパティによって定義された空間の点に固定されます。入力欄の右側にある丸いアイコンを選択すると、接続先オブジェクトのリストを見ることができます。 |
Auto Configure Connected Anchor | このプロパティを有効にすると、このジョイントが接続する他のオブジェクトのアンカー位置が自動的に設定されます。このプロパティを有効にすると、Connected Anchor プロパティの座標を入力する必要はありません。 |
Anchor | ジョイントの終点がゲームオブジェクトに接続する位置 (Rigidbody 2D 上の X、Y 座標) を定義します。 |
Connected Anchor | ジョイントの終点が他のゲームオブジェクトに接続する位置 (Rigidbody 2D 上の x、y 座標) を定義します。 |
Auto Configure Distance | このプロパティを有効にすると、2 つのゲームオブジェクト間の距離を自動的に検出し、ジョイントが 2 つのゲームオブジェクト間に維持する距離として設定します。 |
Distance | スプリングが 2 つのオブジェクト間に維持しようとする距離を設定します (手動でも設定可能)。 |
Damping Ratio | スプリングの振動を抑える度合いを設定します。0 - 1 の範囲で、値が大きいほど動きが小さくなります。 |
Frequency | ゲームオブジェクトが目的の分離距離に近づいていく間の、スプリングの振動周波数 (単位: 周/秒) を設定します。範囲は 0 - 1,000,000 で、値が高いほどスプリングが硬くなります。ノート: Frequency を 0 に設定すると、最も硬いスプリングになります。 |
Break Action | 力またはトルクのしきい値を超えた時に実行されるアクションを設定します。 |
Break Force | 力のしきい値を設定します。このしきい値を超えると、ジョイントが、選択された Break Action を実行します。デフォルト値は Infinity 設定されており、これは超えることができません。したがって、しきい値がこの値のままである場合は Break Action は実行できません。 |
このジョイントは、2 点間の直線距離を維持しながら、バネのように動作します。 距離は Distance 設定で設定します。 これら 2 つの点は、2 つの Rigidbody2D コンポーネント、または 1 つの Rigidbody2D コンポーネントとワールド内の固定位置が可能です。(Connected Rigidbody を None に設定することで、ワールドの固定位置に接続します)。ジョイントは両方のリジッドボディにリニアの力を加えます。 トルク (角力) は加えません。
ジョイントはシミュレートされたスプリングを使用します。スプリングの硬さと動きを設定できます。
硬く、かろうじて動くスプリング
高い Frequency (1,000,000 が最高) にするとスプリングは硬くなります。
高い Damping Ratio (1 が最高) にすると、かろうじてスプリングが動きます。
緩く、動くスプリング
低い Frequency にするとスプリングは緩くなります。
低い Damping Ratio にすると、よく動くスプリングになります。
スプリングがオブジェクト間に力を適用すると、オブジェクト間に設定した距離を通り越し、何度も跳ね返り、継続的に振動する傾向があります。Damping Ratio は、オブジェクトがどれだけの時間で動きを止めかを設定します。Frequency は、ターゲット距離の両側でオブジェクトが振動する速さを設定します。
このジョイントには 1 つの制約があります。
このジョイントを使用すると、バネや回転を可能にする接続を使用して接続されているかのように反応する必要がある物理オブジェクトを作成できます。 以下はその例です。
ノート: Spring Joint 2D は Box 2D のスプリングジョイントを使います。その際、Distance Joint 2D も周波数を 0 に設定して使用します。
SpringJoint2D