Roblox Battle Royale มีระบบการสร้างที่ช่วยให้ผู้ใช้สามารถสร้างโครงสร้างของตนเองเพื่อเข้าถึงที่สูงขึ้นเพื่อมุมยิงที่ดีกว่า หรือเพื่อให้การปกป้องในระหว่างการต่อสู้ โดยใช้เมนู ผู้ใช้สามารถเลือกจากประเภทของแผ่นกระเบื้องที่แตกต่างกันจำนวนหนึ่งและวางลงในโลก

เพื่อรักษาระบบที่มีระเบียบและมีโครงสร้าง:
- แผ่นกระเบื้องแต่ละแผ่นต้องเชื่อมต่อกับแผ่นกระเบื้องที่มีอยู่แล้วหรือกับพื้นดิน
- วางแผ่นกระเบื้องทั้งหมดในกริดที่ประสานกับโลกสามมิติเพื่อให้แผ่นกระเบื้องเชื่อมต่ออย่างถูกต้องและไม่ทับซ้อนกัน
องค์ประกอบของแผ่นกระเบื้อง
เพื่อให้ผู้ใช้สามารถสร้างแผ่นกระเบื้องใหม่ได้อย่างรวดเร็วและง่ายดาย ระบบการสร้างต้องเข้าใจว่าแผ่นกระเบื้องไหนเชื่อมต่อกันและที่ไหนสามารถวางแผ่นกระเบื้องใหม่ลงในกริดได้
แผ่นกระเบื้องมี 3 ส่วนประกอบ: สินทรัพย์ ที่ใช้เป็นวัตถุแผ่นกระเบื้อง ข้อมูลเกี่ยวกับ พื้นที่ที่แผ่นกระเบื้องครอบครอง โดยอิงกับวัตถุในโลกอื่น ๆ และ จุดเชื่อมต่อ ของแผ่นกระเบื้องที่อนุญาตให้แผ่นกระเบื้องเพิ่มเติมเชื่อมต่อกับขอบที่มีอยู่
สินทรัพย์
สินทรัพย์คือ BasePart (Part, MeshPart เป็นต้น) ที่วางอยู่ใน ReplicatedStorage/BuildingSystem/Assets ซึ่งแสดงถึงลักษณะของแผ่นกระเบื้องในโลกสามมิติ 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 ตามที่กำหนดไว้ข้างต้น

กำหนด การครอบครอง และ การเชื่อมต่อ สำหรับประเภทแผ่นกระเบื้องใหม่ของคุณใน ReplicatedStorage/BuildingSystem/Libraries/Grid/ObjectTypeConfigurations:

ตัวอย่าง เช่น ประเภทแผ่นกระเบื้อง Wall จะแสดงดังนี้:
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}
ทำงานร่วมกับภูมิประเทศ
หากคุณต้องการสร้างแผนที่ที่มีภูมิประเทศที่ไม่เป็นระเบียบ terrain ที่มีความตรงกันกับระบบการสร้าง เราขอแนะนำให้คุณใช้ระบบ heightmap import ตามที่ระบุใน Environmental Terrain และให้คุณปฏิบัติตามรายละเอียดต่อไปนี้:
ภูมิประเทศใน Roblox แทนที่จะเป็นอาเรย์สามมิติของวอกเซลแต่ละตัวที่ครอบครองลูกบาศก์ขนาด 4×4×4 สตั๊ดในโลก ด้วยเหตุนี้ Roblox Battle Royale จึงใช้ขนาดเซลล์กริดที่ 20×16×20 สตั๊ด โดยมีแผ่นกระเบื้องผนังขนาด 20×16×1 สตั๊ด และแผ่นกระเบื้องพื้น/เพดานขนาด 20×1×20 สตั๊ด ขนาดนี้ช่วยให้แผ่นกระเบื้องสร้างและภูมิประเทศตรงกันได้อย่างถูกต้อง
ทุกพิกเซลในภาพ heightmap ของคุณควรแทนที่วอกเซลภูมิประเทศหนึ่งตัวใน X/Z แพลน ซึ่งพื้นที่ขนาด 5×5 พิกเซลแทนที่เซลล์กริดในระบบการสร้างที่ครอบครองพื้นที่ขนาด 20×20 สตั๊ด
ในภาพ heightmap ของคุณ โปรดตรวจสอบให้แน่ใจว่าค่าช่องสัญญาณแดงหรือช่องสัญญาณเทาของแต่ละพิกเซลสามารถหารด้วยความสูงของเซลล์กริดระบบการสร้างของคุณได้เพื่อให้แผ่นกระเบื้องชั้นนั่งอยู่บนภูมิประเทศได้อย่างสวยงาม
เมื่อคุณนำเข้า heightmap ให้ตั้งค่า:
Position (X, Y, Z) = 0, 0, 0Size (X, Y, Z) = heightmap_width × 4, 256, heightmap_length × 4