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 oferuje system budowania, który umożliwia użytkownikom budowanie własnych struktur, aby osiągnąć wyższy poziom, aby uzyskać lepszy kąt strzału lub zapewnić pokrycie podczas bitwy. Używając menu, użytkownik może wybrać z kilku różnych rodzajów płytki i umieścić je w świecie.

Building Example

Aby utrzymać porządny i zstrukturyzowany system:

  • Każda płytki musi się połączyć z inną istniejącą płytki lub z ziemią.
  • Umieść wszystkie płytki budowlane w kadrze zgodnej z światem gry, aby płytki połączyły się poprawnie i nie kolidowały.

Kompozycja płyt

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

Płytki używają 3 komponentów: ressourcen wizualnych, które są używane jako obiekt płytki, informacje o przestrzeni zajętej przez płytkę w odniesieniu do innych obiektów świata i łączenie płytki, aby umożliwić połączenie dodatkowych płytek z dostępnymi krawędźmi.

Zasób

Aset jest BasePart ( Part , MeshPart , itp.) umieszczony w 1> ReplicatedStorage/BuildingSystem/Assets1> przedstawiający to, jak wygląda płytki w świecie gry. Ten 4> Class.BasePart4> musi mieć dwa dzieci:

  • ObiektTypu — A StringValue z Value nazwą typu płytki.
  • StartRotationNumberValue z Value rotacji początkowej płytki, gdy użytkownik ją umieści na świecie.

Zajętość

Upewnienie się, że płytki zajmują poprawną lokalizację w systemie sieci, jest ważne i można to zrobić używając bitMask. bitMask reprezentuje przestrzeń fizyczną, którą zajmuje typ płytki, w podstawowej sekcji świata przestrzeni, lub komórki. Każdy ob

Indeks bitowyZnaczenie
0Dół twarzy komórki
1Górna twarz komórki
2Prawa twarz komórki
3Tylna strona komórki
4Lewe oblicze komórki
5Przednia strona komórki
6 +X, –Y, +Z oktan liczby z zadanym centrum
7 +X, +Y, +Z oktan liczby z zadanym centrum
8 –X, –Y, +Z oktan celu z początkiem w centrum celu
9 –X, +Y, +Z oktan celu z początkiem w centrum celu
10 –X, –Y, –Z oktan liczby z zadanym centrum
11 –X, +Y, –Z oktan liczby z zadanym centrum
12 +X, –Y, –Z oktan liczby z zadanym centrum
13 +X, +Y, –Z oktan liczby z zadanym centrum

Łączność

Płytki muszą się połączyć ze sobą, aby stworzyć strukturę. Możesz użyć bitMask , która представляет, jakie części twarzy/krawędzi komórki dotyka typu płytki. A płytki systemu budowlanego/objętego są przedstawione poprzez serię punktów połączenia, bity, na powierzchni komórki. One rozdzielają się w następujący sposób na twarzach komórki:

Octant Cube Diagram

Obiekt systemu budowlanego jest uważany za połączony z innym obiektem systemu budowlanego w grze, jeśli dzieli co najmniej 2 punkty połączenia na powierzchni komórki.

Tworzenie nowych rodzajów płytki

Aby utworzyć nowy wpisywaćpłytki:

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

    Battle Royale Weapon Example
  2. Definiuj Occupancy i Connectivity dla nowego typu płytki w ReplicatedStorage/BuildingSystem/Libraries/Grid/ObjectTypeConfigurations :

    Battle Royale Weapon Example

Na przykład wzór 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
}

Praca z terenem

Jeśli chcesz stworzyć mapę z wolnej formy terenu, która idealnie pasuje do systemu budowlanego, zalecamy użyć systemu importu wysokości opisanego w środowiskowym terenie i obserwować następujące szczegóły:

  • Teren w Roblox jest reprezentowany przez trójwymiarową matrykę woxelów, każde z nich zajmuje kostkę 4 × 4 × 4 w świecie. Ze względu na to, Roblox Battle Royale używa rozmiaru komórki siatki 20×16×20, z wałkami 20×16×1 i płytkami podłogowymi/sufitowym

  • Każdy piksel w Twoim obrazie mapy wysokości powinien reprezentować jeden wierzchownik terenu w samolocie X/Z , więc 5×5 obszar w pikselach reprezentuje jedną komórkę sieci systemu budowlanego, która zajmuje obszar 20×20.

  • W swoim obrazie kanalnym upewnij się, że wartość kanału czerwonego lub szarego dla każdego piksela jest dzielna przez wysokość swojego systemu sieci komórki, aby płytki podłogowe siedziały dobrze na górze terenu.

  • Gdy importujesz swoją mapę wysokości, ustawiać:


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