การรวบรวมไลบรารีสินทรัพย์ เป็นกระบวนการนำเข้าและปรับแต่งชุดสินทรัพย์ในตำแหน่งกลางภายในประสบการณ์ของคุณเพื่อให้ง่ายต่อการเข้าถึงและการใช้งานซ้ำ กระบวนการนี้สามารถช่วยประหยัดเวลาได้มากเมื่อคุณเตรียมพร้อมที่จะสร้างสภาพแวดล้อมของคุณ โดยเฉพาะอย่างยิ่งหากคุณปรับแต่งค่าของสินทรัพย์แต่ละรายการเพื่อเพิ่มประสิทธิภาพและเพิ่มการใช้หน่วยความจำในอุปกรณ์ที่มีประสิทธิภาพปานกลางถึงต่ำ
โดยใช้ไฟล์ Environment Art - Assembling .rbxl เป็นข้อมูลอ้างอิง ส่วนนี้ของหลักสูตรศิลปะสิ่งแวดล้อมจะแสดงให้คุณเห็นวิธีการรวบรวมไลบรารีสินทรัพย์จากสินทรัพย์ที่ผ่านการปรับแต่งของคุณ รวมถึงคำแนะนำทีละขั้นตอนเกี่ยวกับ:
- การสร้างวัสดุที่กำหนดเองสำหรับภูมิประเทศของคุณจากพื้นผิวที่คุณสามารถใช้ซ้ำได้
- การสร้างวัตถุ SurfaceAppearance สำหรับแผ่นแต่งขอบของคุณ และการนำไปใช้กับเมชที่ไม่ได้ห่อหุ้มในไลบรารีสินทรัพย์ของคุณ
- การตั้งค่าพารามิเตอร์การเรนเดอร์สำหรับสินทรัพย์ของคุณเพื่อให้แน่ใจว่ามีประสิทธิภาพสูงสุดในทุกอุปกรณ์
- การแปลงสินทรัพย์ของคุณให้เป็นแพ็คเกจเพื่อให้คุณสามารถอัปเดตและนำกลับมาใช้ใหม่ในทุกโปรเจกต์ของคุณ
หลังจากที่คุณเสร็จสิ้นส่วนนี้แล้ว คุณจะได้เรียนรู้วิธีการใช้ไลบรารีสินทรัพย์ของคุณในวิธีที่สร้างสรรค์เพื่อแทนที่หรือแปลงสภาพแวดล้อมด้วยสีเทา และเพิ่มสัมผัสสุดท้ายที่ช่วยปรับปรุงพื้นที่ 3 มิติทั้งหมด

สร้างวัสดุที่กำหนดเอง
Studio แสดงวัสดุที่กำหนดเองเป็นวัตถุ MaterialVariant ภายใน MaterialService วัตถุ MaterialVariant เหล่านี้มีคุณสมบัติสี่อย่างที่รวมสี่แผนที่พื้นผิว แผนที่พื้นผิว ไว้ในการสร้างวัสดุที่กำหนดเองคุณภาพสูงที่มีลักษณะทางกายภาพ:
- MaterialVariant.ColorMap – แสดงแผนที่พื้นผิวอัลเบโด
- MaterialVariant.MetalnessMap – แสดงแผนที่พื้นผิวความเป็นโลหะ
- MaterialVariant.NormalMap – แสดงแผนที่พื้นผิวธรรมดา
- MaterialVariant.RoughnessMap – แสดงแผนที่พื้นผิวความหยาบ
หลังจากที่คุณจัดเตรียมแผนที่พื้นผิวให้กับคุณสมบัติเหล่านี้แล้ว คุณสามารถนำวัสดุที่กำหนดเองใหม่ของคุณไปใช้กับทั้งส่วน เมช และภูมิประเทศ คุณสามารถใช้หรือปรับเปลี่ยนไฟล์ตัวอย่างแผนที่พื้นผิว .png เพื่อสร้างวัสดุ Lumpy Moss, Flowering Lumpy Moss, Lumpy Moss with Stones และ Stones ในสภาพแวดล้อมตัวอย่างเลเซอร์แท็กสุดท้าย หรือคุณสามารถใช้วัสดุที่คุณออกแบบในส่วนก่อนหน้าของบทเรียนได้
ในการสร้างวัตถุ MaterialVariant สำหรับพื้นผิวที่คุณสามารถใช้ซ้ำได้:
จากเมนู Window ⟩ 3D ให้เลือก Material เพื่อเปิด Material Manager
ในรายการ Materials ให้เลือกวัสดุพื้นฐานที่ตรงกับพื้นผิวที่คุณสามารถใช้ซ้ำได้มากที่สุด ตัวอย่างเช่น หากคุณกำลังสร้างวัตถุ MaterialVariant สำหรับพื้นผิว Lumpy Moss ให้เลือกวัสดุพื้นฐานของพื้นเพื่อให้วัสดุได้รับคุณสมบัติทางกายภาพ
ในแถบเครื่องมือด้านบน ให้คลิกที่ไอคอน ⊕ วัตถุ MaterialVariant ใหม่จะแสดงในพาเลตโดยมีไอคอนที่มุมขวาล่างที่ระบุว่าเป็นวัสดุที่กำหนดเอง

