การสร้างสถานีในลักษณะโมดูลาร์ช่วยให้เราสามารถอัปเดตและเผยแพร่การอัปเดตเนื้อหาได้อย่างราบรื่น และเป็นกุญแจสำคัญในการทำให้แน่ใจว่าเราไม่ต้องใช้เวลาหลายชั่วโมงในการอัปเดตเมช, เท็กซ์เจอร์, ส่วนประกอบ และอื่นๆ
แพ็คเกจของ Roblox ช่วยให้เราสามารถบรรลุการออกแบบโมดูลาร์นี้ได้โดยการบรรจุชุดของ Meshparts ที่สามารถเชื่อมต่อกันได้ง่าย, ชุดแผ่นตัด, และโหนด SurfaceAppearance ที่ MeshParts สามารถแชร์ได้ สิ่งนี้ทำให้เราสามารถปรับตัวเข้ากับการเปลี่ยนแปลงในเลย์เอาต์และขนาดระหว่างการทดสอบการเล่นในช่วงแรก และทำให้กระบวนการเติมเต็มสถานีเร็วขึ้นมาก

การออกแบบที่ยืดหยุ่นไปจนถึงศิลปะสุดท้าย
เมื่อเราเริ่มต้นครั้งแรก เราไม่มีความเข้าใจอย่างครบถ้วนเกี่ยวกับสิ่งที่เราต้องการให้มีในสถานี หรือขนาดที่มันต้องการสำหรับผู้เล่น 50 คน
เพื่อหาคำตอบ เราเริ่มต้นด้วยการสร้างสภาพแวดล้อมโดยใช้ Parts และนำเข้าเมชบางส่วน เช่น รูปร่างของโดมจากแอปพลิเคชัน DCC ภายนอกของเรา เช่น Maya หรือ Blender ด้วยรูปร่างที่เรียบง่ายเหล่านี้ เราปรับขนาดของแผนที่, การจัดเรียงของห้อง, และเส้นทางเพื่อค้นหาการจัดเรียงที่สนุกที่สุด ไม่ว่าจะสำหรับเกมหรือประสบการณ์ทางสังคม ระยะเริ่มต้นนี้มักจะมีความพลิกผันมากที่สุด
เมื่อสร้างเลย์เอาต์ของสถานี สิ่งที่สำคัญที่สุดในการกระตุ้นการสำรวจคือการให้ผู้ใช้มีเป้าหมาย ในกรณีนี้ เป้าหมายที่ชัดเจนที่สุดคือการมองดูหลุมดำให้ใกล้ขึ้น ต่อไป เรารู้ว่าการให้เส้นทางตรงไปยังหลุมดำจะน่าเบื่อ เพราะผู้เล่นสามารถเดินจากจุดเกิดไปยังจุดสิ้นสุดของแผนที่ได้ง่าย เราจึงทำให้เส้นทางแตกออกเพื่อให้ผู้เล่นไม่สามารถไปถึงหลุมดำได้โดยไม่ต้องไปดูสิ่งอื่นๆ ที่อาจดึงดูดพวกเขาเช่นกัน
การออกแบบโมดูลาร์ช่วยให้เราสามารถทำการเปลี่ยนแปลงดังกล่าวในสภาพแวดล้อมได้โดยไม่ต้องทำการปรับปรุงการออกแบบโดยรวมอย่างรุนแรง เราสามารถย้ายส่วนต่างๆ ของสถานีเพื่อทดลองกับแนวคิดการเล่นที่แตกต่างกัน ในที่สุด ชิ้นส่วนโมดูลาร์เหล่านี้สามารถอัปเดตได้โดยใช้แพ็คเกจ ดังนั้นเราจึงไม่ต้องสร้างหลายเวอร์ชันของสินทรัพย์เดียวกัน




