Roblox Battle Royale verfügt über ein Baissystem, mit dem Benutzer ihre eigenen Strukturen bauen können, um einen höheren Boden für einen besseren Schusswinkel zu erreichen, oder um während der Schlacht Schutz zu bieten.Mit einem Menü kann der Benutzer aus einer Reihe verschiedener Kacheltypen auswählen und sie in der Welt platzieren.

Um ein ordentliches und strukturiertes System aufrechtzuerhalten:
- Jede Kachel muss sich mit einer anderen vorhandenen Kachel oder mit dem Boden verbinden.
- Platziere alle Gebäudeziegel innerhalb eines Gitternetzes, das mit der Spielwelt koordiniert wird, damit die Ziegel richtig verbunden und nicht übereinanderliegend sind.
Fliesenkomposition
Damit Benutzer neue Kacheln schnell und einfach erstellen können, muss das Baubsystem verstehen, welche Kacheln miteinander verbunden sind und wo neue Kacheln auf dem Raster platziert werden können.
Fliesen verwenden 3 Komponenten: das visuelle Element, das als Objektverwendet wird, Informationen über den Raum, den die Fliese einnimmt im Vergleich zu anderen Weltobjekten, und die Verbindungspunkte einer Fliese, die es ermöglicht, zusätzliche Fliesen an verfügbare Kanten zu verbinden.
Asset
Ein Asset ist ein BasePart ( Part , MeshPart , etc.) platziert in ReplicatedStorage/BuildingSystem/Assets , das darstellt, wie die Kachel in der Weltaussieht.Diese BasePart muss zwei Kinder haben:
- Startrotierung — Eine mit einer Startrotierung der Kachel, wenn ein Benutzer sie in die Welt stellt.
Belegung
Die Gewährleistung, dass eine Kachel die richtige Position in einem Rastersystem einnimmt, ist wichtig und kann mit einer Bitmaske durchgeführt werden.Eine Bitmaske repräsentiert den physischen Raum, den der Kacheltyp innerhalb eines grundlegenden Abschnitts des Platzoder einer Zelle einnimmt.Jede Building-System-Kachel/Objekt kann eine beliebige Anzahl von Gesichtspunkten einer Gitterzelle (Vorderseite, linke Seite, Zurück, rechte Seite, obere Seite und untere Seite) und eine beliebige Anzahl von Octanten in einer Gitterzelle einnehmen.Ein Benutzer kann ein Gebäude-Systemobjekt nur in einer Zelle platzieren, wenn alle Gesichter und Octanten, die das Objekt einnimmt, in dieser Zelle verfügbar sind.Die Besetzung für ein Gebäudesystemobjekt wird wie folgt definiert:
Bit-Index | Bedeutung |
---|---|
0 | Unterseite des Zellsitzes |
1 | Oberseite der Zelle |
2 | Rechtes Gesicht der Zelle |
3 | Rückseite der Zelle |
4 | Linkes Gesicht der Zelle |
5 | Vorderseite der Zelle |
6 | +X, –Y, +Z Octant der Zelle mit Ursprung im Zentrum der Zelle |
7 | +X, +Y, +Z Octant der Zelle mit Ursprung im Zentrum der Zelle |
8 | –X, –Y, +Z Octant der Zelle mit Ursprung im Zentrum der Zelle |
9 | –X, +Y, +Z Octant der Zelle mit Ursprung im Zentrum der Zelle |
10 | –X, –Y, –Z Octant der Zelle mit Ursprung im Zentrum der Zelle |
11 | –X, +Y, –Z Octant der Zelle mit Ursprung im Zentrum der Zelle |
12 | +X, –Y, –Z Octant der Zelle mit Ursprung im Zentrum der Zelle |
13 | +X, +Y, –Z Octant der Zelle mit Ursprung im Zentrum der Zelle |
Verbindung
Kacheln müssen miteinander verbunden werden, um eine Struktur zu erstellen.Du kannst eine Bitmaske verwenden, die darstellt, welche Teile der Gesichter/Kanten der Zelle der Kacheltyp berührt.Die Verbindungsqualität eines Bauelements/Objekts wird durch eine Reihe von Verbindungspunkten, Bits, auf der Oberfläche einer Zelle dargestellt.Sie ordnen sich auf die folgende Weise auf den Gesichtern der Zelle an:

Ein Baubausystem-Objekt wird als mit einem anderen Baubausystem-Objekt im Netz verbunden betrachtet, wenn es mindestens 2 Verbindungspunkte auf der Oberfläche einer Zelle teilt.
Erstelle neue Fliesentypen
Um einen neuen eingebenzu erstellen:
Platziere das Asset in ReplicatedStorage/BuildingSystem/Assets. Denke daran, dass es ObjectType und StartingRotation Kinder wie oben definiert enthalten muss.
Definieren Sie die Belegung und Verbindung für Ihren neuen Fliesentyp in ReplicatedStorage/BuildingSystem/Libraries/Grid/ObjectTypeConfigurations :
Zum Beispiel wird der Wand -Kacheltyp wie folgt ausgedrückt:
ObjectTypeConfigurations.Wall = {ASSET_OFFSET_FROM_CENTER = Vector3.new(0, 0, -CELL_DIMENSIONS.Z / 2),CONNECTIVITY = 0xFF8000, -- 0b 111 111 111 000 000 000 000 000OCCUPANCY = 0x20, -- 0b 00 00 00 00 1 0 0 0 0 0}
Arbeite mit Gelände
Wenn du eine Karte mit freier Form Terrain erstellen möchtest, die perfekt zum Baursystem passt, empfehlen wir, dass du das Höhenmodell-Import-System wie in Umwelt-Terrain beschrieben verwendest und die folgenden Details beachtest:
Das Terrain in Roblox wird durch ein dreidimensionales Array von Voxelen repräsentiert, jedes davon belegt einen Würfel von 4×4×4 Klötzen in der Welt.Aus diesem Grund verwendet Roblox Battle Royale eine Rasterzellgröße von 20×16×20 Blöcken mit Wandfliesen, die 20×16×1 Blöcke groß sind, und Boden-/Deckenplatten, die 20×1×20 Blöcke groß sind.Dies ermöglicht das Ausrichten von Fliesen und Terrain richtig.
Jedes Pixel in deiner Höhenkarte-Bild sollte ein Terrain-Voxel in der X/Z -Ebene darstellen, also repräsentiert ein 5×5-Bereich in Pixeln eine Gebäude-System-Gitterzelle, die einen 20×20-Noppenbereich einnimmt.
In deiner Höhenkarte-Bild stelle sicher, dass der rote Kanal oder der graue Kanalwert für jedes Pixel durch die Höhe deines Gebäude-Systemgitters zerlegbar ist, damit die Bodenplatten gut über dem Gelände liegen.
Wenn du deine Höhenkarte importierst, festlegenfest:
Position (X, Y, Z) = 0, 0, 0Size (X, Y, Z) = heightmap_width × 4, 256, heightmap_length × 4