ในส่วน Inspector ให้ไปที่ส่วน General จากนั้นเปลี่ยนชื่อวัสดุให้ตรงกับชื่อพื้นผิวที่คุณสามารถใช้ซ้ำได้

ในส่วน Texture Maps ที่อยู่ด้านขวาของ Color คลิกที่ปุ่ม Import หน้าต่างไฟล์จะปรากฏขึ้น

ในหน้าต่างไฟล์ เลือกไฟล์แผนที่พื้นผิว Albedo .png สำหรับพื้นผิวที่คุณสามารถใช้ซ้ำได้ จากนั้นคลิกปุ่ม Open หน้าต่างไฟล์จะปิดและแผนที่สีใหม่จะแสดงพร้อมกับ ID ของสินทรัพย์
ทำซ้ำกระบวนการนี้สำหรับแผนที่พื้นผิว Metalness, Normal, และ Roughness วัสดุที่กำหนดเองจะอัปเดตเพื่อสะท้อนแผนที่พื้นผิว


ในส่วน Overrides ให้เปิดใช้งานการตั้งค่า Set as Override เพื่อให้แน่ใจว่าเมื่อคุณนำพื้นมาใช้กับภูมิประเทศของคุณ Studio จะใช้วัสดุที่กำหนดนี้

(ทางเลือก) หากคุณกำลังสร้างวัสดุที่กำหนดซึ่งแสดงถึงวัสดุอินทรีย์,
- ในส่วน Tiling คลิกที่รายการแบบเลื่อนลงที่ Pattern
- เลือก Organic เพื่อสุ่มเอาสูตรและลดความเห็นแผนที่พื้นผิวที่มองเห็นได้

ทำซ้ำกระบวนการนี้สำหรับพื้นผิวที่สามารถใช้ซ้ำได้ที่คุณต้องการรวมอยู่ในประสบการณ์ของคุณ
สร้างแพ็คเกจ SurfaceAppearance
Studio ใช้แผ่นแต่งขอบภายในวัตถุ SurfaceAppearance ที่คุณสามารถนำเข้ายัง MeshParts ที่มีข้อมูล UV คล้ายกับวัสดุที่กำหนดเอง วัตถุ SurfaceAppearance มีคุณสมบัติสี่อย่างที่รวมแผนที่พื้นผิวแผ่นแต่งขอบสี่แผ่นเพื่อสร้างการรักษาผิว 3 มิติที่มีคุณภาพสูง:
SurfaceAppearance.ColorMap – แสดงแผนที่พื้นผิวอัลเบโด SurfaceAppearance.MetalnessMap – แสดงแผนที่พื้นผิวความเป็นโลหะ SurfaceAppearance.NormalMap – แสดงแผนที่พื้นผิวธรรมดา SurfaceAppearance.RoughnessMap – แสดงแผนที่พื้นผิวความหยาบ
หลังจากที่คุณจัดเตรียมแผนที่พื้นผิวให้กับคุณสมบัติเหล่านี้แล้ว คุณสามารถทำให้วัตถุ SurfaceAppearance เป็นบุตรของ MeshPart ที่มีข้อมูล UV ที่ตรงกับแผ่นแต่งขอบของคุณ และข้อมูล UV จะถูกนำไปใช้โดยอัตโนมัติกับเมชพื้นฐาน นี่คือเหตุผลว่าทำไมมันจึงมีประโยชน์ในการทำให้วัตถุ SurfaceAppearance เป็น แพ็คเกจ เพื่อให้คุณสามารถนำวัตถุ SurfaceAppearance เดิมไปใช้ซ้ำในสินทรัพย์โมดูลาและพร็อพของคุณ แบ่งเป็นการบอกว่าวัสดุที่มี uv ที่ตรงกับเลย์เอาต์พื้นที่ของแผ่นแต่งขอบที่เป็นตัวแทนในแพ็คเกจ SurfaceAppearance เดียว

