Roblox 배틀 로얄은 사용자가 더 나은 사격 각도를 위해 높은 지대를 만들거나 전투 중 피신할 수 있는 구조물을 만들 수 있는 빌딩 시스템을 제공합니다. 메뉴를 사용하여 사용자는 다양한 타일 유형 중에서 선택하고 이를 세계에 배치할 수 있습니다.

조직적이고 구조화된 시스템을 유지하기 위해:
- 각 타일은 다른 기존 타일이나 바닥에 연결되어야 합니다.
- 모든 빌딩 타일을 3D 세계와 연동된 그리드에 배치하여 타일이 제대로 연결되고 겹치지 않도록 해야 합니다.
타일 구성
사용자가 새로운 타일을 신속하고 쉽게 만들 수 있도록 빌딩 시스템은 서로 연결된 타일과 그리드에 새 타일을 배치할 수 있는 위치를 이해해야 합니다.
타일은 3개의 구성 요소를 사용합니다: 타일 객체로 사용되는 비주얼 자산, 다른 세계 객체에 대한 정보인 타일이 차지하는 공간, 추가 타일이 사용 가능한 가장자리에 연결할 수 있도록 하는 타일의 연결 포인트.
자산
자산은 ReplicatedStorage/BuildingSystem/Assets에 배치된 BasePart(Part, MeshPart 등)으로 3D 세계에서 타일의 모양을 나타냅니다. 이 BasePart는 두 개의 자식이 있어야 합니다:
점유
타일이 그리드 시스템에서 올바른 위치를 차지하는지 확인하는 것은 중요하며 비트마스크를 사용하여 수행할 수 있습니다. 비트마스크는 기본 세계 공간 섹션 또는 셀 내에서 타일 유형이 차지하는 물리적 공간을 나타냅니다. 각 빌딩 시스템 타일/객체는 그리드 셀의 모든 면(앞, 왼쪽, 뒤, 오른쪽, 위, 아래)과 셀 내의 여러 옥탠트를 차지할 수 있습니다. 사용자는 객체가 차지하는 모든 면과 옥탠트가 해당 셀에 사용 가능할 때만 빌딩 시스템 객체를 셀에 배치할 수 있습니다. 빌딩 시스템 객체의 점유는 다음과 같이 정의됩니다:
| 비트 인덱스 | 의미 |
|---|---|
| 0 | 셀의 하단 면 |
| 1 | 셀의 상단 면 |
| 2 | 셀의 오른쪽 면 |
| 3 | 셀의 뒷면 |
| 4 | 셀의 왼쪽 면 |
| 5 | 셀의 앞면 |
| 6 | +X, –Y, +Z 셀의 옥탠트, 셀의 중심을 원점으로 |
| 7 | +X, +Y, +Z 셀의 옥탠트, 셀의 중심을 원점으로 |
| 8 | –X, –Y, +Z 셀의 옥탠트, 셀의 중심을 원점으로 |
| 9 | –X, +Y, +Z 셀의 옥탠트, 셀의 중심을 원점으로 |
| 10 | –X, –Y, –Z 셀의 옥탠트, 셀의 중심을 원점으로 |
| 11 | –X, +Y, –Z 셀의 옥탠트, 셀의 중심을 원점으로 |
| 12 | +X, –Y, –Z 셀의 옥탠트, 셀의 중심을 원점으로 |
| 13 | +X, +Y, –Z 셀의 옥탠트, 셀의 중심을 원점으로 |
연결성
타일은 서로 연결되어 구조를 만들어야 합니다. 타일 유형이 셀의 면/모서리의 어떤 부분에 닿는지를 나타내는 비트마스크를 사용할 수 있습니다. 빌딩 시스템 타일/객체의 연결성은 셀의 표면에 있는 연결 포인트의 비트로 표현됩니다. 이들은 셀의 면에 다음과 같이 배열됩니다:

하나의 빌딩 시스템 객체는 그리드 내에서 서로 연결된 또 다른 빌딩 시스템 객체와 연결되어 있으며, 이들은 셀 표면에서 최소 2개의 연결 포인트를 공유해야 합니다.
새로운 타일 유형 만들기
새로운 타일 유형을 만들려면:
자산을 ReplicatedStorage/BuildingSystem/Assets에 배치합니다. 위에서 정의한 대로 ObjectType 및 StartingRotation 자식이 포함되어 있어야 합니다.

예를 들어, 벽 타일 유형은 다음과 같이 표현됩니다:
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}
지형 작업
빌딩 시스템과 완벽하게 정렬된 자유형 지형을 가진 맵을 만들고 싶다면, 환경 지형에서 설명하는 높이맵 가져오기 시스템을 사용하는 것을 권장하며 다음 세부 사항을 준수해야 합니다:
Roblox의 지형은 각각이 세계에서 4×4×4 스터드의 큐브를 차지하는 3차원 배열의 복셀로 표현됩니다. 이로 인해 Roblox 배틀 로얄은 20×16×20 스터드의 그리드 셀 크기를 사용하며, 벽 타일은 20×16×1 스터드, 바닥/천장 타일은 20×1×20 스터드 크기입니다. 이를 통해 빌딩 타일과 지형이 정확히 정렬될 수 있습니다.
높이맵 이미지의 각 픽셀은 X/Z 평면의 하나의 지형 복셀을 나타내야 하며, 따라서 5×5 픽셀 영역은 20×20 스터드 영역을 차지하는 하나의 빌딩 시스템 그리드 셀을 나타냅니다.
높이맵 이미지에서 각 픽셀의 빨간색 채널 또는 회색 채널 값이 빌딩 시스템 그리드 셀의 높이로 나누어 떨어지는지 확인하여 바닥 타일이 지형 위에 잘 앉도록 해야 합니다.
높이맵을 가져올 때 다음을 설정하세요:
Position (X, Y, Z) = 0, 0, 0Size (X, Y, Z) = heightmap_width × 4, 256, heightmap_length × 4