การออกแบบโมดูลาร์ของ Kerr-Newman DSR-14
สถานีอวกาศใช้เพียงไม่กี่ชิ้นส่วนของพาเลตโมดูลาร์ ชิ้นส่วนพาเลตโมดูลาร์เป็นสินทรัพย์ที่สามารถนำกลับมาใช้ใหม่ได้ หมายความว่าเราไม่ต้องสร้างแต่ละผนังอย่างเป็นเอกลักษณ์ แต่สามารถประกอบผนังขนาดเล็กหลายๆ ชิ้นได้ สิ่งนี้ช่วยให้มีความยืดหยุ่นในเลย์เอาต์ขณะสร้าง
นี่คือเคล็ดลับบางประการที่ช่วยให้เราสร้างการออกแบบโมดูลาร์ของเรา:
กำหนดขนาดกริดที่สม่ำเสมอ — สำหรับสถานี เราได้กำหนดขนาดกริดที่ 16 สตัดเพื่อสร้างชุดโมดูลาร์ส่วนใหญ่ ขนาดกริดที่คุณใช้เป็นเรื่องตามอำเภอใจ แต่ควรมีความสอดคล้องกันตลอดทั้งโครงการและในหมู่ศิลปินทุกคนที่ทำงานในโครงการนั้น การกำหนดขนาดกริดในช่วงเริ่มต้นของโครงการของคุณจะทำให้แน่ใจว่าชิ้นส่วนแต่ละชิ้นพอดีกับชิ้นส่วนถัดไปได้อย่างสวยงาม นอกจากนี้ยังช่วยให้คุณสามารถสลับชิ้นส่วนได้ง่าย เช่น การสลับส่วนผนังกับส่วนประตู
หน่วยทั้งหมดนำเข้าเป็นสตัด — เมื่อสร้างเมชในแอปพลิเคชัน DCC อื่นๆ เช่น Maya หรือ Blender สตูดิโอจะไม่แปลงเมตร, เซนติเมตร, ฟุต หรือนิ้ว — มันจะเปลี่ยนหน่วยที่เข้ามาเป็นหน่วยเดียวกันในสตัด ตัวอย่างเช่น หากคุณตั้งค่าหน่วยเป็นเมตร สตูดิโอจะแปลง 2 เมตรเป็น 2 สตัด ควรถือว่าขนาดหน่วยในแอปพลิเคชันที่คุณเลือกเป็นขนาดสตัดใน Roblox ขนาดที่ใกล้เคียงที่สุดในโลกจริงสำหรับสตัดเดียวใน Roblox คือ 28 เซนติเมตร
ทำให้ชิ้นส่วนเรียบง่าย — อย่าพยายามสร้างชิ้นส่วนทุกชิ้นที่คุณคิดว่าคุณจะต้องการในอนาคต แนวคิดคือการมีชิ้นส่วนที่หลากหลายเพียงไม่กี่ชิ้นและไม่มากเกินไป ชิ้นส่วนที่คุณมีมากขึ้นจะใช้เวลามากขึ้นในการสร้างแต่ละชิ้น และมีผลต่อหน่วยความจำและงบประมาณประสิทธิภาพโดยรวมของคุณ คุณสามารถเพิ่มชิ้นส่วนอื่นลงในชุดของคุณได้หากจำเป็นจริงๆ
ใช้แพ็คเกจ — แปลงชิ้นส่วนโมดูลาร์ทุกชิ้นเป็นแพ็คเกจและใส่วัสดุในแพ็คเกจก่อนที่คุณจะเริ่มเติมเต็มในเกมของคุณ สิ่งนี้ช่วยให้คุณสามารถผลักดันการอัปเดตไปยังทุกอินสแตนซ์ได้อย่างง่ายดาย เราจะพูดถึงแพ็คเกจในภายหลัง
ภาพหน้าจอด้านล่างแสดงให้คุณเห็นวิธีการต่างๆ ที่เราใช้การออกแบบโมดูลาร์ในการสร้างส่วนต่างๆ ของสถานี




