Sistema de Construção

*Este conteúdo é traduzido por IA (Beta) e pode conter erros. Para ver a página em inglês, clique aqui.

O Roblox Battle Royale possui um sistema de construção que permite que os usuários construam suas próprias estruturas para alcançar um piso mais alto para um ângulo de tiro melhor ou para fornecer cobertura durante a batalha. Usando um menu, o usuário pode selecionar de uma série de diferentes tipos de telhas e colocá-los no mundo.

Building Example

Para manter um sistema ordenado e estruturado:

  • Cada piso deve se conectar a outro piso existente ou ao chão.
  • Coloque todos os ladrilhos dentro de uma grade coordenada com o mundo do jogo para que os ladrilhos se conectem adequadamente e não se sobreposição.

Composição de Azulejo

Para que os usuários construam novos ladrilhos rapidamente e facilmente, o sistema de construção precisa entender quais ladrilhos estão conectados uns aos outros e onde novos ladrilhos podem ser colocados na grade.

Os mosaicos usam 3 componentes: o recurso visual que é usado como o Objetode mosaico, informações sobre o espaço que o mosaico ocupa em referência a outros objetos do mundo e os pontos de conexão de um mosaico que permitem que mosaicos adicionais se conectem a bordas disponíveis.

Recurso

Um recurso é um BasePart ( Part , MeshPart , etc.) colocado em 1> ReplicatedStorage/BuildingSystem/Assets1> representando como o mosaico parece no mundo do jogo. Este 4> Class.BasePart4> deve ter duas crianças:

  • Tipo de Objeto — Um StringValue com um Value do tipo de nome do mosaico.
  • Começando a Rodar — Um NumberValue com uma Value da rotação inicial do tijoloquando um usuário o coloca no mundo.

Ocupação

Certificar-se de que um mosaico ocupa o local correto em um sistema de grade é importante e pode ser feito usando uma máscara de bit. Uma máscara de bit representa o espaço físico que o tipo de mosaico ocupa dentro de uma seção básica do espaço mundial, ou célula. Cada mosaico de célula/objeto de construção pode ocup

Í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

Conectividade

Os ladrilhos precisam se conectar uns aos outros para criar uma estrutura. Você pode usar uma máscara de bit, que representa o que as partes dos lados/边 do ladrilho tipo de toque. Um ladrilho de sistema de construção/objeto é representado por uma série de pontos de conexão, bits, na superfície de uma célula. Eles se organizam da seguinte maneira nas faces da célula:

Octant Cube Diagram

Um objeto de sistema de construção é considerado conectado a outro objeto de sistema de construção na grade se eles compartilharem pelo menos 2 pontos de conexão na superfície de uma célula.

Criando Novos Tipos de Azulejo

Para criar um novo digitarde mosaico:

  1. Coloque o recurso em ReplicatedStorage/BuildingSystem/Assets . Lembre-se de que deve conter filhos ObjectType e StartingRotation definidos acima.

    Battle Royale Weapon Example
  2. Defina o Ocupação e Conectividade para o seu novo tipo de telha em ReplicatedStorage/BuildingSystem/Libraries/Grid/ObjectTypeConfigurations :

    Battle Royale Weapon Example

Por exemplo, o tipo de mosaico da parede Wall é expresso da seguinte forma:


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
}

Trabalhando com Terreno

Se você gostaria de criar um mapa com terreno livre que se alinha perfeitamente com o sistema de construção, recomendamos que você use o sistema de importação de altura descrito em terreno ambiental e observe os seguintes detalhes:

  • Terreno no Roblox é representado por um array de voxels de três dimensões, cada um dos quais ocupa um cube de 4×4×4 studs no mundo. Devido a isso, o Roblox Battle Royale usa um tamanho de grade de 20×16×20 studs, com telhas de parede que são 20×16×1 studs e telhas de piso/teto que são 20×1×2

  • Cada pível de pixel em sua imagem de mapa de altura deve representar um voxel de terreno no X/Z plano, para que uma área de 5×5 em pixels represente uma célula de grade de sistema de construção que ocupa uma área de 20×20.

  • In sua imagem de mapa de altura, certifique-se de que o valor do canal vermelho ou cinza para cada pixel é dividível pela altura de sua grade de sistema de construção para que os ladrilhos do piso fiquem bem acima do terreno.

  • Quando você importar seu mapa de altura, configurar:


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