アセンブリは、剛体 WeldConstraint で溶接された1つ以上の パーツ または、Motor6Ds のような可動ジョイントを介して接続されたものです。パーツのアセンブリを モデル コンテナにグループ化することで、パーツや関連オブジェクトを単一のアセットとして迅速に整理できます。



物理的な観点から見ると、アセンブリは単一の剛体と見なされ、接続されたパーツ同士を押したり引いたりする力は働かず、単一のユニットとして移動します。特定の BasePart に加えられたすべての力は、そのアセンブリに適用されます。たとえば、BasePart:ApplyImpulse() は BasePart.AssemblyCenterOfMass でアセンブリにインパルスを適用します。
アセンブリのプロパティ
以下の BasePart プロパティは、そのアセンブリに関するデータを示します。これらの値は同じアセンブリ内の任意のパーツで同じになるため、どのパーツを使用しても問題ありません。
| プロパティ | 説明 |
|---|---|
| BasePart.AssemblyLinearVelocity | パーツのアセンブリの線形速度ベクトル。速度を直接設定すると非現実的な動きになる可能性があるため、VectorForce または LinearVelocity 制約の使用が推奨されます。または、線形速度の瞬時の変化には BasePart:ApplyImpulse() を使用します。 |
| BasePart.AssemblyAngularVelocity | パーツのアセンブリの角速度ベクトル。速度を直接設定すると非現実的な動きになる可能性があるため、Torque または AngularVelocity 制約の使用が推奨されます。または、角速度の瞬時の変化には BasePart:ApplyAngularImpulse() を使用します。 |
| BasePart.AssemblyCenterOfMass | アセンブリ内のすべてのパーツの質量と位置に基づいて計算された読み取り専用の位置。重心に加えられた力は角加速度を引き起こさず、線形加速度のみを引き起こします。 |
| BasePart.AssemblyMass | アセンブリ内のすべてのパーツの BasePart.Mass の合計。アセンブリにアンカーされたパーツがある場合、アセンブリの質量は無限大と見なされます。 |
| BasePart.AssemblyRootPart | アセンブリの ルートパーツ を表すために自動的に選択されるパーツ。 |
アセンブルのルートパーツ
すべてのアセンブリには、AssemblyRootPart プロパティによって示されるルートパーツがあります。これは、Motor6D の変換が更新されるときに動かないパーツであり、一貫した物理複製とネットワーク所有権を維持するために使用されるパーツです。
ルートパーツを明示的に設定することはできませんが、以下の要因が確率に影響を与えます(高い順から低い順):

Anchored パーツは常にルートパーツとして割り当てられます。

Massless がfalse(デフォルト)に設定されているパーツが優先されます。

高い RootPriority 値が優先されます。

パーツのサイズ(最大面積)に基づく優先順位があり、特定のパーツタイプには乗数があります。Seats と VehicleSeats は最高の乗数を受け取り、次に HumanoidRootPart と名付けられたパーツ、最後に Torso と名付けられたパーツが続きます。
アンカー動作
アセンブリのパーツの1つがアンカーされると、そのパーツがルートパーツになり、他のすべてのパーツも暗黙的にそれにアンカーされます。以下のシーケンスはこの動作を示しています。
下の図では、4つのパーツが WeldConstraints(緑のバー)で溶接されて単一のアセンブリを形成しており、色付きのアウトラインで示されています。

4つのパーツが溶接されて単一のアセンブリになる アセンブリ内の1つのパーツがアンカーされている場合、アセンブリは変わらず、ルートパーツが変更される可能性があります(アンカーされたパーツは常にルートパーツになるための最高の優先度を持ちます)。

アンカーされたパーツ(アンカーアイコンで示される)が新しいルートパーツになる 2つ以上のパーツがアンカーされている場合、アセンブリは分割されます。下の図では、左側と上側のパーツがアンカーされているため、元のアセンブリは色付きのアウトラインで示される2つのアセンブリに分割されます。また、2つのアセンブリの間の WeldConstraint は無効になります。なぜなら、2つのアンカーされたアセンブリの間にアクティブな溶接を持つことはできないからです。

それぞれのルートパーツとしてアンカーされたパーツを持つ2つのアセンブリ