Một cụm là một hoặc nhiều phần được hàn bởi một WeldConstraint cứng hoặc được kết nối thông qua các khớp di động, như Motor6Ds. Bạn có thể nhóm một cụm các phần trong một mô hình để nhanh chóng tổ chức các phần và đối tượng liên quan như một tài sản duy nhất.



Từ góc độ vật lý, một cụm được xem như một khối rigid, nghĩa là không có lực nào có thể đẩy hoặc kéo các phần kết nối ra khỏi nhau, và chúng sẽ di chuyển như một đơn vị duy nhất. Tất cả các lực được áp dụng lên một BasePart cụ thể sẽ được áp dụng lên cụm của nó — chẳng hạn, BasePart:ApplyImpulse() áp dụng độ xung lực lên cụm tại BasePart.AssemblyCenterOfMass.
Thuộc tính của cụm
Các thuộc tính BasePart sau đây hiển thị dữ liệu liên quan đến cụm của nó. Giá trị của chúng sẽ giống nhau cho bất kỳ phần nào trong cùng một cụm, vì vậy không quan trọng phần nào bạn sử dụng.
| Thuộc tính | Mô tả |
|---|---|
| BasePart.AssemblyLinearVelocity | Vector vận tốc tuyến tính của cụm phần. Việc đặt vận tốc trực tiếp có thể dẫn đến chuyển động không thực tế, vì vậy việc sử dụng VectorForce hoặc LinearVelocity constraint là ưu tiên, hoặc BasePart:ApplyImpulse() cho thay đổi tức thời về vận tốc tuyến tính. |
| BasePart.AssemblyAngularVelocity | Vector vận tốc góc của cụm phần. Việc đặt vận tốc trực tiếp có thể dẫn đến chuyển động không thực tế, vì vậy việc sử dụng Torque hoặc AngularVelocity constraint là ưu tiên, hoặc BasePart:ApplyAngularImpulse() cho thay đổi tức thời về vận tốc góc. |
| BasePart.AssemblyCenterOfMass | Vị trí chỉ đọc được tính toán thông qua khối lượng và vị trí của tất cả các phần trong cụm. Một lực áp dụng vào trung tâm khối lượng sẽ không gây ra gia tốc góc, chỉ có gia tốc tuyến tính. |
| BasePart.AssemblyMass | Tổng của BasePart.Mass của tất cả các phần trong cụm. Nếu cụm có một phần bị neo, khối lượng của cụm được coi là vô hạn. |
| BasePart.AssemblyRootPart | Phần tự động được chọn để đại diện cho cụm chính của cụm. |
Cụm chính
Mỗi cụm có một cụm chính được chỉ định bởi thuộc tính AssemblyRootPart của nó. Đây là phần không di chuyển khi các biến đổi của Motor6D được cập nhật, cũng như là phần được sử dụng để giữ cho việc sao chép vật lý và quyền sở hữu mạng nhất quán.
Bạn không thể thiết lập cụm chính một cách rõ ràng, nhưng những yếu tố sau sẽ ảnh hưởng đến xác suất từ cao nhất đến thấp nhất:

Một phần Anchored sẽ luôn được chỉ định là cụm chính.

Các phần có Massless được đặt là false (mặc định) sẽ có ưu tiên.

Các giá trị RootPriority cao hơn sẽ có ưu tiên.

Uu tiên dựa trên kích thước của phần (diện tích mặt lớn nhất), với các hệ số nhân cho các loại phần cụ thể. Seats và VehicleSeats nhận được hệ số nhân cao nhất, tiếp theo là các phần có tên HumanoidRootPart, sau đó là các phần có tên Torso.
Hành vi neo
Khi một trong các phần của một cụm bị neo, phần đó trở thành phần chính và tất cả các phần khác trở thành bị neo với nó một cách ngầm định. Chuỗi sau đây minh họa hành vi này.
Ở dưới đây, bốn phần được hàn với nhau bằng WeldConstraints (thanh màu xanh lá) để tạo thành một cụm duy nhất, như được chỉ định bởi các đường viền có màu tương ứng.

Bốn phần được hàn để trở thành một cụm duy nhất Nếu chỉ một phần trong cụm bị neo, cụm sẽ không thay đổi, ngoài việc phần chính có thể thay đổi (phần bị neo luôn có ưu tiên cao nhất để trở thành phần chính).

Phần bị neo (như được chỉ định bằng biểu tượng neo) trở thành phần chính mới Nếu nhiều hơn một phần bị neo, cụm sẽ tách. Ở dưới đây, cả hai phần bên trái và bên trên đều bị neo, vì vậy cụm gốc tách thành hai cụm như được chỉ định bởi các đường viền màu. Ngoài ra, WeldConstraint giữa hai cụm sẽ vô hiệu hóa, vì bạn không thể có một mối hàn hoạt động giữa hai cụm bị neo.

Hai cụm với các phần bị neo là các phần chính tương ứng của chúng