Version: Unity 6.0 (6000.0)
言語 : 日本語
設定可能なジョイントの作成
設定可能なジョイントによる駆動力

Configurable Joint による動作制限のカスタマイズ

Configurable Joint を使用すると、各ジョイントの軸の直線運動と回転運動を個別に制限できます。

直線運動には X、Y、Z Motion、回転運動には X、Y、Z Rotation を使用します。デフォルトでは、これらの軸は、Axis プロパティで定義されたオブジェクトのローカル軸に対応しています。オブジェクトのローカル軸ではなく、ワールド軸に対して動きを制限するには、Configured In World Space を有効にします。

各軸は LockedLimitedFree に設定できます。

  • Locked に設定された軸はすべての動きを制限するため、ジョイントは一切動きません。例えば、グローバル Y 軸にロックされたオブジェクトは上にも下にも動くことができません。
  • Limited に設定された軸は定義した制限値間で自由に動作できます 。例えば、砲塔内にある砲弾の Y 軸回転を特定の角度範囲内に制限することで、砲弾の描く弧の形に制限をかけることができます。
  • Free に設定された軸は、あらゆる動きが可能です。

直線運動を制限するには、ジョイントがその起点から移動できる最長距離 (各軸で個別に測定) を定義する Linear Limit プロパティを使用します。

X 軸に沿った制限の図
X 軸に沿った制限の図

回転を制限するには、Angular Limit プロパティを使用します。このプロパティでは各軸に異なる制限値を指定できます。X 軸には回転角度の上限と下限を別々に定義することもできます。他の 2 つの軸は、回転の起点の両側に同じ制限角度を使用します。

ジョイント制限へのバウンスの追加

ジョイントが制限に達したときに面で跳ね返る動きをシミュレートできます。デフォルトでは、ジョイントは制限に達すると動きを停止します。しかし、そのような弾性のない衝突は現実世界ではあまり見られないため、制約されたジョイントにバウンスを追加することで現実に近づけることができます。

制約されたオブジェクトが制限に達した後に跳ね返るようにするには、直線と角度の制限の Bounciness プロパティを使用します。現実的で自然な衝突のシミュレーションには低い値を使用します。ビリヤード台のクッションなど、跳ね返り方が通常とは異なる境界のシミュレーションを行うには高い値に設定します。

バウンスを設定したジョイントは制限を超えません。
バウンスを設定したジョイントは制限を超えません。

ジョイント制限への弾性の追加

ジョイントが制限を超えるときに、バネのような弾性動作をシミュレートできます。これを行うには Spring プロパティを使用します。直線運動には Linear Limit Spring、回転運動には Angular X/YZ Limit Spring を使用します。Limit Spring プロパティに 0 より大きい値を設定すると、ジョイントは制限に達したときに突然停止するのではなく、制限を通過してからバネの力で制限の位置へ引き戻されます。この力の強さは、Limit Spring の値によって決まります。デフォルトでは、ジョイントはバネの力で衝突の反対方向へと引っ張られます。

弾性を減らしてジョイントをより穏やかに制限まで戻すには、Damper プロパティを使用します。

スプリングを設定したジョイントは制限を越えますが、その後制限まで引き戻されます。
スプリングを設定したジョイントは制限を越えますが、その後制限まで引き戻されます。
設定可能なジョイントの作成
設定可能なジョイントによる駆動力