คุณสามารถใช้หรือปรับเปลี่ยนไฟล์แผนที่พื้นผิว .png เพื่อสร้างวัตถุ SurfaceAppearance ที่เคารพข้อมูล UV สำหรับสินทรัพย์โมดูลาและพร็อพตัวอย่างในสภาพแวดล้อมเลเซอร์แท็กตัวอย่างสุดท้าย หรือคุณสามารถใช้วัสดุที่คุณออกแบบในส่วนแรกของบทเรียนซึ่งใช้กับสินทรัพย์โมดูลาและพร็อพของคุณ
ในการสร้างแพ็คเกจ SurfaceAppearance ที่คุณสามารถใส่เข้าไปในชุดโมดูลาร์และพร็อพของคุณ:
แทรกวัตถุ SurfaceAppearance ลงใน Workspace
เลือกวัตถุ SurfaceAppearance จากนั้นในหน้าต่าง Properties ให้เลือกคุณสมบัติ ColorMap ป๊อปอัปจะปรากฏขึ้น
คลิกปุ่ม Add Image… หน้าต่างไฟล์จะปรากฏขึ้น

เลือกแผนที่พื้นผิว Albedo สำหรับพื้นผิวที่คุณสามารถใช้ซ้ำได้ แล้วคลิกปุ่ม Open หน้าต่างไฟล์จะปิดและคุณสมบัติ ColorMap จะอัปเดตด้วย ID ของสินทรัพย์ใหม่
ทำซ้ำกระบวนการนี้สำหรับคุณสมบัติ MetalnessMap, NormalMap, และ RoughnessMap โดยเลือกแผนที่พื้นผิวที่เกี่ยวข้องจากหน้าต่างไฟล์
ในหน้าต่าง Explorer ให้คลิกขวาที่วัตถุ SurfaceAppearance จากนั้นเลือก Convert to Package จากเมนูบริบท กล่องโต้ตอบ Convert to Package จะแสดง
กรอกข้อมูลในฟิลด์ Title และ Description กำหนดยOwnership เป็นของคุณหรือกลุ่มแล้วคลิกปุ่ม Submit เสร็จแล้วจะมีสัญลักษณ์ลิงค์เชนแสดงอยู่บนไอคอนวัตถุ SurfaceAppearance เพื่อระบุว่าเป็นแพ็คเกจ

(ทางเลือก) เลือกวัตถุ PackageLink ที่เป็นบุตรของวัตถุ SurfaceAppearance จากนั้นในหน้าต่าง Properties ให้เปิดใช้งาน AutoUpdate เพื่อนำเสนอการอัปเดตอัตโนมัติสำหรับแพ็คเกจหากคุณมีการปรับปรุงใดๆ ในวัตถุ SurfaceAppearance
นำเข้าสินทรัพย์โมดูลาและพร็อพ
Studio แสดงสินทรัพย์โมดูลาและพร็อพที่คุณนำเข้าเป็นวัตถุ Model พร้อมกับบุตร MeshParts สำหรับแต่ละองค์ประกอบของสินทรัพย์ ตัวอย่างเช่น หากคุณนำเข้าส่วนผนังที่มีขอบด้านบน ขอบด้านล่าง และส่วนผนัง Studio จะแสดงไฟล์ .fbx หรือ .obj เป็น Wall_Section Model พร้อมกับบุตร Top_Trim, Bottom_Trim, และ Wall MeshParts

โดยใช้ตัวนำเข้า คุณสามารถนำเข้าชุดโมดูลาร์และพร็อพตัวอย่างเข้าสู่ Studio เพื่อใช้ในไลบรารีสินทรัพย์ของคุณ หรือคุณสามารถนำเข้าสินทรัพย์ใดๆ ที่คุณออกแบบในส่วนก่อนหน้าของบทเรียน สำหรับข้อมูลเพิ่มเติมเกี่ยวกับฟังก์ชันการทำงานของเครื่องมือนี้ ให้ดูที่ Importer.
ในการนำเข้าสินทรัพย์โมดูลาและพร็อพของคุณเข้าสู่ประสบการณ์:
จากเมนู File ให้เลือก Import หน้าต่างไฟล์จะปรากฏ
เลือกไฟล์ .fbx สำหรับสินทรัพย์โมดูลา أوพร็อพ
ตรวจสอบการแสดงตัวอย่างวัตถุและตรวจสอบว่าการตั้งค่าการนำเข้าถูกต้องสำหรับวัตถุของคุณ