สร้างแผ่นตัด
เท็กซ์เจอร์ 1:1 เป็นแนวทางในอนาคต แต่จะมีค่าใช้จ่ายสูงในแง่ของงบประมาณหน่วยความจำและเวลาในการสร้าง สำหรับสถานีอวกาศ 90% ขององค์ประกอบทางสถาปัตยกรรมใช้ชุดแผ่นตัดที่สามารถสลับได้เพียงไม่กี่ชุด ซึ่งเป็นชุดของแผนที่เท็กซ์เจอร์ที่จัดเรียงในลักษณะแนวตั้งหรือแนวนอน แต่ละแถวหรือคอลัมน์ของแผ่นมีลักษณะเฉพาะที่ไม่ซ้ำกัน ทำให้คุณมีการรักษาพื้นผิวที่แตกต่างกันให้เลือกเมื่อทำการคลี่โมเดล โดยใช้แผ่นภาพเพียงแผ่นเดียว
นี่คือเคล็ดลับบางประการในการทำแผ่นตัด:
เริ่มต้นด้วยการสำรวจประเภทของวัตถุและวัสดุที่คุณต้องการ — แผ่นตัดสามารถรวมความหลากหลายของประเภทวัสดุ เช่น ไม้, โลหะ, ยาง และอื่นๆ ก่อนที่คุณจะเริ่มโมเดลวัตถุแรกของคุณ ให้สร้างแม่แบบแผ่นตัด นี่คือจุดเริ่มต้นสำหรับชุดแผ่นตัดอื่นๆ ของคุณและให้จุดเริ่มต้นที่รวดเร็วสำหรับการคลี่โมเดลของคุณ แผ่นตัดเหล่านี้อยู่ภายในโหนด SurfaceAppearance ซึ่งเราจะพูดถึงในภายหลัง
รวมการรักษาพื้นผิวที่หลากหลายไว้ในแผ่นเดียว — สิ่งนี้ช่วยให้คุณเก็บเมชไว้ด้วยกันมากขึ้น ดังนั้นคุณจึงสามารถใช้การรักษาใหม่ได้โดยไม่ต้องแยกเมชของคุณออกเป็นหลายเมช สิ่งนี้ช่วยปรับปรุงประสิทธิภาพการทำงานโดยการลดการเรียกวัตถุและวัสดุ
ทำแม่แบบแผ่นตัด — แม่แบบช่วยให้คุณสามารถสลับชุดแผนที่ใดชุดหนึ่งได้ ตัวอย่างเช่น คุณสามารถสลับชุดโลหะสะอาดกับชุดโลหะสนิม
นี่คือวิธีที่เราสร้างแผ่นตัดสำหรับสถานี:
เราสร้างเค้าโครงคร่าวๆ ว่าแผ่นควรมีลักษณะอย่างไร:

ใน Photoshop เราสร้างแบบจำลองเพื่อให้ได้แนวคิดอย่างรวดเร็วว่าแต่ละส่วนของแผ่นจะมีลักษณะอย่างไร

เราใช้ Substance แต่คุณสามารถใช้แอปพลิเคชันใดก็ได้ที่เหมาะกับคุณในการสร้างแผนที่สุดท้าย นี่คือชุดแผนที่แผ่นตัดสุดท้ายที่สร้างขึ้นใน Substance แผนที่ทั้งสี่ทำงานร่วมกันภายในโหนด SurfaceAppearance เพื่อผลิตวัสดุที่มีการเรนเดอร์ตามกายภาพ (PBR)




นี่คือการเรนเดอร์สุดท้ายของแผ่นตัดภายใน Substance Designer:


และนี่คือตัวอย่างของแผ่นตัดเดียวกันที่ใช้กับวัตถุหลากหลายขนาดใหญ่:

หากคุณต้องการเรียนรู้เพิ่มเติมเกี่ยวกับการทำแผ่นตัด UV Mapping เพียงค้นหาหัวข้อนี้ทางเว็บ; มีบทเรียนที่ยอดเยี่ยมมากมายอยู่ที่นั่น
ใช้การปรากฏพื้นผิว
SurfaceAppearance ช่วยให้คุณระบุการป้อนข้อมูลเท็กซ์เจอร์ใหม่ไปยังระบบการเรนเดอร์ตามกายภาพของเราสำหรับ MeshParts และช่วยให้คุณสามารถแทนที่ลักษณะของเมชด้วยตัวเลือกกราฟิกขั้นสูง รวมถึง ColorMap, MetalnessMap, RoughnessMap, และ NormalMap นอกจากนี้ยังใช้ระบบ cubemap แบบไดนามิกใหม่ที่ Roblox ใช้สำหรับการสะท้อนในวัสดุ เช่น โครเมียม ตัวอย่างเช่น นี่คือภาพข้างเคียงของเมชที่มีการใช้ SurfaceAppearance เทียบกับเมชที่ไม่มี:

