Roblox Battle Royale propose un système de construction qui permet aux utilisateurs de créer leurs propres structures pour atteindre des hauteurs plus élevées pour un meilleur angle de tir, ou pour fournir une couverture pendant les combats. À l'aide d'un menu, l'utilisateur peut sélectionner parmi plusieurs types de tuiles différents et les placer dans le monde.

Pour maintenir un système ordonné et structuré :
- Chaque tuile doit se connecter à une autre tuile existante ou au sol.
- Placez toutes les tuiles de construction dans une grille coordonnée avec le monde 3D afin que les tuiles se connectent correctement et ne se chevauchent pas.
Composition des tuiles
Pour permettre aux utilisateurs de construire de nouvelles tuiles rapidement et facilement, le système de construction doit comprendre quelles tuiles sont connectées entre elles et où de nouvelles tuiles peuvent être placées sur la grille.
Les tuiles utilisent 3 composants : l'actif visuel qui est utilisé comme objet tuile, des informations sur l'espace que la tuile occupe par rapport aux autres objets du monde, et les points de connexion d'une tuile qui permettent à d'autres tuiles de se connecter aux bords disponibles.
Actif
Un actif est un BasePart (Part, MeshPart, etc.) placé dans ReplicatedStorage/BuildingSystem/Assets représentant à quoi ressemble la tuile dans le monde 3D. Ce BasePart doit avoir deux enfants :
- StartingRotation — Un NumberValue avec une Value de la rotation de départ de la tuile lorsque l'utilisateur la place dans le monde.
Occupation
S'assurer qu'une tuile occupe le bon emplacement dans un système de grille est important et peut être réalisé à l'aide d'un masque de bits. Un masque de bits représente l'espace physique que prend le type de tuile dans une section de l'espace mondial de base, ou cellule. Chaque tuile/objet du système de construction peut occuper un nombre quelconque de faces d'une cellule de la grille (avant, gauche, arrière, droite, haut et bas) et n'importe quel nombre d'octants dans une cellule de la grille. Un utilisateur ne peut placer un objet du système de construction dans une cellule que si toutes les faces et octants que l'objet occupe sont disponibles dans cette cellule. L'occupation d'un objet du système de construction est définie comme suit :
| Indice de bit | Signification |
|---|---|
| 0 | Face inférieure de la cellule |
| 1 | Face supérieure de la cellule |
| 2 | Face droite de la cellule |
| 3 | Face arrière de la cellule |
| 4 | Face gauche de la cellule |
| 5 | Face avant de la cellule |
| 6 | +X, –Y, +Z octant de la cellule avec origine au centre de la cellule |
| 7 | +X, +Y, +Z octant de la cellule avec origine au centre de la cellule |
| 8 | –X, –Y, +Z octant de la cellule avec origine au centre de la cellule |
| 9 | –X, +Y, +Z octant de la cellule avec origine au centre de la cellule |
| 10 | –X, –Y, –Z octant de la cellule avec origine au centre de la cellule |
| 11 | –X, +Y, –Z octant de la cellule avec origine au centre de la cellule |
| 12 | +X, –Y, –Z octant de la cellule avec origine au centre de la cellule |
| 13 | +X, +Y, –Z octant de la cellule avec origine au centre de la cellule |
Connectivité
Les tuiles doivent se connecter les unes aux autres pour créer une structure. Vous pouvez utiliser un masque de bits qui représente quelles portions des faces/bords de la cellule le type de tuile touche. La connectivité d'une tuile/objet du système de construction est représentée par une série de points de connexion, bits, à la surface d'une cellule. Ils s'arrangent de la manière suivante sur les faces de la cellule :

Un objet du système de construction est considéré comme connecté à un autre objet du système de construction dans la grille s'ils partagent au moins 2 points de connectivité sur la surface d'une cellule.
Créer de nouveaux types de tuiles
Pour créer un nouveau type de tuile :
Placez l'actif dans ReplicatedStorage/BuildingSystem/Assets. N'oubliez pas qu'il doit contenir des enfants ObjectType et StartingRotation comme défini ci-dessus.

Définissez l'Occupation et la Connectivité pour votre nouveau type de tuile dans ReplicatedStorage/BuildingSystem/Libraries/Grid/ObjectTypeConfigurations :

Par exemple, le type de tuile Mur est exprimé comme suit :
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}
Travailler avec le terrain
Si vous souhaitez créer une carte avec un terrain libre qui s'aligne parfaitement avec le système de construction, nous vous recommandons d'utiliser le système d'importation de hauteur comme décrit dans Terrain environnemental et d'observer les détails suivants :
Le terrain dans Roblox est représenté par un tableau tridimensionnel de voxels, chacun occupant un cube de 4×4×4 studs dans le monde. En raison de cela, Roblox Battle Royale utilise une taille de cellule de grille de 20×16×20 studs, avec des tuiles murales de 20×16×1 studs et des tuiles de sol/plafond de 20×1×20 studs. Cela permet aux tuiles de construction et au terrain de s'aligner correctement.
Chaque pixel de votre image de hauteur doit représenter un voxel de terrain dans le plan X/Z, donc une zone de 5×5 pixels représente une cellule de grille du système de construction qui occupe une zone de 20×20 studs.
Dans votre image de hauteur, assurez-vous que la valeur du canal rouge ou du canal gris pour chaque pixel est divisible par la hauteur de votre cellule de grille du système de construction afin que les tuiles de sol se trouvent bien au-dessus du terrain.
Lorsque vous importez votre hauteur, définissez :
Position (X, Y, Z) = 0, 0, 0Size (X, Y, Z) = heightmap_width × 4, 256, heightmap_length × 4