ตรวจสอบ ข้อความเตือนหรือข้อผิดพลาด
คลิก Import สินทรัพย์จะแสดงในหน้าต่าง Explorer และในมุมมอง
ทำซ้ำกระบวนการนี้สำหรับสินทรัพย์โมดูลาและพร็อพแต่ละรายการ
ย้ายสินทรัพย์ทั้งหมดของคุณไปยังพื้นที่หนึ่งในประสบการณ์ของคุณใกล้กับรูปทรงสีเทา นี่คือโซนไลบรารีสินทรัพย์ของคุณ
ใช้ข้อมูล SurfaceAppearance
เมื่อคุณดำเนินการในการคลี่ UV ของเมชในซอฟต์แวร์โมเดลของบุคคลที่สาม ซอฟต์แวร์จะเก็บข้อมูล UV ไว้ในไฟล์ .fbx หรือ .obj ของเมช เมื่อคุณนำเข้าเมชนั้นเข้าสู่ Studio วัตถุ MeshPart ที่เกิดขึ้นจะเก็บข้อมูลนั้น แต่คุณยังต้องนำวัตถุ SurfaceAppearance ที่มีคุณสมบัติแผนที่พื้นผิวจากแผ่นแต่งขอบของคุณไปใช้เพื่อแสดงพื้นผิวแต่งขอบในสินทรัพย์
ในการใช้ข้อมูลแผนที่พื้นผิว SurfaceAppearance กับเมชที่ไม่ได้ห่อหุ้มในไลบรารีสินทรัพย์ของคุณ:
- ในหน้าต่าง Explorer ให้คลิกแพ็คเกจ SurfaceAppearance ของคุณจากนั้นกด CtrlD (⌘D) เพื่อทำซ้ำ
- ใส่แพ็คเกจ SurfaceAppearance ที่ทำซ้ำให้กับสินทรัพย์โมดูลา หรือพร็อพ สินทรัพย์จะนำออกข้อมูล UV ที่แผนที่พื้นผิวและแสดงการรักษาดูวัสดุ
- ทำซ้ำกระบวนการนี้สำหรับสินทรัพย์โมดูลาและพร็อพแต่ละรายการ
ตั้งค่าพารามิเตอร์ทางกายภาพและการเรนเดอร์
ตอนนี้คุณมีสินทรัพย์ของคุณใน Studio แล้ว การตั้งค่าพารามิเตอร์ทางกายภาพและการเรนเดอร์ที่ช่วยให้สินทรัพย์รักษาคุณภาพภาพที่ดีที่สุดทั่วอุปกรณ์ที่มีข้อจำกัดด้านหน่วยความจำและ GPU เป็นสิ่งสำคัญ โดยทั่วไปแล้ว ยิ่งคุณปฏิบัติตามแนวทางในส่วนนี้มากเท่าไหร่ ประสบการณ์ของคุณก็จะยิ่งมีประสิทธิภาพมากขึ้นเท่านั้น อย่างไรก็ตาม สิ่งสำคัญคือต้องพิจารณาบริบทอย่างรอบคอบเกี่ยวกับสถานที่ที่คุณวางสินทรัพย์แต่ละรายการภายในสภาพแวดล้อมโดยรวมเพื่อให้แน่ใจว่าคุณรักษาเป้าหมายด้านสุนทรียภาพและความต้องการของเกม
ติดตั้ง
คุณสมบัติ BasePart.Anchored กำหนดว่าวัสดุจะได้รับผลกระทบจากระบบฟิสิกส์ของ Roblox Engine หรือไม่ เมื่อคุณเปิดใช้งานคุณสมบัตินี้สำหรับ Part หรือ MeshPart มันจะทำการลบวัตถุนั้นออกจากการคำนวณทางกายภาพของการจำลองแบบไดนามิกที่ทำงานอยู่ตลอดเวลาในประสบการณ์ ซึ่งหมายความว่าวัตถุจะไม่เปลี่ยนตำแหน่งเนื่องจากแรงโน้มถ่วงหรืการชนจากวัตถุอื่นๆ
วัสดุที่ไม่จำลองการตอบสนองด้านฟิสิกส์นั้นประหยัดกว่าในการเรนเดอร์ เนื่องจากไม่ต้องการ GPU สำหรับการคำนวณทางฟิสิกส์ เมื่อคุณปล่อย GPU คุณจะเพิ่มประสิทธิภาพให้กับประสบการณ์ของคุณ โดยเฉพาะอย่างยิ่งในอุปกรณ์ระดับต่ำซึ่งจำเป็นต้องประหยัด GPU สำหรับการเล่นเกมที่รวดเร็ว นี่คือเหตุผลที่ ทุก สินทรัพย์นอกเหนือจากประตูในสภาพแวดล้อมเลเซอร์แท็กตัวอย่างสุดท้ายถูกติดตั้ง
CanCollide
คุณสมบัติ BasePart.CanCollide กำหนดว่าวัตถุสามารถโต้ตอบทางกายภาพกับวัตถุอื่นได้หรือไม่ เมื่อคุณเปิดใช้งานคุณสมบัตินี้สำหรับ Part หรือ MeshPart วัตถุนั้นจะแทรกซึมไม่ได้ และ Roblox Engine จะคำนึงถึงมันในการคำนวณทางฟิสิกส์ การคำนวณเหล่านี้อาจส่งผลกระทบต่อประสิทธิภาพของประสบการณ์ของคุณเมื่อมีวัตถุมากมายที่เอนจิ้นต้องพิจารณาในการคำนวณทางฟิสิกส์
เพื่อบรรเทาผลกระทบต่อการแสดงผลให้หาวิธีลดข้อกำหนดนี้สำหรับวัตถุที่ผู้ใช้จะไม่โต้ตอบด้วย ตัวอย่างเช่น สภาพแวดล้อมเลเซอร์แท็กตัวอย่างสุดท้ายจะปิดคุณสมบัตินี้สำหรับทุกพืช

