名前が示すように、MassFX コンストレイント(または「JOINT」)は、シミュレーション内でのリジッド ボディの移動を制限します。現実でのコンストレイントの例としては、ヒンジ、ネイル、ジップ ライン、車軸などがあります。
すべてのコンストレイント プリセットは、同じタイプのヘルパー オブジェクトを同じ設定で作成します。ヒンジとボール & ソケットのように異なるコンストレイント タイプでも、単に、結果のコンストレイントに便利な既定値が設定されます。
コンストレイント ヘルパー オブジェクトは、2 つのリジッド ボディを相互にリンクしたり、単一のリジッド ボディをグローバル スペース内の固定位置に固定することができます。 コンストレイントは階層的な関係を形成します。子オブジェクトがダイナミック リジッド ボディでなければならないのに対し、親オブジェクトはダイナミック、キネマティック、またはどちらでもなくてもかまいません(グローバル スペースに固定するため)。
既定では、コンストレイントは「ブレーク不能」です。どれほど強い力をかけても、またはどれほど大きく制限を違反しても、有効性は変わらず、リジッド ボディを意図される範囲内に戻そうとします。ただし、独立した力とトルクの限度でブレーク可能なようにコンストレイントを設定できます。この限度を超えるとコンストレイントオフになり、シミュレーションに適用されなくなります。
ほとんどのコンストレイントは 2 つのリジッド ボディを接続します。コンストレイントは、親リジッド ボディの子としてリンクされ、そのリジッド ボディに沿って移動し、それを軸に回転します。また、子ボディの親としてリンクされ、親ボディの動きを子ボディに伝送します。 たとえば、シミュレーションでは、自動車とドアのモデルはヒンジ コンストレイントによって接続されている可能性があり、自動車が親でドアが子です。 ドアを開閉できる限度は自動車が回転しても変わりませんが、自動車の向きが基準になります。
2 つのダイナミック リジッド ボディの間のコンストレイントは、現実と同じように動作します。一方のリジッド ボディに加えられた力は、もう一方に対して、どちらの向きにも伝わることができます。通常、自動車を運転すると自動車のドアは一緒に引っ張られます。しかし、ガソリンが切れたため、ドアを開いて自動車を押すと、ドアが壊れなければ、自動車の車体も動きます。親オブジェクトがダイナミックの場合、子と同じように動きます。
2 つのオブジェクトの間にコンストレイントを作成するには、シーンで親オブジェクトを選択し、子オブジェクトを選択した後、MassFX ツールバーの[コンストレイント](Constraints)フライアウトからいずれかのプリセットを選択します。 コンストレイントは、親オブジェクトの基点の位置に自動的に配置されます。その後、ビューポートでマウスを動かすと、システムはマウス カーソルに追随して、コンストレイントの表示サイズを設定します。マウスを親オブジェクトに近づけるほど、コンストレイントは小さくなります。コンストレイントの表示サイズを確定してコンストレイントの作成を終了するには、マウスをクリックします。
表示サイズは、コンストレイントのプロパティとして後で変更できます。表示サイズはコンストレイントがビューに描画される大きさだけに影響し、コンストレイントのシミュレーション効果には影響ありません。
コンストレイントの配置は、コンストレイントが適用される親からのオフセットに反映されます。ドア フレームに接続されたドアのように、2 つのリジッド ボディが隣接している場合は、通常、子オブジェクトの基点にコンストレイントを配置します。一方、フックからぶら下がっているボールのように、2 つのリジッド ボディが離れている場合は、たいてい親オブジェクトの基点がコンストレイントの理想的な配置になります。MassFX コンストレイント ヘルパーの[拡張機能](Advanced)ロールアウトには、これらの位置のどちらかにコンストレイントを自動的に移動するボタンがあります。
シーン内の場所を基準に、リジッド ボディのコンストレイントを設定することもできます。そのためには、MassFX コンストレイント ヘルパーの[一般](General)ロールアウトで[親](Parent)ボタンの横にある[X]ボタンをクリックして、既存のコンストレイントの親を、なしまたは「未定義」に設定します。 または、単にコンストレイントを選択した 1 つのリジッド ボディに割り当てます。このようにすると、そのボディが自動的に子として設定され、コンストレイントがスペースにアンカーされます。
MassFX コンストレイント ヘルパーは、3 種類の張りをサポートします。
コンストレイントには、平行移動、スイング、ツイストのロック/限界/自由状態と共にこれらの限界の表現を示すためのカスタムビジュアル化がビューポート内にあります。このビジュアル化は、コンストレイントの回転と限界を理解する役に立ちます。ただし、これらのビジュアル化を描画するとビューポートのパフォーマンスに影響があります。
多くのコンストレイントがあるシミュレーションをプレビューしている場合は、ヘルパーの表示を無効にすることで、ビューポートの更新速度が向上します。そのためには、[表示](Display)パネルで[カテゴリによる非表示](Hide By Category) [ヘルパー](Helpers)をオンにします。