Robloxは剛体物理エンジンを使用しています。 BasePartsは、Anchoredでない限り、物理的な力の影響を受けます。 添付物や制約を使用して物理的なアセンブリを作成することができ、イベントや衝突フィルタリングを使用してオブジェクト間の衝突を検出および制御できます。
アセンブリ
アセンブリは、剛性制約またはモーター(アニメーション化された剛性ジョイント)で接続された1つ以上のBasePartsです。 アセンブリは、初期の線形または角速度を設定するか、制約を介してその動作に影響を与えることができます。



制約
非アンカーのアセンブリは、重力や衝突からの力に反応しますが、物理的な力も機械的制約やモーバー制約を通じて適用およびシミュレーションできます。
機械的制約には、ヒンジ、スプリング、ロープなどの馴染みのあるオブジェクトが含まれており、メカニズムを構築するために使用できます。それぞれは、機械的制約ガイドに要約されています。
衝突
衝突イベントは、2つのBasePartsが3Dワールドで触れたり、触れなくなったりする際に自動的に発生します。 TouchedおよびTouchEndedイベントを通じてこれらの衝突を検出することができ、これらは各パーツのCanCollideプロパティの値にかかわらず発生します。
衝突フィルタリング技術(衝突グループやパーツ間フィルタリングなど)を介して、どの物理アセンブリが他のアセンブリと衝突するかを制御できます。
衝突の検出とフィルタリングに関する詳細は、衝突ガイドを参照してください。
ネットワーク所有権
複雑な物理メカニズムをサポートしながら、プレイヤーに対してスムーズで応答性の高い体験を提供するために、Roblox物理エンジンは分散物理システムを利用しており、このシステムでは計算がサーバーとすべての接続されたクライアントの間で分配されます。このシステム内では、エンジンは物理的にシミュレートされたBasePartsのネットワーク所有権をクライアントまたはサーバーのいずれかに割り当てて物理計算の作業を分割します。詳細については、ネットワーク所有権ガイドを参照してください。
適応タイムステッピング
エンジンは、アセンブリを3つのシミュレーションレートのいずれかに自動的に割り当てることで、最高のパフォーマンスを強調しています。 タンクのような複雑なメカニズムを特徴とするシナリオでは、固定タイムステップを設定することで安定性を向上させることができます。 詳細については、適応タイムステッピングガイドを参照してください。
スリープシステム
アセンブリが移動していないか加速していないとき、Roblox物理エンジンはアセンブリのシミュレーションを自動的に停止することでパフォーマンスを向上させます。 詳細はスリープシステムガイドを参照してください。