CanTouch
คุณสมบัติ BasePart.CanTouch กำหนดว่าเหตุการณ์ Touched และ TouchEnded จะเกิดการถูกกระทบที่วัตถุหรือไม่ เมื่อคุณเปิดใช้งานคุณสมบัตินี้สำหรับ Part หรือ MeshPart Roblox Engine จะตรวจสอบสถานะเหตุการณ์การสัมผัสของวัตถุเพื่อดูว่าจะทำให้เกิดเหตุการณ์หรือหยุดเหตุการณ์หรือไม่
กระบวนการนี้เกิดขึ้นในทุกเฟรม ซึ่งอาจใช้หน่วยความจำจำนวนมากหากการเอนจิ้นต้องตรวจสอบสถานะเหตุการณ์การสัมผัสสำหรับวัตถุหลายรายการในครั้งเดียว เพื่อบรรเทาผลกระทบต่อหน่วยความจำนี้ ให้เปิดใช้งานคุณสมบัตินี้เฉพาะสำหรับวัตถุที่จำเป็นต้องทำให้เกิดเหตุการณ์
CanQuery
คุณสมบัติ BasePart.CanQuery กำหนดว่า Roblox Engine จะพิจารณาวัตถุในระหว่างการดำเนินการสอบถามเชิงพื้นที่ เช่น การสร้างรังสี ตรวจสอบไว้ว่าเอนจิ้นเปิดใช้งานคุณสมบัตินี้สำหรับ Part หรือ MeshPart ทุกตัวโดยอัตโนมัติ ซึ่งหมายความว่าเอนจิ้นจะตรวจสอบว่าวัตถุต้องเรียกการดำเนินการสอบถามเชิงพื้นที่หรือไม่ กระบวนการนี้เกิดขึ้นในทุกเฟรม ซึ่งอาจใช้หน่วยความจำจำนวนมากเมื่อเอนจิ้นต้องทำการตรวจสอบเหล่านี้สำหรับวัตถุหลายรายการพร้อมกัน
ด้วยเหตุนี้จึงแนะนำให้ปิดคุณสมบัตินี้สำหรับวัตถุที่ Roblox Engine ไม่จำเป็นต้องพิจารณาสำหรับการทำงานสอบถามเชิงพื้นที่ เมื่อทำการตัดสินใจเกี่ยวกับว่าใครจะปิดคุณสมบัตินี้ ให้นึกถึงว่าแต่ละสินทรัพย์ส่งผลกระทบต่อการเล่นเกมอย่างไร ตัวอย่างเช่น สภาพแวดล้อมเลเซอร์แท็กตัวอย่างสุดท้ายจะเก็บคุณสมบัตินี้เปิดใช้งานสำหรับทุกผนังในอาคาร เนื่องจากเอนจิ้นจำเป็นต้องคำนึงถึงพื้นผิวเหล่านี้เมื่อผู้ใช้ยิงเลเซอร์จากปืนเลเซอร์ของตน หากเอนจิ้นไม่คำนึงถึงสินทรัพย์เหล่านี้ แสดงว่าเลเซอร์จะยิงตรงผ่านอาคารราวกับว่ามันไม่มีอยู่จริง
CastShadow
คุณสมบัติ BasePart.CastShadow กำหนดว่าวัตถุจะทิ้งเงาหรือไม่ เมื่อคุณเปิดใช้งานคุณสมบัตินี้สำหรับ Part หรือ MeshPart Roblox Engine จะคำนวณตำแหน่งของเวอร์เท็กซ์แต่ละตัวที่วัตถุในระหว่างการทำงาน จากนั้นจะวาดการสร้างรังสีจากดวงอาทิตย์ไปยังวัตถุเพื่อนบ้านจนกระทั่งการชนกับวัตถุอื่นเพื่อสร้างเงา
การคำนวณเหล่านี้อาจมีค่าใช้จ่ายในการประสิทธิภาพ โดยเฉพาะเมื่อคุณมีวัตถุหลายตัวที่มีความซับซ้อนทางเรขาคณิต นี่เป็นเพราะว่าวัตถุที่มีความซับซ้อนทางเรขาคณิตจะมีพ้อยหลายจุดกว่าที่วัตถุที่เรียบง่ายทางเรขาคณิต ซึ่งหมายความว่ามันมีเวอร์เท็กซ์มากขึ้นที่เอนจิ้นต้องคำนวณสำหรับเงาของวัตถุ ยิ่งมีพ้อยหลายจุดน้อยลงในวัตถุมากเท่าไหร่ การดำเนินการก็จะเร็วขึ้นและเงาของมันก็จะประหยัดลง

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


