Sistema di costruzione

*Questo contenuto è tradotto usando AI (Beta) e potrebbe contenere errori. Per visualizzare questa pagina in inglese, clicca qui.

Roblox Battle Royale presenta un sistema di costruzione che consente agli utenti di costruire le proprie strutture per raggiungere altezze superiori e avere un miglior angolo di tiro, o per fornire copertura durante la battaglia. Utilizzando un menu, l'utente può selezionare tra diversi tipi di piastrelle e posizionarle nel mondo.

Esempio di costruzione

Per mantenere un sistema ordinato e strutturato:

  • Ogni piastrella deve collegarsi a un'altra piastrella esistente o al terreno.
  • Posiziona tutte le piastrelle da costruzione all'interno di una griglia coordinata con il mondo 3D in modo che le piastrelle si colleghino correttamente e non si sovrappongano.

Composizione delle piastrelle

Affinché gli utenti possano costruire nuove piastrelle in modo rapido e semplice, il sistema di costruzione deve comprendere quali piastrelle sono collegate tra loro e dove possono essere posizionate nuove piastrelle nella griglia.

Le piastrelle utilizzano 3 componenti: l'asset visivo che viene utilizzato come oggetto piastrella, informazioni riguardanti lo spazio occupato dalla piastrella in riferimento ad altri oggetti del mondo, e i punti di connessione di una piastrella che consentono ad ulteriori piastrelle di collegarsi ai bordi disponibili.

Asset

Un asset è un BasePart (Part, MeshPart, ecc.) collocato in ReplicatedStorage/BuildingSystem/Assets che rappresenta l'aspetto della piastrella nel mondo 3D. Questo BasePart deve avere due figli:

  • ObjectType — Un StringValue con un Value del nome del tipo di piastrella.
  • StartingRotation — Un NumberValue con un Value della rotazione iniziale della piastrella quando un utente la posiziona nel mondo.

Occupancy

Assicurarsi che una piastrella occupi la posizione corretta in un sistema a griglia è importante e può essere fatto utilizzando una bitmask. Una bitmask rappresenta lo spazio fisico che il tipo di piastrella occupa all'interno di una sezione base dello spazio del mondo, o cella. Ogni piastrella/oggetto del sistema di costruzione può occupare un numero qualsiasi di facce di una cella della griglia (fronte, sinistra, retro, destra, cima e fondo) e un numero qualsiasi di ottanti in una cella della griglia. Un utente può posizionare un oggetto del sistema di costruzione in una cella solo se tutte le facce e gli ottanti che l'oggetto occupa sono disponibili in quella cella. L'occupazione per un oggetto del sistema di costruzione è definita come segue:

Indice bitSignificato
0Faccia inferiore della cella
1Faccia superiore della cella
2Faccia destra della cella
3Faccia posteriore della cella
4Faccia sinistra della cella
5Faccia anteriore della cella
6+X, –Y, +Z ottante della cella con origine al centro della cella
7+X, +Y, +Z ottante della cella con origine al centro della cella
8–X, –Y, +Z ottante della cella con origine al centro della cella
9–X, +Y, +Z ottante della cella con origine al centro della cella
10–X, –Y, –Z ottante della cella con origine al centro della cella
11–X, +Y, –Z ottante della cella con origine al centro della cella
12+X, –Y, –Z ottante della cella con origine al centro della cella
13+X, +Y, –Z ottante della cella con origine al centro della cella

Connectivity

Le piastrelle devono collegarsi tra loro per creare una struttura. È possibile utilizzare una bitmask che rappresenta quali porzioni delle facce/bordi della cella il tipo di piastrella tocca. La connettività di un piastrella/oggetto del sistema di costruzione è rappresentata da una serie di punti di connessione, bit, sulla superficie di una cella. Si distribuiscono nel seguente modo sulle facce della cella:

Diagramma Cubo Ottante

Un oggetto del sistema di costruzione è considerato connesso a un altro oggetto del sistema di costruzione nella griglia se condividono almeno 2 punti di connettività sulla superficie di una cella.

Crea nuovi tipi di piastrella

Per creare un nuovo tipo di piastrella:

  1. Posiziona l'asset in ReplicatedStorage/BuildingSystem/Assets. Ricorda che deve contenere i figli ObjectType e StartingRotation come definito sopra.

    Esempio di Arma del Battle Royale
  2. Definisci l'Occupancy e la Connectivity per il tuo nuovo tipo di piastrella in ReplicatedStorage/BuildingSystem/Libraries/Grid/ObjectTypeConfigurations:

    Esempio di Arma del Battle Royale

Ad esempio, il tipo di piastrella Muro è espresso come segue:


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
}

Lavora con il terreno

Se desideri creare una mappa con terrain libero che si allinea perfettamente con il sistema di costruzione, ti consigliamo di utilizzare il sistema di importazione heightmap come delineato in Terreno Ambientale e di osservare i seguenti dettagli:

  • Il terreno in Roblox è rappresentato da un array tridimensionale di voxel, ognuno dei quali occupa un cubo di 4×4×4 stud nel mondo. Per questo motivo, Roblox Battle Royale utilizza una dimensione della cella della griglia di 20×16×20 stud, con piastrelle da muro che sono 20×16×1 stud e piastrelle da pavimento/soffitto che sono di dimensioni 20×1×20 stud. Ciò consente alle piastrelle di costruzione e al terreno di allinearsi correttamente.

  • Ogni pixel nella tua immagine heightmap dovrebbe rappresentare un voxel terreno nel piano X/Z, quindi un'area di 5×5 pixel rappresenta una cella della griglia del sistema di costruzione che occupa un'area di 20×20 stud.

  • Nella tua immagine heightmap, assicurati che il valore del canale rosso o del canale grigio per ogni pixel sia divisibile per l'altezza della cella della griglia del sistema di costruzione in modo che le piastrelle del pavimento si posizionino bene sopra il terreno.

  • Quando importi la tua heightmap, imposta:


    Position (X, Y, Z) = 0, 0, 0
    Size (X, Y, Z) = heightmap_width × 4, 256, heightmap_length × 4
© 2026 Roblox Corporation. Roblox, il logo Roblox e Powering Imagination sono tra i nostri marchi registrati e non registrati negli Stati Uniti. e altri paesi.