9-4. Mechanical Constraints(機械拘束)

Mechanical Constraints(機械拘束)

Mechanical Constraints(「機械拘束」)は、オブジェクト間に特定の動きや関係を設定するための機能です。これらの拘束は、オブジェクトがどのように相互作用するかを制御し、様々なリアルでダイナミックな動きを可能にします。前項で述べた通りアセンブリ化としての役割ももちます。
以下は、エクスペリエンス制作でもよく使用される主要な機械拘束です。それぞれの要点を列挙しているので、用途を把握し実際に使う場合には公式ドキュメント等を参考に詳細なパラメータ設定を把握して使用しましょう。

BallSocketConstraint

2つのオブジェクトを球状の関節で接続し、3軸全てで回転可能にします。LimitsEnableを設定することで、指定した角度制限内でのみの自由回転を可能とします。これにより、人の関節のような可動域の接続が実現されます。
  • 適用例: 人間の関節の動き、複雑な機械の可動部分など。

HingeConstraint

2つのオブジェクトを接続し、接続した特定軸を中心に回転のみ可能とします。ActuatorTypeをMotorやServoに設定することで、軸に沿った回転移動力を自動的に生み出すこともできます。これにより、ドアが開く動作などが実現されます。
  • 適用例: ドアや窓の開閉、風車の羽根の動きなど。

PrismaticConstraint

特定の軸に沿ってのみ移動可能で、回転は行わない、拘束を作成します。すなわち平行移動のみを可能とする接続を構築できます。ActuatorTypeをMotorやServoに設定することで、軸に沿った回転移動力を自動的に生み出すこともできます。これにより、エレベーターや自動ドアなどの動きが実現されます。
  • 適用例: エレベーター、自動ドア、引き出しの動きなど。

CylindricalConstraint

特定の軸に沿ってのみ移動可能で、また別の軸を中心に回転も可能とする拘束を作成します。HingeConstraintとPrismaticConstraintをあわせたような制約といえます。同様にActuatorTypeをMotorやServoに設定することで移動力を生み出すことができます。
  • 適用例: 車輪のサスペンションなど。

SpringConstraint

バネのように伸縮する力を生み出す制約を作成します。バネの長さや剛性(Stiffness)やダンピング(振動の減衰具合)などを設定することでバネの強さ、固さを変えることが可能です。
  • 適用例: 車輪のサスペンション、トランポリン、スイングドアなど。

TorsionSpringConstraint

バネの効果をもったヒンジのような軸回転移動を作成します。同様にバネの固さなどを設定することで動きを制御します。スイングドアの作成に有効です。
  • 適用例: スイングドアなど。

RopeConstraint

2つのオブジェクトが一定の長さを超えて離れない制約を作成します。制約の長さ内では自由に移動回転できます。WinchEnabledが有効な場合、目標の長さまでロープの長さを伸縮しようとする、ロープの巻取りのような効果を生み出すこともできます。
  • 適用例: ロープでつながれたオブジェクトなど。

RodConstraint

2つのオブジェクト間の距離を一定に保った固定関係を作りながら、接続軸は回転可能となる「棒」のような拘束を作成します。WeldConstraintとBallSocketConstraintをあわせたような制約ともいえるでしょう。
  • 適用例: 棒でつるしたもの、橋などの建築物構造など。

PlaneConstraint

特定の平面に沿った位置/方向に、オブジェクトを拘束します。平面内では基本的に自由に移動および回転できます。
  • 適用例: ホバー乗り物の移動面指定、2Dゲーム化での移動面指定など。

参照すべき情報