Configurable Joint を使用すると、各ジョイントの軸の直線運動と回転運動を個別に制限できます。
直線運動には X、Y、Z Motion、回転運動には X、Y、Z Rotation を使用します。デフォルトでは、これらの軸は、Axis プロパティで定義されたオブジェクトのローカル軸に対応しています。オブジェクトのローカル軸ではなく、ワールド軸に対して動きを制限するには、Configured In World Space を有効にします。
各軸は Locked、Limited、Free に設定できます。
直線運動を制限するには、ジョイントがその起点から移動できる最長距離 (各軸で個別に測定) を定義する Linear Limit プロパティを使用します。
回転を制限するには、Angular Limit プロパティを使用します。このプロパティでは各軸に異なる制限値を指定できます。X 軸には回転角度の上限と下限を別々に定義することもできます。他の 2 つの軸は、回転の起点の両側に同じ制限角度を使用します。
ジョイントが制限に達したときに面で跳ね返る動きをシミュレートできます。デフォルトでは、ジョイントは制限に達すると動きを停止します。しかし、そのような弾性のない衝突は現実世界ではあまり見られないため、制約されたジョイントにバウンスを追加することで現実に近づけることができます。
制約されたオブジェクトが制限に達した後に跳ね返るようにするには、直線と角度の制限の Bounciness プロパティを使用します。現実的で自然な衝突のシミュレーションには低い値を使用します。ビリヤード台のクッションなど、跳ね返り方が通常とは異なる境界のシミュレーションを行うには高い値に設定します。
ジョイントが制限を超えるときに、バネのような弾性動作をシミュレートできます。これを行うには Spring プロパティを使用します。直線運動には Linear Limit Spring、回転運動には Angular X/YZ Limit Spring を使用します。Limit Spring プロパティに 0 より大きい値を設定すると、ジョイントは制限に達したときに突然停止するのではなく、制限を通過してからバネの力で制限の位置へ引き戻されます。この力の強さは、Limit Spring の値によって決まります。デフォルトでは、ジョイントはバネの力で衝突の反対方向へと引っ張られます。
弾性を減らしてジョイントをより穏やかに制限まで戻すには、Damper プロパティを使用します。