Bau-System

*Dieser Inhalt wurde mit KI (Beta) übersetzt und kann Fehler enthalten. Um diese Seite auf Englisch zu sehen, klicke hier.

Roblox Battle Royale bietet ein Baussystem, mit dem Benutzer ihre eigenen Strukturen erstellen können, um höher aufzusteigen für einen besseren Schusswinkel oder um im Kampf Schutz zu bieten. Mit einem Menü kann der Benutzer aus einer Reihe von verschiedenen Fliesentypen auswählen und sie in der Welt platzieren.

Building Example

Um ein sauberes und strukturiertes System zu erhalten:

  • Jede Fliese muss mit einer bestehenden Fliese verbunden werden oder mit dem Boden verbunden werden.
  • Platziere alle Gebäudeziegel in einem Raster mit der Spielwelt, damit die Ziegel richtig verbunden sind und nicht überlappen.

Kachelzusammensetzung

Damit Benutzer neue Fliesen schnell und einfach aufbauen können, muss das Building-System verstehen, welche Fliesen miteinander verbunden sind und wo neue Fliesen auf dem Netzwerk platziert werden können.

Kacheln verwenden 3 Komponenten: das visuelle Asset, das als Objektverwendet wird, Informationen über den Raum, den die Kachel belegt in Bezug auf andere Weltobjekte und die Verbindungspunkte eines Kacheln, mit denen zusätzliche Kacheln an verfügbare Kanten angeschlossen werden können.

Asset

Ein Asset ist ein BasePart ( Part , MeshPart , usw.) in 2>ReplicatedStorage/BuildingSystem/Assets2> platziert, der das Aussehen der Kachel im Spiel darstellt. Dieser 5>Class.BasePart5> muss zwei Kinder haben:

  • ObjektTyp — A StringValue mit einem Value des Fliesentyp-Namens.
  • StartRotation — Ein NumberValue mit einer Value der Start rotation eines Kachel wenn ein Benutzer ihn in die Welt platziert.

Belegung

Die Gewährleistung, dass ein Kachel die richtige Position in einem Gitter-System belegt, ist wichtig und kann mit einer Bit-Maske erfolgen. Eine Bit-Maske repräsentiert den physischen Raum, den Kacheltyp in einer grundlegenden Sektion der Platzoder Zelle einnimmt. Jeder Kachel-Objekt/-Objekt kann

Bit-IndexBedeutung
0Unterseite des Zells
1Oberseite der Zelle
2Rechte Gesicht der Zelle
3Rückseite der Zelle
4Linke Seite der Zelle
5Vorderseite der Zelle
6 +X, –Y, +Z Octant der Zelle mit Ursprung in der Mitte der Zelle
7 +X, +Y, +Z Octant der Zelle mit Ursprung in der Mitte der Zelle
8 –X, –Y, +Z Octant der Zelle mit Ursprung in der Mitte der Zelle
9 –X, +Y, +Z Octant der Zelle mit Ursprung in der Mitte der Zelle
10 –X, –Y, –Z Octant der Zelle mit Ursprung in der Mitte der Zelle
11 –X, +Y, –Z Octant der Zelle mit Ursprung in der Mitte der Zelle
12 +X, –Y, –Z Octant der Zelle mit Ursprung in der Mitte der Zelle
13 +X, +Y, –Z Octant der Zelle mit Ursprung in der Mitte der Zelle

Konnektivität

Kacheln müssen miteinander verbunden werden, um eine Struktur zu erstellen. Sie können ein Bitmaske verwenden, das die Verbindung zwischen den Teile der Zelle/Kanten des Kacheltyps repräsentiert. Ein Baustein-Kachel/Objekt-Konnektivität wird durch eine Reihe von Verbindungspunkten, Bits, auf der Oberfläche einer Zelle dargestellt. Sie organisieren sich auf die folgende Weise auf den Gesichtern der Zelle:

Octant Cube Diagram

Ein Building-System-Objekt wird als verbunden an ein anderes Building-System-Objekt im Netz angesehen, wenn es mindestens 2 Verbindungspunkte auf der Oberfläche einer Zelle teilt.

Erstellen neuer Fliesentypen

Um einen neuen eingebenzu erstellen:

  1. Platziere das Asset in ReplicatedStorage/BuildingSystem/Assets . Denke daran, dass es ObjectType und StartingRotation Kinder wie definiert oben enthalten muss.

    Battle Royale Weapon Example
  2. Definieren Sie die Besetzung und Verbindlichkeit für Ihren neuen Fliesentyp in ReplicatedStorage/BuildingSystem/Libraries/Grid/ObjectTypeConfigurations :

    Battle Royale Weapon Example

Zum Beispiel wird der Wand- Fliesentyp als Folgendes dargestellt:


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
}

Arbeiten mit Terrain

Wenn Sie eine Karte mit freien Formen Terrain erstellen möchten, die perfekt mit dem Baussystem ausgerichtet ist, empfehlen wir, dass Sie das Höhenkarte-Import-System verwenden, wie in Umwelt/Terrain beschrieben, und dass Sie die folgenden Details beachten:

  • Terrain in Roblox wird durch ein dreidimensionales Arrays von Voxeln repräsentiert, von denen jeder einen 4×4×4-Würfel in der Welt belegt. Aufgrund dessen verwendet Roblox Battle Royale ein Rasterzellen-Größe von 20×16×20, mit Wand- und Decken-Kacheln, die 20×16×1 studs sind und Fliesen und Terrain in der Größe 2

  • Jedes Pixel in deiner Höhenkarte-Bild sollte einen Geländevoxel in der X/Z -Ebene repräsentieren, so dass ein 5×5-Bereich in Pixeln ein Gebäude-System-Rasterzelle darstellt, die einen 20×20-Bereich abdeckt.

  • In deiner Höhenkarte-Bild stellen Sie sicher, dass der rote oder graue Kanalwert für jedes Pixel in der Höhe Ihres Gebäude-System-Gitterzells auf die Höhe Ihres Terrain-Oberflächens aufsteht, damit die Bodentile sauber auf dem Geländesitzen.

  • Wenn Sie Ihre Höhenkarte importieren, festlegen:


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