Roblox 배틀 로얄에는 사용자가 자신의 구조물을 건설하여 더 나은 사격 각도를 달성하거나 전투 중 커버를 제공할 수 있는 빌딩 시스템이 있습니다.메뉴를 사용하여 사용자는 여러 가지 타일 유형 중에서 선택하고 세계에 배치할 수 있습니다.

질서 정연하고 구조화된 시스템을 유지하려면:
- 각 타일은 다른 기존 타일이나 지면에 연결해야 합니다.
- 게임 세계와 조율된 격자 내에서 모든 빌딩 타일을 배치하여 타일이 제대로 연결되고 겹치지 않도록 합니다.
타일 구성
사용자가 새로운 타일을 신속하고 쉽게 빌드할 수 있도록 하려면 빌딩 시스템이 어떤 타일이 서로 연결되어 있고 새로운 타일을 그리드에 어디에 배치할 수 있는지 이해해야 합니다.
타일은 3가지 구성 요소를 사용합니다: 타일 개체로 사용되는 시각 자산, 다른 세계 개체에 대한 공간을 차지하는 정보, 그리고 추가 타일이 사용 가능한 가장자리에 연결할 수 있는 타일의 연결 지점.
자산
자산은 BasePart ( Part , MeshPart , 등)를 나타내는 게임 세계에서 타일이 보이는 것을 나타내는 ReplicatedStorage/BuildingSystem/Assets 에 배치됩니다.이 BasePart 는 두 자식을 가져야 합니다:
점유
타일이 그리드 시스템에서 올바른 위치를 차지하도록 하는 것은 중요하며 비트마스크를 사용하여 수행할 수 있습니다.비트마스크는 타일 유형이 세계 공간이나 셀의 기본 섹션 내에서 차지하는 물리적 공간을 나타냅니다.각 빌딩 시스템 타일/개체는 그리드 셀의 전면, 왼쪽, 뒤로, 오른쪽, 상단, 하단의 모든 면과 그리드 셀에서 8개의 각도를 모두 차지할 수 있습니다.사용자는 개체가 차지하는 모든 얼굴과 각도가 해당 셀에 있는 경우에만 빌딩 시스템 개체를 셀에 배치할 수 있습니다.건물 시스템 개체의 점유는 다음과 같이 정의됩니다:
비트 인덱스 | 의미 |
---|---|
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 셀의 중앙에 있는 셀의 8각형 |
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 스터드의 큐브를 차지합니다.이로 인해 Roblox 배틀 로얄은 20×16×20 스터드의 격자 세포 크기, 20×16×1 스터드의 벽 타일 및 20×1×20 스터드의 바닥/천장 타일을 사용합니다.이렇게 하면 타일과 지형이 제대로 맞춰져 배치될 수 있습니다.
높이 맵 이미지의 각 픽셀은 X/Z 평면에서 하나의 지형 복셀을 나타내야 하므로 픽셀 5×5 영역은 20×20 스터드 영역을 차지하는 한 건물 시스템 그리드 셀을 나타냅니다.
높이 맵 이미지에서 각 픽셀에 대한 빨간색 채널 또는 회색 채널 값이 빌딩 시스템 그리드 셀의 높이로 나눌 수 있는지 확인하여 바닥 타일이 지형 위에 잘 배치됩니다.
높이 맵을 가져올 때, 다음을 설정합니다: When you import your heightmap, set:
Position (X, Y, Z) = 0, 0, 0Size (X, Y, Z) = heightmap_width × 4, 256, heightmap_length × 4