DoubleSided
คุณสมบัติ MeshPart.DoubleSided กำหนดว่าจะเรนเดอร์ใบหน้าหรือพ้อยทั้งสองด้านในเมชหรือไม่ เมื่อคุณเปิดใช้งานคุณสมบัตินี้สำหรับ MeshPart ที่มีแผนภาพเช่นใบไม้ ผม หรือผ้าการซึ่ง Roblox Engine จะเรนเดอร์ทั้งใบหน้าหรือพ้อยในเมชเพื่อให้ผู้ใช้สามารถเห็นความเต็มรูปของวัตถุไม่ว่ามุมมองของพวกเขาจะมองไปที่วัตถุนั้นๆ ตัวอย่างเช่น ใบไม้ที่ติดอยู่ในต้นไม้ในตัวอย่างนี้นั่งอยู่บนพื้นเรนเดอร์อาจจะมีลูกมนอย่างมาก


คุณสมบัตินี้มีประโยชน์ในการเพิ่มความสมจริงให้กับสภาพแวดล้อมของคุณ แต่มีค่าใช้จ่ายในการประสิทธิภาพเพราะว่าเอนจิ้นต้องเรนเดอร์พ้อยของวัตถุเป็นสองครั้ง: หนึ่งครั้งสำหรับทิศทางที่หันไปทางกล้องของผู้ใช้ และอีกครั้งสำหรับเมชใด ๆ ที่หันออกจากกล้องของผู้ใช้ เพื่อบรรเทาผลกระทบต่อประสิทธิภาพนี้ สภาพแวดล้อมเลเซอร์แท็กตัวอย่างสุดท้ายจะเปิดใช้งานคุณสมบัตินี้เฉพาะสำหรับพืชเท่านั้น เนื่องจากมันมีผลกระทบต่อภาพที่แกร่งสำหรับความสมจริงในพื้นที่ 3 มิติ
CollisionFidelity
คุณสมบัติ MeshPart.CollisionFidelity กำหนดว่าฮิตบ็อกซ์ทางฟิสิกส์ของเมชหรือรายการรวมกันใกล้เคียงกับการแสดงภาพโดยที่คุณมองไว้ขนาดไหน โดยค่าเริ่มต้น การตั้งค่านี้จะเรนเดอร์ฮิตบ็อกซ์ที่มีรูปร่างใกล้เคียงกับรูปทรงพ้อยของเมช ซึ่งหมายความว่าสถานที่ที่ผู้ใช้ชนกับวัตถุนั้นจะคล้ายกับเรขาคณิตจริงของเมช ตัวอย่างเช่น เมชปราสาทในภาพด้านล่างมีฮิตบ็อกซ์เริ่มต้นที่เกือบตรงกับรูปร่างทางเรขาคณิตของมัน