เมื่อใช้การปรากฏพื้นผิว ให้คำนึงถึงเคล็ดลับต่อไปนี้:
- หากแผนที่ตัดของคุณมีข้อมูลอัลฟาสำหรับความโปร่งใส ให้เปลี่ยน AlphaMode จาก Overlay เป็น Transparency
- การปรากฏพื้นผิวไม่ทำงานกับ Parts เพราะพวกเขาไม่มีข้อมูล UV ที่จำเป็นในการใช้แผนที่ Parts ใช้การฉายที่จัดเรียงตามโลกแทนข้อมูล UV MeshParts มักจะถูกสร้างขึ้นในแอปพลิเคชันอื่น เช่น Maya, 3ds Max หรือ Blender และมีข้อมูลการคลี่ UV
ในการใช้ SurfaceAppearance:
คลิกที่จุดสิ้นสุดของ MeshPart หรือชื่อโฟลเดอร์ใน Explorer และค้นหา SurfaceAppearance การเพิ่มหนึ่งจะทำให้แทนที่ BrickColor, Color, Material, และ TextureID ที่คุณอาจได้ใช้ไปแล้ว
เปลี่ยนชื่อโหนด SurfaceAppearance เป็นชื่อที่ไม่ซ้ำกันและเพิ่ม postfix _SA เพื่อให้ค้นหาได้ง่าย ในตัวอย่างนี้ เราใช้ Metal_Trim_A_SA
นำเข้าแผนที่แผ่นตัด, คัดลอก ID จากหน้าต่าง Asset Manager และวางลงในช่องที่เหมาะสมในหน้าต่าง Properties นี่คือรูปลักษณ์ของโหนด Metal_Trim_A_SA ที่มี ID แผนที่ทั้งหมดถูกแทรกและนำไปใช้กับประตู

เพิ่มประสิทธิภาพด้วยแพ็คเกจ
แพ็คเกจช่วยให้คุณสร้างอินสแตนซ์วัตถุทั่วทั้งเกม Roblox ของคุณ ดังนั้นการอัปเดตที่คุณทำกับแพ็คเกจจะถูกเผยแพร่ไปยังทุกอินสแตนซ์ของแพ็คเกจนั้น เราใช้แพ็คเกจสำหรับวัตถุเกือบทุกชิ้นที่เราใส่เข้าไปในสถานี ดังนั้นเราจึงไม่ต้องตามหาการวางแต่ละชิ้นหากเราต้องการทำการปรับเปลี่ยน ตัวอย่างเช่น เราใช้แผงผนังมากกว่า 1,000 อินสแตนซ์ของแพ็คเกจและสามารถเผยแพร่การอัปเดตไปยังพวกเขาได้ทันทีโดยการปรับเปลี่ยนแพ็คเกจ
ปฏิบัติตามเคล็ดลับเหล่านี้เมื่อใช้แพ็คเกจ:
เปิดใช้งานฟีเจอร์อัปเดตอัตโนมัติใน PackageLink การปรับเปลี่ยนทั้งหมดจะถูกนำไปใช้กับการใช้งานแพ็คเกจทั้งหมดเมื่อเปิดใช้งานสิ่งนี้ ช่วยประหยัดขั้นตอนในการใช้ฟีเจอร์ "อัปเดตทั้งหมด"

คุณสามารถใช้แพ็คเกจสำหรับวัตถุ SurfaceAppearance เพื่อสร้าง "ห้องสมุดวัสดุ" สิ่งนี้ช่วยให้คุณสามารถปรับเปลี่ยนบิตแมพในวัตถุ SurfaceAppearance และเผยแพร่ไปยังวัตถุทุกชิ้นที่ใช้มัน ภาพหน้าจอด้านล่างแสดงวัสดุหลักที่ใช้ทั่วทั้งเดโม หากเราต้องการปรับเปลี่ยนแผนที่ เราเพียงแค่ต้องอัปเดตวัสดุหลักและเผยแพร่แพ็คเกจใหม่
