Sistema de construcción

*Este contenido se traduce usando la IA (Beta) y puede contener errores. Para ver esta página en inglés, haz clic en aquí.

Roblox Battle Royale tiene un sistema de construcción que permite a los usuarios construir sus propias estructuras para alcanzar un mejor ángulo de disparo o proporcionar cubierta durante la batalla. Usando un menú, el usuario puede seleccionar desde un número de diferentes tipos de azulejos y colocarlos en el mundo.

Building Example

Para mantener un sistema ordenado y estructurado:

  • Cada ficha debe conectarse a otra ficha existente o al suelo.
  • Coloca todos los bloques de construcción dentro de una cuadrícula coordinada con el mundo del juego para que los bloques se conecten correctamente y no se superpongan.

Composición de azulejos

Para que los usuarios construyan nuevas fichas con rapidez y facilidad, el sistema de construcción necesita entender qué fichas están conectadas entre sí y dónde se pueden colocar nuevas fichas en la cuadrícula.

Las fichas usan 3 componentes: el recurso visual que se usa como el objeto de ficha, la información sobre el espacio que ocupa el azulejo en referencia a otros objetos del mundo y los puntos de conexión de una ficha que permiten conectar fichas adicionales a los límites disponibles.

Activo

Un activo es un BasePart ( Part , MeshPart , etc.) colocado en 2> ReplicatedStorage/BuildingSystem/Assets2> que representa la apariencia del azulejo en el mundo del juego. Este 5> Class.BasePart5> debe tener dos hijos:

  • Tipo de objeto — A StringValue con un Value del nombre del tipo de azulejo.
  • StartRotation — Un NumberValue con un Value de la rotación inicial del mosaicocuando un usuario lo coloca en el mundo.

Ocupación

Asegurar que una ficha ocupe la ubicación correcta en un sistema de cuadrícula es importante y se puede hacer usando una máscara de bits. Una máscara de bits representa el espacio físico que ocupa el tipo de ficha dentro de una sección básica del espacio del mundo, o celda. Cada objeto de celda/objeto de celda puede ocupar cual

Índice de bitsSignificado
0Cara inferior de la celda
1Cara superior de la celda
2Cara derecha de la celda
3Cara trasera de la celda
4Cara izquierda de la celda
5Cara delantera de la celda
6 +X, –Y, +Z octante de celda con origen en el centro de la celda
7 +X, +Y, +Z octante de celda con origen en el centro de la celda
8 –X, –Y, +Z octante de celda con origen en el centro de la celda
9 –X, +Y, +Z octante de celda con origen en el centro de la celda
10 –X, –Y, –Z octante de celda con origen en el centro de la celda
11 –X, +Y, –Z octante de celda con origen en el centro de la celda
12 +X, –Y, –Z octante de celda con origen en el centro de la celda
13 +X, +Y, –Z octante de celda con origen en el centro de la celda

Conectividad

Las fichas deben conectarse entre sí para crear una estructura. Puedes usar una máscara de bits que representa qué partes de las caras/ bordes de la ficha de celda. La conectividad de un sistema de fichas/objeto está representada por una serie de puntos de conexión, bits, en la superficie de una celda. Se organizan de la siguiente manera en las caras de la celda:

Octant Cube Diagram

Se considera que un objeto del sistema de construcción está conectado a otro objeto del sistema de construcción en la cuadrícula si comparte al menos 2 puntos de conexión en la superficie de una celda.

Creando Nuevos Tipos de Azulejos

Para crear un nuevo introducirde azulejo:

  1. Coloca el activo en ReplicatedStorage/BuildingSystem/Assets . Recuerda que debe contener ObjectType y StartingRotation hijos como definido anteriormente.

    Battle Royale Weapon Example
  2. Defina el Occupancy y Connectivity para su nuevo tipo de azulejo en ReplicatedStorage/BuildingSystem/Libraries/Grid/ObjectTypeConfigurations :

    Battle Royale Weapon Example

Por ejemplo, el tipo de azulejo de pared Wall se expresa como sigue:


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
}

Trabajar con terrenos

Si desea crear un mapa con formulario de terreno que se alinean perfectamente con el sistema de construcción, le recomendamos que use el sistema de importación de altura importar altura como se muestra en terreno ambiental y que observe los siguientes detalles:

  • El terreno en Roblox se representa por un mat阵 de voxels de tres dimensiones, cada uno de los cuales ocupa un cubo de 4×4×4 studs en el mundo. Debido a esto, Roblox Battle Royale usa un tamaño de celda de rejilla de 20×16×20 studs, con paredes de azulejos que son 20×16×1 studs y techos/tejados que son 20

  • Cada píxel en tu imagen de mapa de altura debe representar un voxel de terreno en el X/Z plano, por lo que un área de 5×5 en píxeles representa una celda de sistema de construcción que ocupa un área de 20×20 stud.

  • En su imagen de mapa de altura, asegúrese de que el valor del canal rojo o gris para cada píxel esté dividible por la altura de su celda de red de construcción para que las baldosas del suelo se sienten bien en la parte superior del terreno.

  • Cuando importes tu mapa de altura, establecer:


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