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

เปิดใช้งานการวิเคราะห์ฉาก
- เปิดใช้งาน การวิเคราะห์ฉาก ใน ไฟล์ > ฟีเจอร์เบต้า
- ในแถบเมนู ให้เลือก หน้าต่าง > สรุปประสิทธิภาพ > การวิเคราะห์ฉาก
ใช้การวิเคราะห์ฉาก
การวิเคราะห์ฉากออกแบบมาเพื่อใช้ในระหว่างการเล่นหรือการทดสอบ เปิดหน้าต่างการวิเคราะห์ฉากและเรียกดูโหมดที่มีอยู่ เมื่อโหมดใดโหมดหนึ่งเปิดใช้งาน คุณจะเห็นการแสดงกล่อง—มุมมองแผนที่สี่เหลี่ยม—ที่แสดงขนาดสัมพัทธ์ของทรัพยากรที่กำลังดูและรายการที่มีส่วนสนับสนุนต่อมัน
- ด้านล่างมุมมองแผนที่สี่เหลี่ยมคือรายการของรายการทั้งหมดในมุมมองปัจจุบัน
- คลิกขวาที่รายการที่เลือกในการวิเคราะห์ฉากโดยปกติจะทำให้คุณสามารถข้ามไปยังรายการนั้นใน Explorer ได้โดยตรง
- คุณสามารถใช้แถบค้นหาเพื่อกรองตามชื่อในแสดงผลปัจจุบัน
โหมด
การวิเคราะห์ฉากมีโหมดที่แตกต่างกันหลายโหมด ซึ่งแต่ละโหมดจะรองรับกรณีการใช้งานที่แตกต่างกัน
หน่วยความจำสคริปต์
มุมมองนี้แสดงให้เห็นว่าหน่วยความจำแต่ละ Script, LocalScript, และ ModuleScript ใช้อยู่ใน Luau VM เท่าไร นี่เป็นหน่วยความจำที่ใช้โดยตารางและการจัดสรรสคริปต์อื่นๆ ไม่ใช่หน่วยความจำที่ใช้โดยสินทรัพย์เช่นอนิเมชัน ข้อความ และเสียง มุมมองนี้แบ่งย่อยโดยตำแหน่งทั่วไปที่สคริปต์ถูกเรียกใช้และโดย Script กับ ModuleScript
รายการที่ไม่มีผู้ปกครอง
มุมมองรายการที่ไม่มีผู้ปกครองแสดงให้เห็นว่าสคริปต์และโมดูลใดกำลังถืออ้างอิงถึงรายการ โดยนับแยกตามประเภท
การถืออ้างอิงถึงรายการโดยสคริปต์นั้นเป็นเรื่องปกติและไม่ได้บ่งชี้ถึงข้อบกพร่องหรือการรั่วไหลของหน่วยความจำ แต่ถ้าคุณกำลังตรวจสอบการรั่วไหลของหน่วยความจำ มุมมองนี้ทำให้คุณสามารถเห็นได้ง่ายว่ามีสคริปต์ใดที่ทำบางสิ่งที่คุณไม่คาดคิด
หากคุณยังพบปัญหาในการหาสาเหตุของการรั่วไหลของหน่วยความจำ เครื่องมือนี้จะเสริมกับเครื่องมือ Luau heap ซึ่งสามารถแสดงข้อมูลเพิ่มเติมเกี่ยวกับการจัดสรรแต่ละครั้ง
คลิกขวาที่สคริปต์ใดๆ ในมุมมองนี้เพื่อเลือกมันโดยตรงใน Explorer
การรวมรายการ
มุมมองการรวมรายการแสดงให้เห็นว่ามีรายการใดบ้างที่มีอยู่ในลูกค้าหรือเซิร์ฟเวอร์ ณ ขณะนี้ ซึ่งมีค่ามหาศาลเมื่อทำงานในอาคารขนาดใหญ่และซับซ้อน เนื่องจากแต่ละรายการมีต้นทุนในการทำซ้ำและหน่วยความจำ
หมวดหมู่ต่างๆ เช่น ตัวละคร, ภูมิศาสตร์, และพื้นผิว ถูกออกแบบมาเพื่อช่วยให้คุณเข้าใจว่าฉากของคุณมีความสมดุลอย่างไร ตัวอย่างเช่น คุณอาจไม่ตั้งใจให้มีอีมิตเตอร์อนุภาค 25,000 ตัว แต่ทัศนวิสัยนี้ทำให้คุณรู้
มุมมองนี้ยังทำให้เลือกทุกรายการที่เป็นประเภทเดียวกันได้ง่าย
หน่วยความจำเสียง
มุมมองหน่วยความจำเสียงแสดงให้เห็นว่าหน่วยความจำแต่ละสินทรัพย์เสียงกำลังใช้เท่าไร หน่วยความจำที่แท้จริงที่ใช้โดยแทร็กเสียงเฉพาะนั้นค่อนข้างซับซ้อน แต่ในทางปฏิบัติ การลบทุกรายการที่อ้างอิงถึงแทร็กเสียงจะทำให้หน่วยความจำดังกล่าวสามารถโหลดออกได้
คลิกขวาที่สินทรัพย์เสียงใดๆ ในมุมมองนี้เพื่อเลือกทุกรายการที่กำลังใช้มัน
หน่วยความจำอนิเมชัน
สินทรัพย์อนิเมชันเป็นหนึ่งในแหล่งที่มาที่พบบ่อยที่สุดของการรั่วไหลของหน่วยความจำในผลิตภัณฑ์ Roblox มีความเข้มงวดในการลบสินทรัพย์อนิเมชันที่ไม่ได้ใช้งาน แต่สคริปต์มักทำให้อนิเมชันยังคงมีอยู่หลังจากที่โมเดลต้นแบบถูกลบไป
เช่นเดียวกับสินทรัพย์เสียง การลบทุกรายการที่อ้างอิงถึงสินทรัพย์อนิเมชันจะทำให้สามารถโหลดออกได้
มุมมองนี้พร้อมกับมุมมองรายการที่ไม่มีผู้ปกครอง ทำให้ติดตามวงจรชีวิตของอนิเมชันและหน่วยความจำที่พวกเขาใช้ได้ง่าย
คลิกขวาที่อนิเมชันใดๆ ในมุมมองนี้เพื่อเลือกทุกรายการที่กำลังใช้มัน
การรวมสามเหลี่ยม
มุมมองการรวมสามเหลี่ยมให้การแยกแยะรายละเอียดเพิ่มเติมเกี่ยวกับสามเหลี่ยมและการเรียกวาดที่กำลังถูกเรนเดอร์ในมุมมองหลัก
การแยกแยะเหล่านี้จะรวมจำนวนเงา วัตถุทึบ วัตถุใส ดิน หญ้า อนุภาค ท้องฟ้า และ UI
ข้อมูลการรวมนี้ช่วยให้คุณเข้าใจดีขึ้นว่าฉากของคุณถูกสร้างขึ้นอย่างไรและช่วยระบุกรณีที่ฉากมีพวกเรขาคณิตที่ไม่คาดคิด
API เครื่องยนต์
คุณยังสามารถเข้าถึงข้อมูลการวิเคราะห์ฉากได้ทางโปรแกรมผ่าน SceneAnalysisService ซึ่งเปิดเผยผ่าน MCP server แต่ละวิธีจะคืนค่าตารางที่มี子ที่ซ้อนกันด้วยข้อมูลเดียวกันที่การแสดงผลภาพใช้
| วิธีการ | คำอธิบาย |
| GetInstanceCompositionAsync | คืนค่าจำนวนรายการตามหมวดหมู่และคลาสจากต้นไม้ DataModel |
| GetScriptMemoryAsync | คืนค่าการใช้หน่วยความจำ Luau VM ต่อสคริปต์ในหน่วยไบต์ |
| GetUnparentedInstancesAsync | คืนค่ารายการที่ถือโดย Luau แต่ไม่อยู่ใน DataModel แบ่งกลุ่มตามสคริปต์โฮสต์ |
| GetTriangleCompositionAsync | คืนค่าจำนวนสามเหลี่ยมและการเรียกวาดตามการเรนเดอร์พาส |
| GetAnimationMemoryAsync | คืนค่าหน่วยความจำคลิปอนิเมชันที่โหลดแล้ว โดยทำการลบข้อมูลที่ซ้ำซ้อนตามคลิป |
| GetAudioMemoryAsync | คืนค่าหน่วยความจำสินทรัพย์เสียงที่โหลดแล้ว โดยทำการลบข้อมูลที่ซ้ำซ้อนตาม ID สินทรัพย์ |