System budowy

*Ta zawartość została przetłumaczona przy użyciu narzędzi AI (w wersji beta) i może zawierać błędy. Aby wyświetlić tę stronę w języku angielskim, kliknij tutaj.

Roblox Battle Royale zawiera system budowy, który pozwala użytkownikom budować własne struktury, aby zdobyć wyższą pozycję dla lepszego kąta strzału lub zapewnić osłonę podczas walki. Użytkownik może korzystać z menu, aby wybierać z różnych typów płytek i umieszczać je w świecie.

Przykład budowy

Aby utrzymać system w porządku i uporządkowaniu:

  • Każda płytka musi łączyć się z inną istniejącą płytką lub z ziemią.
  • Umieść wszystkie płytki budowlane w siatce skoordynowanej z 3D światem, aby płytki mogły się prawidłowo łączyć i nie nachodziły na siebie.

Kompozycja płytek

Aby użytkownicy mogli szybko i łatwo budować nowe płytki, system budowy musi rozumieć, które płytki są ze sobą połączone i gdzie nowe płytki można umieścić w siatce.

Płytki używają 3 komponentów: aktywa wizualnego, który jest używany jako obiekt płytki, informacji o przestrzeni, którą zajmuje płytka w odniesieniu do innych obiektów świata oraz punktów łączeniowych płytki, które pozwalają na podłączenie dodatkowych płytek do dostępnych krawędzi.

Aktyw

Aktyw to BasePart (Part, MeshPart itp.) umieszczony w ReplicatedStorage/BuildingSystem/Assets, reprezentujący jak wygląda płytka w 3D świecie. Ten BasePart musi mieć dwa dzieci:

  • ObjectTypeStringValue z wartością Value jako nazwa typu płytki.
  • StartingRotationNumberValue z wartością Value jako początkowy kąt obrotu płytki, gdy użytkownik umieszcza ją w świecie.

Zajętość

Zapewnienie, że płytka zajmuje poprawną lokalizację w systemie siatki, jest ważne i może być przy pomocy maski bitowej. Maska bitowa reprezentuje fizyczną przestrzeń, jaką zajmuje typ płytki w podstawowej sekcji przestrzeni świata, czyli komórce. Każda płytka/obiekt systemu budowy może zajmować dowolną liczbę ścian komórki (przód, lewo, tył, prawo, góra i dół) oraz dowolną liczbę oktantów w komórce. Użytkownik może umieścić obiekt systemu budowy w komórce tylko wtedy, gdy wszystkie ściany i oktanty zajęte przez dany obiekt są dostępne w tej komórce. Zajętość obiektu systemu budowy jest zdefiniowana następująco:

Indeks bituZnaczenie
0Dolna ściana komórki
1Górna ściana komórki
2Prawe ściana komórki
3Tylna ściana komórki
4Lewe ściana komórki
5Przednia ściana komórki
6+X, –Y, +Z oktant komórki z początkiem w centrum komórki
7+X, +Y, +Z oktant komórki z początkiem w centrum komórki
8–X, –Y, +Z oktant komórki z początkiem w centrum komórki
9–X, +Y, +Z oktant komórki z początkiem w centrum komórki
10–X, –Y, –Z oktant komórki z początkiem w centrum komórki
11–X, +Y, –Z oktant komórki z początkiem w centrum komórki
12+X, –Y, –Z oktant komórki z początkiem w centrum komórki
13+X, +Y, –Z oktant komórki z początkiem w centrum komórki

Łączność

Płytki muszą się łączyć ze sobą, aby stworzyć strukturę. Możesz użyć maski bitowej, która reprezentuje, jakie części ścian/krawędzi komórki dotyka dany typ płytki. Łączność obiektu/płytki systemu budowy jest reprezentowana przez serię punktów łączeniowych, bitów, na powierzchni komórki. Ustawiają się one w następujący sposób na ścianach komórki:

Diagram kostki oktantowej

Obiekt systemu budowy uznaje się za połączony z innym obiektem systemu budowy w siatce, jeśli dzielą przynajmniej 2 punkty łączeniowe na powierzchni komórki.

Utwórz nowe typy płytek

Aby stworzyć nowy typ płytki:

  1. Umieść aktyw w ReplicatedStorage/BuildingSystem/Assets. Pamiętaj, że musi zawierać dzieci ObjectType i StartingRotation, jak zdefiniowano powyżej.

    Przykład broni Battle Royale
  2. Zdefiniuj Zajętość i Łączność dla nowego typu płytki w ReplicatedStorage/BuildingSystem/Libraries/Grid/ObjectTypeConfigurations:

    Przykład broni Battle Royale

Na przykład typ płytki Ściana jest wyrażony następująco:


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
}

Pracuj z terenem

Jeśli chcesz stworzyć mapę z wolno-formowym terenem, który idealnie łączy się z systemem budowy, zalecamy skorzystanie z systemu importu mapy wysokości, jak opisano w Terenu Środowiskowym i przestrzeganie następujących szczegółów:

  • Teren w Robloxie jest reprezentowany przez trójwymiarową tablicę wokseli, z których każdy zajmuje sześcian 4×4×4 studów w świecie. Z tego powodu system Battle Royale w Robloxie wykorzystuje rozmiar komórki siatki 20×16×20 studów, z płytkami ścian o rozmiarze 20×16×1 studów oraz płytami podłogowymi/sufitowymi o rozmiarze 20×1×20 studów. Dzięki temu płytki budowlane i teren będą się idealnie łączyć.

  • Każdy piksel w obrazie mapy wysokości powinien reprezentować jeden woksel terenu w płaszczyźnie X/Z, więc obszar 5×5 pikseli reprezentuje jedną komórkę siatki systemu budowy, która zajmuje obszar 20×20 studów.

  • W obrazie mapy wysokości upewnij się, że wartość kanału czerwonego lub wartości kanału szarości dla każdego piksela jest podzielna przez wysokość komórki siatki systemu budowy, aby płytki podłogowe ładnie leżały na terenie.

  • Podczas importu mapy wysokości ustaw:


    Pozycja (X, Y, Z) = 0, 0, 0
    Rozmiar (X, Y, Z) = heightmap_width × 4, 256, heightmap_length × 4
©2026 Roblox Corporation. Nazwa Roblox, logo Roblox oraz hasło „Powering Imagination” należą do naszych zarejestrowanych i niezarejestrowanych znaków towarowych na terenie Stanów Zjednoczonych oraz w innych krajach.