9-5. Mover Constraints (移動系の物理拘束)
Mover Constraints (移動系の物理拘束)
移動系Constraintsは、ゲーム内のオブジェクトに特定の動きや回転を適用するためのツールです。本章で述べた通り、Robloxでは物理エンジンによる物理制御がオブジェクトの動き制御のコアとなります。そのため、これら移動用のConstraintsを適切に利用することが、エンジンとマッチした自然な挙動を作ることにつながります。
以下に主要な移動系Constraintsとその適用例を紹介します。
LinearVelocity
特定の速度でオブジェクトを直線的に移動させる力を与えます。重量を気にせずに一定速度の物理力を構築できます。内部的には力を与えるため、ForceLimitsEnabled(力の上限)有効の場合、重量と力の上限値により挙動が変化することに注意しましょう。
- 適用例: エスカレーターやベルトコンベアなど、スライド移動などの直線的な動きを実現。
- 詳しい解説: LinearVelocity
AngularVelocity
オブジェクトに一定速度で回転させる角速度の力を与えます。内部的には力を与えるため、重量とMaxTorque値により挙動が変化することに注意しましょう。
- 適用例: 風車や扉など、特定の軸周りで回転するオブジェクトの動きを実現。
- 詳しい解説: AngularVelocity
AlignPosition
オブジェクトを特定の位置に合わせるための力を与えます。内部的には力を与えるため、衝突やパラメータと重量による挙動の変化に注意が必要です。RigidityEnabledを有効にすることで最大限の力で即座に位置合わせを行うことができます。
- 適用例: 物体を特定の位置に動かすことで、ドアの開閉、ホバー移動などの制御に使用。
- 詳しい解説: AlignPosition
AlignOrientation
オブジェクトの向きを特定の方向に合わせる回転力を与えます。内部的には力を与えるため、衝突やパラメータと重量による挙動の変化に注意が必要です。RigidityEnabledを有効にすることで最大限の力で即座に位置合わせを行うことができます。
- 適用例: オブジェクトの方向を常に一定に保つ、例えば自動調整されるカメラシステムの実装に利用。
- 詳しい解説: AlignOrientation
VectorForce
特定の方向に移動する力を加えます。LinearVelocityなどと違い力を与え続けるため、通常はオブジェクトが加速しつづけ徐々に移動力が大きくなっていきます。
- 適用例: 物体に重力とは別の力を加えて動かす、例えばジェットパックや風のシミュレーションに使用。
- 詳しい解説: VectorForce
Torque
オブジェクトの中心に回転力を与えます。AngularVelocityと違い力を与え続けるため、通常オブジェクトは回転速度が加速し続け徐々に回転力が大きくなっていきます。
- 適用例: 物体を回転させることで、車のハンドルの動きや風力発電の羽根の回転などに使用。
- 詳しい解説: Torque
Line Force
2つのオブジェクト間のライン上に引力のような力を与えます。
- 適用例: オブジェクト間に引力や斥力を適用する、例えば弾性のある物体などに使用。
- 詳しい解説: LineForce