Hệ thống xây dựng

*Nội dung này được dịch bằng AI (Beta) và có thể có lỗi. Để xem trang này bằng tiếng Anh, hãy nhấp vào đây.

Roblox Battle Royale có một hệ thống xây dựng cho phép người dùng xây dựng các cấu trúc của riêng họ để đạt được độ cao hơn cho góc bắn tốt hơn, hoặc để cung cấp chỗ che chắn trong trận chiến. Sử dụng một menu, người dùng có thể chọn từ nhiều loại ô gạch khác nhau và đặt chúng vào thế giới.

Ví dụ về xây dựng

Để duy trì một hệ thống ngăn nắp và có cấu trúc:

  • Mỗi ô gạch phải kết nối với một ô gạch hiện có khác hoặc với mặt đất.
  • Đặt tất cả các ô gạch xây dựng trong một lưới được phối hợp với thế giới 3D để các ô gạch kết nối chính xác và không chồng chéo lên nhau.

Thành phần ô gạch

Để người dùng có thể nhanh chóng và dễ dàng xây dựng các ô gạch mới, hệ thống xây dựng cần hiểu những ô gạch nào được kết nối với nhau và nơi nào có thể đặt ô gạch mới trên lưới.

Các ô gạch sử dụng 3 thành phần: tài sản hình ảnh mà được sử dụng làm đối tượng ô gạch, thông tin về không gian mà ô gạch chiếm liên quan đến các đối tượng khác trong thế giới, và điểm kết nối của một ô gạch cho phép các ô gạch bổ sung kết nối với các cạnh có sẵn.

Tài sản

Một tài sản là một BasePart (Part, MeshPart, v.v.) đặt trong ReplicatedStorage/BuildingSystem/Assets đại diện cho hình dạng của ô gạch trong thế giới 3D. BasePart này phải có hai đối tượng con:

  • ObjectType — Một StringValue với một Value chứa tên loại ô gạch.
  • StartingRotation — Một NumberValue với một Value là độ xoay ban đầu của ô gạch khi người dùng đặt nó vào thế giới.

Chiếm dụng

Đảm bảo rằng một ô gạch chiếm đúng vị trí trong hệ thống lưới là rất quan trọng và có thể được thực hiện bằng cách sử dụng một bitmask. Một bitmask đại diện cho không gian vật lý mà loại ô gạch chiếm trong một phần không gian thế giới cơ bản, hay ô lưới. Mỗi ô gạch/hệ thống xây dựng có thể chiếm bất kỳ số mặt nào của một ô lưới (mặt trước, bên trái, mặt sau, bên phải, trên, và dưới) và bất kỳ số phần sáu nào trong một ô lưới. Người dùng chỉ có thể đặt một đối tượng hệ thống xây dựng trong một ô nếu tất cả các mặt và phần sáu mà đối tượng chiếm đều có sẵn trong ô đó. Sự chiếm dụng cho một đối tượng hệ thống xây dựng được định nghĩa như sau:

Chỉ số bitÝ nghĩa
0Mặt dưới của ô
1Mặt trên của ô
2Mặt bên phải của ô
3Mặt sau của ô
4Mặt bên trái của ô
5Mặt trước của ô
6+X, –Y, +Z phần sáu của ô với nguồn gốc ở trung tâm ô
7+X, +Y, +Z phần sáu của ô với nguồn gốc ở trung tâm ô
8–X, –Y, +Z phần sáu của ô với nguồn gốc ở trung tâm ô
9–X, +Y, +Z phần sáu của ô với nguồn gốc ở trung tâm ô
10–X, –Y, –Z phần sáu của ô với nguồn gốc ở trung tâm ô
11–X, +Y, –Z phần sáu của ô với nguồn gốc ở trung tâm ô
12+X, –Y, –Z phần sáu của ô với nguồn gốc ở trung tâm ô
13+X, +Y, –Z phần sáu của ô với nguồn gốc ở trung tâm ô

Kết nối

Các ô gạch cần kết nối với nhau để tạo ra một cấu trúc. Bạn có thể sử dụng một bitmask mà đại diện cho các phần của mặt/đường biên của ô mà loại ô gạch chạm vào. Tính kết nối của một ô gạch/hệ thống xây dựng được đại diện bởi một loạt các điểm kết nối, các bit, trên bề mặt của một ô. Chúng sắp xếp như sau trên các mặt của ô:

Sơ đồ Hình Lập Phương Phân Đoạn

Một đối tượng hệ thống xây dựng được coi là kết nối với một đối tượng hệ thống xây dựng khác trong lưới nếu chúng chia sẻ ít nhất 2 điểm kết nối trên bề mặt của một ô.

Tạo loại ô gạch mới

Để tạo một loại ô gạch mới:

  1. Đặt tài sản vào ReplicatedStorage/BuildingSystem/Assets. Hãy nhớ rằng nó phải chứa đối tượng con ObjectTypeStartingRotation như đã định nghĩa ở trên.

    Ví dụ Vũ Khí Battle Royale
  2. Định nghĩa Chiếm dụngKết nối cho loại ô gạch mới của bạn trong ReplicatedStorage/BuildingSystem/Libraries/Grid/ObjectTypeConfigurations:

    Ví dụ Vũ Khí Battle Royale

Ví dụ, loại ô gạch Tường được biểu diễn như sau:


ObjectTypeConfigurations.Wall = {
ASSET_OFFSET_FROM_CENTER = Vector3.new(0, 0, -CELL_DIMENSIONS.Z / 2),
CONNECTIVITY = 0xFF8000, -- 0b 111 111 111 000 000 000 000 000
OCCUPANCY = 0x20, -- 0b 00 00 00 00 1 0 0 0 0 0
}

Làm việc với địa hình

Nếu bạn muốn tạo một bản đồ với địa hình miễn phí định hình mà khớp hoàn hảo với hệ thống xây dựng, chúng tôi khuyên bạn nên sử dụng hệ thống nhập liệu heightmap như được nêu trong Địa hình Môi Trường và tuân thủ các chi tiết sau:

  • Địa hình trong Roblox được thể hiện bởi một mảng ba chiều của các voxel, mỗi voxel chiếm một khối 4×4×4 studs trong thế giới. Chính vì vậy, Roblox Battle Royale sử dụng kích thước ô lưới là 20×16×20 studs, với các ô gạch tường có kích thước 20×16×1 studs và ô sàn/trần có kích thước 20×1×20 studs. Điều này cho phép các ô gạch xây dựng và địa hình khớp với nhau chính xác.

  • Mỗi pixel trong hình ảnh heightmap của bạn nên đại diện cho một voxel địa hình trong mặt phẳng X/Z, vì vậy một khu vực 5×5 pixel đại diện cho một ô lưới hệ thống xây dựng chiếm một khu vực 20×20 studs.

  • Trong hình ảnh heightmap của bạn, hãy chắc chắn rằng giá trị của kênh đỏ hoặc kênh xám cho mỗi pixel chia hết cho chiều cao của ô lưới hệ thống xây dựng của bạn để các ô sàn ngồi chính xác trên địa hình.

  • Khi bạn nhập heightmap của mình, hãy đặt:


    Position (X, Y, Z) = 0, 0, 0
    Size (X, Y, Z) = heightmap_width × 4, 256, heightmap_length × 4
©2026 Roblox Corporation. Roblox, logo Roblox và Powering Imagination là các nhãn hiệu đã đăng ký và chưa đăng ký của chúng tôi tại Hoa Kỳ và các quốc gia khác.