Roblox Battle Royale intègre un système de construction qui permet aux utilisateurs de construire leurs propres structures pour atteindre un meilleur angle de tir ou de fournir une couverture pendant la bataille. En utilisant un menu, l'utilisateur peut sélectionner parmi une série de différents types de carreaux et les placer dans le monde.
Pour maintenir un système ordonné et structuré :
- Chaque carre doit se connecter à une autre carre existante ou au sol.
- Placez toutes les tuiles de construction dans une grille coordonnée avec le monde du jeu afin que les tuiles se connectent correctement et ne se chevauchent pas.
Composition de tuile
Pour que les utilisateurs puissent rapidement et facilement construire de nouvelles carreaux, le système de construction doit comprendre les carreaux qui sont connectés les uns aux autres et où de nouvelles carreaux peuvent être placés sur la grille.
Les carreaux utilisent 3 composants : la ressource visuelle qui est utilisée comme l'objet de carrelage, les informations sur l'espace que la carrelage occupe en référence à d'autres objets du monde et les points de connexion d'un carrelage qui permet à des carreaux supplémentaires de se connecter aux bords disponibles.
Ressource
Une ressource est un BasePart ( Part , MeshPart , etc.) placé dans 1> ReplicatedStorage/BuildingSystem/Assets1> représentant à quoi ressemble la case dans le monde du jeu. Ce 4> Class.BasePart4> doit avoir deux enfants :
- Rotation de démarrage — A NumberValue avec une rotation de démarrage de la pavélorsqu'un utilisateur la place dans le monde.
Occupation
Assurer qu'une tuile occupe le bon emplacement dans un système de grille est important et peut être fait à l'aide d'un masque de bit. Un masque de bit représente l'espace physique que la zone de type de carrelage prend dans une section de base de l'espace du monde, ou de la cellule. Chaque objet de carrelage/tuile peut occuper n'
Index des bits | Signification |
---|---|
0 | Visage inférieur de la cellule |
1 | Visage supérieur de la cellule |
2 | Visage de droite de la cellule |
3 | Visage arrière de la cellule |
4 | Visage de gauche de la cellule |
5 | Visage de devant de la cellule |
6 | +X, –Y, +Z octant de cellule avec origine au centre de la cellule |
7 | +X, +Y, +Z octant de cellule avec origine au centre de la cellule |
8 | –X, –Y, +Z octant de cellule avec origine au centre de la cellule |
9 | –X, +Y, +Z octant de cellule avec origine au centre de la cellule |
10 | –X, –Y, –Z octant de cellule avec origine au centre de la cellule |
11 | –X, +Y, –Z octant de cellule avec origine au centre de la cellule |
12 | +X, –Y, –Z octant de cellule avec origine au centre de la cellule |
13 | +X, +Y, –Z octant de cellule avec origine au centre de la cellule |
Connectivité
Les carreaux doivent se connecter les uns aux autres pour créer une structure. Vous pouvez utiliser un masque de bit qui représente le type de cellule que les carreaux touchent. Un élément de construction de carrelage/objet's connectivité est représenté par une série de points de connexion, de bits, sur la surface d'une cellule. Ils s'organisent de la façon suivante sur les visages de la cellule :
Un objet de système de construction est considéré comme connecté à un autre objet de 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 carreaux
Pour créer un nouveau taperde carrelage :
Placez la ressource dans ReplicatedStorage/BuildingSystem/Assets . N'oubliez pas que cela doit contenir ObjectType et StartingRotation enfants comme défini ci-dessus.
Définissez le Occupation et Connectivité pour votre nouveau type de carrelage dans ReplicatedStorage/BuildingSystem/Libraries/Grid/ObjectTypeConfigurations :
Par exemple, le type de carrelage Mur est expressé comme suivant :
ObjectTypeConfigurations.Wall = {ASSET_OFFSET_FROM_CENTER = Vector3.new(0, 0, -CELL_DIMENSIONS.Z / 2),CONNECTIVITY = 0xFF8000, -- 0 b 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 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 de voxels trois dimensionnés, chacun desquels occupe un cube de 4 × 4 × 4 dans le monde. En raison de cela, Roblox Battle Royale utilise une taille de grille de 20 × 16 × 20, avec des carreaux de mur qui sont 20 × 16 × 1 carreaux et des carreaux de sol/plafond qui sont 2
Chaque pixel dans votre image de carte de hauteur doit représenter un voxel de terrain dans l' X/Z plane, so a 5×5 area in pixels représente un nombre de cellules de grille de système de construction qui couvre une zone 20×20 stud.
Dans votre image de carte de hauteur, assurez-vous que la valeur du canal rouge ou gris pour chaque pixel est divisible par la hauteur de votre cellule de grille de système de construction afin que les carreaux de sol s'assient correctement au-dessus du terrain.
Lors de l'importation de votre carte de hauteur, configurer:
Position (X, Y, Z) = 0, 0, 0Size (X, Y, Z) = heightmap_width × 4, 256, heightmap_length × 4