建造系統

*此內容是使用 AI(Beta 測試版)翻譯,可能含有錯誤。若要以英文檢視此頁面,請按一下這裡

Roblox Battle Royale 包含一個建造系統,讓用戶可以建造自己的結構來達到更好的射擊角度,或提供更好的保護。使用菜單,用戶可以從一系列不同的瓷磚類型中選擇,並將它們放置在世界中。

Building Example

要維護一個整潔且結構清晰的系統:

  • 每個瓷磚必須連接到另一個已存在的瓷磚或地面。
  • 將所有建築磚放置在網格中,與遊戲世界協調,以便磚塊正確連接並不會重疊。

磚格組合

為了讓使用者快速建造新磚塊,建造系統需要了解哪些磚塊連接在一起,並且在網格上放置新磚塊。

磚塊使用 3 個零件:視覺資產,用作磚塊對象,用於參照其他世界物件的空間,以及磚塊的連接點,讓可用的磚塊連接到可用邊邊。

資產

資產是一個 BasePart ( Part , MeshPart 等) 放置在 1> ReplicatedStorage/BuildingSystem/Assets1> 代表鋪貼在遊戲世界中的地磚。這個 4> Class.BasePart4> 必須有兩個子女:

  • 對象類型 — 用 StringValue 與磚塊類型名稱的 Value。
  • 開始旋轉NumberValue 配有 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 ,表示磚塊類型的位置在牢房的表面。 磚塊系統的磚塊/對象的連接性是由一系列連接點、位元、在牢房的表面上代表。 它們以下表示在牢房的表面上:

Octant Cube Diagram

建築系統對象與網格上的另一個建築系統對象相連,如果在單位面積上共有至少 2 個連接點。

創建新的瓷磚類型

要創建新的瓷磚輸入:

  1. 將資產放置在 ReplicatedStorage/BuildingSystem/Assets 中。記住它必須包含 ObjectTypeStartingRotation 兒童,如定義上所述。

    Battle Royale Weapon Example
  2. 為您的新瓷磚類型在 ReplicatedStorage/BuildingSystem/Libraries/Grid/ObjectTypeConfigurations 中定義 佔位 和 ReplicatedStorage/BuildingSystem/Libraries/Grid/ObjectTypeConfigurations

    Battle Royale Weapon Example

舉例來說, 瓷磚類型的表示方式如下:


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
}

使用地形

如果您想要使用免費形式的 地形 與建築系統完美對接,我們建議您使用 高度地圖匯入系統 作為在 環境地形 中所述的步驟進行:

  • Roblox 中的地形由三個方向的陣列代表,其中每個陣列佔用 4×4×4 格子的世界。因此,Roblox 戰鬥競技賽使用網格細胞尺寸為 20×16×20 格子,並且有牆壁磚格 20×16×1 格子和天花板�

  • 您的高度地圖圖像中的每個像素應該代表一個地形 voxel 在 X/Z 平面,因此 5×5 區域在像素中代表一個建築系統網格細胞,佔用 20×20 格子區域。

  • 在您的高度地圖圖像中,確認每個像素的紅色或灰色通道值與您的建築系統網格牢分,以便地板瓷磚能夠正確放置在地形上。

  • 當你匯入你的高度地圖時,設定:


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