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.

Battle Royale của Roblox 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 riêng của họ để đạt đến địa hình cao hơn để có góc bắn tốt hơn hoặc để cung cấp bảo vệ trong trận chiến.Sử dụng một menu, người dùng có thể chọn từ một số loại gạch khác nhau và đặt chúng vào thế giới.

Building Example

Để duy trì một hệ thống có trật tự và có cấu trúc:

  • Mỗi ô phải kết nối với ô khác hiện có hoặc với mặt đất.
  • Đặt tất cả các ô xây dựng trong một lưới được phối hợp với thế giới trò chơi để các ô kết nối đúng cách và không chồng lấp.

Bố trí gạch

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

Gạch sử dụng 3 thành phần: đối tượng tài nguyên hình ảnh được sử dụng là đối tượng gạch, thông tin về không gian mà gạch chiếm theo tham chiếu đến các đối tượng thế giới khác, và điểm kết nối của một gạch mà cho phép thêm gạch kết nối vào 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.) được đặt vào ReplicatedStorage/BuildingSystem/Assets đại diện cho cách mảng trông trong thế giới trò chơi.Cái này BasePart phải có hai con:

  • Loại đối tượng — Một StringValue với một Value của tên loại gạch.
  • Bắt đầu xoay — Một NumberValue với một Value về xoay khởi động của điểm khi một người dùng đặt nó trên thế giới.

Tỷ lệ chiếm

Đảm bảo rằng một ô chiếm đúng vị trí trong hệ thống lưới là quan trọng và có thể được thực hiện bằng cách sử dụng 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 cơ bản của không gian thế giới hoặc tế bào.Mỗi ô hệ thống xây dựng/đối tượng có thể chiếm bất kỳ số lượng khuôn mặt nào của một ô lưới (trước, bên trái, quay lại, phải, trên và dưới) và bất kỳ số lượng octant nào trong một ô lưới.Một 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à octant mà đối tượng chiếm đang có sẵn trong ô đó.Tỷ lệ chiếm dụng cho một đối tượng hệ thống xây dựng được định nghĩa như sau:

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

Kết nối

Các ô 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 bitmask đại diện cho các phần của khuôn mặt/cạnh tế bào mà loại gạch chạm.Kết nối của một tấm/đối tượng hệ thống xây dựng được biểu diễn bởi một loạt các điểm kết nối, bit, trên bề mặt của một tế bào.Họ sắp xếp theo cách sau trên các mặt của tế bào:

Octant Cube Diagram

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ế bào.

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

Để tạo một đánh máyô mới:

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

    Battle Royale Weapon Example
  2. Xác định OccupancyConnectivity cho loại ô mới của bạn trong ReplicatedStorage/BuildingSystem/Libraries/Grid/ObjectTypeConfigurations :

    Battle Royale Weapon Example

Ví dụ, loại gạch tường Wall được diễn tả 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 bản đồ với địa hình tự do miễn phí mà phù hợ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 bản đồ cao độ như được mô tả trong Địa hình môi trường và bạn nên quan sát các chi tiết sau:

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

  • Mỗi điểm ảnh trong bản đồ chiều cao của bạn phải đại diện cho một voxel địa hình trong X/Z không gian, vì vậy một khu vực 5×5 trong điểm ảnh đại diện cho một tế bào lưới hệ thống xây dựng chiếm một khu vực 20×20 của đinh tán.

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

  • Khi bạn nhập bản đồ chiều cao của mình, hãy cài đặt:


    Position (X, Y, Z) = 0, 0, 0
    Size (X, Y, Z) = heightmap_width × 4, 256, heightmap_length × 4