Roblox Battle Royale 包含一個建造系統,讓用戶可以建造自己的結構來達到更好的射擊角度,或提供更好的保護。使用菜單,用戶可以從一系列不同的瓷磚類型中選擇,並將它們放置在世界中。
要維護一個整潔且結構清晰的系統:
- 每個瓷磚必須連接到另一個已存在的瓷磚或地面。
- 將所有建築磚放置在網格中,與遊戲世界協調,以便磚塊正確連接並不會重疊。
磚格組合
為了讓使用者快速建造新磚塊,建造系統需要了解哪些磚塊連接在一起,並且在網格上放置新磚塊。
磚塊使用 3 個零件:視覺資產,用作磚塊對象,用於參照其他世界物件的空間,以及磚塊的連接點,讓可用的磚塊連接到可用邊邊。
資產
資產是一個 BasePart ( Part , MeshPart 等) 放置在 1> ReplicatedStorage/BuildingSystem/Assets1> 代表鋪貼在遊戲世界中的地磚。這個 4> Class.BasePart4> 必須有兩個子女:
- 對象類型 — 用 StringValue 與磚塊類型名稱的 Value。
佔用
確保地磚在網格系統中的正確位置是重要的,並且可以使用 bitmask 來做到。 bitmask 代表物理空間,該類型的地磚佔用基本區域內的物理空間,或稱牢子。 每個建築系統的地磚/對象可以
位元索引 | 意義 |
---|---|
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 八角貼片的兩邊分別在細胞中央 |
連接性
磚塊需要連接到一起來創建結構。 您可以使用一個位置標識表示磚塊類型的 bitMask ,表示磚塊類型的位置在牢房的表面。 磚塊系統的磚塊/對象的連接性是由一系列連接點、位元、在牢房的表面上代表。 它們以下表示在牢房的表面上:
建築系統對象與網格上的另一個建築系統對象相連,如果在單位面積上共有至少 2 個連接點。
創建新的瓷磚類型
要創建新的瓷磚輸入:
將資產放置在 ReplicatedStorage/BuildingSystem/Assets 中。記住它必須包含 ObjectType 和 StartingRotation 兒童,如定義上所述。
為您的新瓷磚類型在 ReplicatedStorage/BuildingSystem/Libraries/Grid/ObjectTypeConfigurations 中定義 佔位 和 ReplicatedStorage/BuildingSystem/Libraries/Grid/ObjectTypeConfigurations :
舉例來說, 牆 瓷磚類型的表示方式如下:
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 格子和天花板�
您的高度地圖圖像中的每個像素應該代表一個地形 voxel 在 X/Z 平面,因此 5×5 區域在像素中代表一個建築系統網格細胞,佔用 20×20 格子區域。
在您的高度地圖圖像中,確認每個像素的紅色或灰色通道值與您的建築系統網格牢分,以便地板瓷磚能夠正確放置在地形上。
當你匯入你的高度地圖時,設定:
Position (X, Y, Z) = 0, 0, 0Size (X, Y, Z) = heightmap_width × 4, 256, heightmap_length × 4