คุณสามารถตั้งค่านี้ให้มีค่าอื่นเพื่อลดความแม่นยำของฮิตบ็อกซ์ของเมช ตัวอย่างเช่น เมื่อคุณตั้งค่ากลุ่มนี้เป็น Hull Roblox Engine จะลดจำนวนพ้อยของฮิตบ็อกซ์ของเมชอย่างมาก และเมื่อคุณตั้งค่านี้เป็น Box เอนจิ้นจะลดฮิตบ็อกซ์ของเมชให้เป็นลูกบาศก์ที่ล้อมรอบเมช นอกจากนี้ หากคุณต้องการเพิ่มความแม่นยำของฮิตบ็อกซ์ของเมช คุณสามารถตั้งค่าสิ่งนี้เป็น PreciseConvexDecomposition เพื่อเพิ่มจำนวนพ้อยในฮิตบ็อกซ์ให้มากขึ้น



คล้ายกับ BasePart.CastShadow ยิ่งมีพ้อยมากเท่าไหร่ที่ Roblox Engine ต้องเรนเดอร์ ยิ่งมีต้นทุนในการประสิทธิภาพสูงขึ้น ด้วยเหตุนี้ จึงเป็นสิ่งสำคัญที่จะพิจารณาว่าคุณต้องการให้ผู้ใช้โต้ตอบกับแต่ละเมชอย่างไรเพื่อดูว่าคุณสามารถลดจำนวนพ้อยที่เอนจิ้นต้องเรนเดอร์ได้หรือไม่ สำหรับกรณีที่ไม่จำเป็นต้องมีฮิตบ็อกซ์ที่แม่นยำ ให้ตั้งค่าคุณสมบัตินี้เป็น Box หรือ Hull
เพื่อนำเสนอแนวความคิดนี้ คุณสามารถอ้างอิงภาพถัดไปที่แสดงฮิตบ็อกซ์ของทุกเมชของแบบจำลองผนังซึ่งให้ความสูงระหว่างชั้นแรกและชั้นที่สองของสภาพแวดล้อมเลเซอร์แท็กตัวอย่างสุดท้าย ฮิตบ็อกซ์ค่าเริ่มต้นสำหรับผนังหลักมีเรขาคณิตที่ไม่จำเป็นจำนวนมากเมื่อมันแค่ต้องการให้พื้นผิวเพื่อป้องกันผู้ใช้ไม่ให้ไปในทิศทางนี้ หากคุณตั้งค่าคุณสมบัตินี้เป็น Box สำหรับเมชนี้คุณสามารถลบเรขาคณิตนี้ที่ไม่จำเป็นออกไปโดยที่ยังคงรักษาผลลัพธ์ของฮิตบ็อกซ์ไว้อย่างสมบูรณ์



ในขณะที่คุณทำการตัดสินใจเหล่านี้ เป็นสิ่งสำคัญที่จะต้องพิจารณาว่า การเปลี่ยนค่าเริ่มต้นอาจส่งผลกระทบต่อผู้ใช้ที่กำลังนำทางในสภาพแวดล้อมของคุณ ตัวอย่างเช่น หากคุณตั้งค่าคุณสมบัตินี้เป็น Box สำหรับแผ่นทับของแบบจำลองผนัง ผู้ใช้จะชนกับฮิตบ็อกซ์หากพวกเขาพยายามกระโดดใกล้ผนัง แทนที่จะตั้งค่าเมชเหล่านี้เป็น Hull ดังนั้นคุณจะลดจำนวน vertex ในขณะที่ทำให้ฮิตบ็อกซ์มีรูปร่างใกล้เคียงกับเรขาคณิตของเมช


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

RenderFidelity
คุณสมบัติ MeshPart.RenderFidelity กำหนดระดับของความละเอียดของเมชที่แสดงให้ผู้ใช้ เมื่อคุณตั้งค่านี้เป็น Enum.RenderFidelity.Automatic เอนจิ้น Roblox จะลดความละเอียดของเมชตามระยะห่างระหว่างผู้ใช้กับเมช และเมื่อคุณตั้งค่านี้เป็น Enum.RenderFidelity.Precise ทุกเวอร์เท็กซ์ของคุณจะเรนเดอร์อย่างแน่นอนตามที่คุณตั้งใจไม่ว่าจะมีระยะห่างพวกมันก็ตาม
ยิ่งมีวัตถุมากเท่าใดซึ่งเอนจิ้นต้องเรนเดอร์อย่างแม่นยำต่อผู้ใช้จากระยะห่างใด ๆ โดยเฉพาะอย่างยิ่งหากมีจำนวน vertex สูงขึ้น ยิ่งมีค่าใช้จ่ายในการประสิทธิภาพสูงขึ้น เพื่อบรรเทาผลกระทบต่อประสิทธิภาพนี้ให้ตั้งค่านี้เป็น Enum.RenderFidelity.Performance สำหรับวัตถุที่มีความซับซ้อนทางเรขาคณิตอย่างเช่นพืชในไลบรารีสินทรัพย์ตัวอย่าง เนื่องจากพวกเขาไม่จำเป็นต้องแสดงทั้งหมดจากระยะห่างสำหรับความต้องการการเล่นเกมใด ๆ สิ่งนี้ช่วยลดจำนวนพ้อยในประสบการณ์ของคุณโดยไม่เสียคุณภาพภาพรวม
แปลงสินทรัพย์เป็นแพ็คเกจ
ขณะนี้สินทรัพย์โมดูลาร์ทั้งหมดของคุณอยู่ใน Studio ด้วยพารามิเตอร์การเรนเดอร์ที่ตั้งขึ้นเพื่อรักษาคุณภาพภาพที่สูงสำหรับผู้ใช้ทั้งหมดแล้ว ถึงเวลาที่จะแปลงพวกมันให้เป็นแพ็คเกจ เป็นสิ่งสำคัญที่คุณจะแปลงสินทรัพย์ของคุณให้เป็นแพ็คเกจ เนื่องจากช่วยให้คุณสามารถนำมันไปใช้ซ้ำหลายครั้งตลอดประสบการณ์ปัจจุบันและโครงการอื่น ๆ นอกจากนี้คุณสามารถทำการปรับเปลี่ยนแพ็คเกจได้อย่างง่ายดายที่จะแสดงผลทันทีไปยังทุกตัวอย่างปรับปรุงได้ โดยช่วยประหยัดเวลาในกระบวนการสร้างสรรค์
เนื่องจากวัตถุ SurfaceAppearance ของคุณ already เป็นแพ็คเกจ เมื่อคุณเปลี่ยนวัตถุ Model ของคุณให้เป็นแพ็คเกจ พวกมันจะแปลงเป็นแพ็คเกจแบบซ้อนแล้ว แพ็คเกจที่ซ้อนกันช่วยให้คุณรักษาโครงสร้างที่ซับซ้อนของวัตถุที่เป็นบุตรที่คุณสามารถปรับเปลี่ยนอย่างอิสระจากแพ็คเกจวัตถุ Model นี้จะช่วยให้คุณควบคุมได้มากขึ้นเกี่ยวกับส่วนประกอบแต่ละส่วนของสินทรัพย์ของคุณ

ในการเปลี่ยนสินทรัพย์โมดูลาและพร็อพของคุณเป็นแพ็คเกจ:
ในหน้าต่าง Explorer คลิกขวาที่สินทรัพย์โมดูลา หรือพร็อพ จากนั้นเลือก Convert to Package จากเมนูบริบท กล่องโต้ตอบ Convert to Package จะแสดง
กรอกข้อมูลในฟิลด์ Title และ Description กำหนดยOwnership เป็นของคุณหรือกลุ่มแล้วคลิกปุ่ม Submit เสร็จแล้วจะมีสัญลักษณ์ลิงค์เชนแสดงอยู่บนไอคอนของรุ่นเพื่อแสดงว่ามันเป็นแพ็คเกจ

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