แต่ละ การประกอบ ใน Roblox Engine ตรงกับร่างกายแข็งเดียว **** ตำแหน่งและความเร็วของแต่ละชิ้นส่วนแข็งอธิบายถึงสถานที่ที่ตั้งและความเร็วในการเคลื่อนที่ และหนึ่งในภารกิจหลักของเครื่องยนต์คือการอัปเดตตำแหน่งและความเร็วของแต่ละชิ้นส่วน
ชิ้นส่วนสามารถเชื่อมต่อกับ ข้อจํากัดทางกล และ ข้อจํากัดของตัวขับเคลื่อน เพื่อสร้างเครื่องจักรเช่นรถยนต์หรือเครื่องบินเมื่อจำนวนชิ้นส่วนและข้อจำกัดในเครื่องมือเพิ่มขึ้น เวลาที่จำเป็นในการจำลองเครื่องมือก็เพิ่มขึ้นเช่นกันโชคดีที่การเพิ่มนี้จะชดเชยเมื่อระบบนอนหลับ สร้างขึ้น พบว่าเครื่องยนต์สามารถข้ามการจำลองชิ้นส่วนที่ไม่เคลื่อนไหวได้
สถานะการนอนหลับ
แต่ละชิ้นส่วนสามารถอยู่ในสถานะหนึ่งในสามสถานะ: ตื่น , ตรวจสอบการนอนหลับ หรือ นอนหลับ
ตื่น
การประกอบที่ตื่นอยู่ มีการเคลื่อนที่หรือเร่งความเร็ว และดังนั้นจึงจำลอง ชิ้นส่วนเข้าสู่สถานะนี้จากสถานการณ์ที่อธิบายไว้ใน การตรวจสอบการนอนหลับ และ การนอนหลับ รวมถึง สถานการณ์ตื่นเพิ่มเติม
ตรวจสอบการนอนหลับ
การประกอบที่ไม่เคลื่อนไหวที่แชร์ข้อจํากัดด้วยอย่างน้อยหนึ่ง การตรวจสอบการนอนหลับ การประกอบที่อยู่ติดกันจะถูกนําไปสู่สถานะ การตรวจสอบการนอนหลับ และไม่ได้จำลองในแต่ละขั้นตอนของโลกการตรวจสอบการนอนหลับจะตรวจสอบว่า:
- ตําแหน่งความผิดพลาดของชิ้นส่วนที่อยู่ติดกันมีมากกว่าจุดเกินของ การเคลื่อนย้ายเพื่อนบ้าน เกณฑ์
- ผลิตภัณฑ์ของการเร่งความเร็วของการประกอบที่อยู่ติดกัน และขนาดช่วงเวลาปัจจุบันมีมากกว่าจุดเกณฑ์ ความเร็วแนวนอนของเพื่อนบ้าน และ/หรือ ความเร็วแนวนอนของเพื่อนบ้าน
หากเงื่อนไขใดเงื่อนไขหนึ่งเป็นจริงหรืออยู่ภายใต้สถานการณ์ปลุกเพิ่มเติมใดๆ แล้วการตรวจสอบการนอนหลับจะเข้าสู่สถานะ ตื่น
การนอน
การประกอบที่นอนหลับ ไม่ได้เคลื่อนที่หรือเร่งความเร็ว และดังนั้นจึงไม่ได้จำลอง
การประกอบจะถูกกำหนดให้ไม่เคลื่อนที่โดยตรวจสอบความแตกต่างของตําแหน่ง ของมัน ซึ่งคำนวณเป็นความแตกต่างสูงสุดจากตำแหน่งเฉลี่ยของจุดที่อยู่ไกลที่สุดจากศูนย์กลางของมวลในชุดของก้าวโลกล่าสุดหากความผิดพลาดนี้มากกว่าจุดเกินขีดจำกัด การเคลื่อนที่ การประกอบจะเข้าสู่สถานะ ตื่น
ในบางกรณี การตรวจสอบเพียงเพื่อหลีกเลี่ยงการเคลื่อนไหวจะทำให้การประกอบเข้าสู่สถานะการนอนหลับอย่างผิดพลาดตัวอย่างเช่นถ้าลูกบอลถูกโยนขึ้นไปตรงๆ ตำแหน่งของมันเกือบจะไม่เปลี่ยนแปลงสําหรับจํานวนขั้นตอนโลกเมื่อใกล้ถึงความสูงสูงสุดทำให้เป็นผู้สมัครที่จะนอนหลับและไม่ล้มลงอีกเพื่อจัดการกรณีเช่นนี้ เครื่องยนต์จะตรวจสอบว่าผลิตภัณฑ์ของการเร่งความเร็วและขนาดช่วงเวลาปัจจุบันของการประกอบเกินขีดจำกัด ความเร็วเชิงเส้น และ/หรือ ความเร็วมุม
อ้างอิงจุดตัดที่
ตารางต่อไปนี้ให้เกณฑ์การเลื่อนและความเร็วที่ใช้ในการตัดสินว่าการประกอบกำลังเคลื่อนที่หรือเร่งความเร็ว
จุดตัดที่ | มูลค่า | การเปลี่ยนแปลงรัฐ |
---|---|---|
การย้ายเพื่อนบ้าน | สตัด 0.01 | ตรวจสอบการนอนหลับ ⟩ ตื่น |
ความเร็วเชิงเส้นของเพื่อนบ้าน | 0.2 สตัด/วินาที | ตรวจสอบการนอนหลับ ⟩ ตื่น |
ความเร็วมุมของเพื่อนบ้าน | 0.2 ราดิอัน/วินาที | ตรวจสอบการนอนหลับ ⟩ ตื่น |
การเคลื่อนที่ | 0.001 สตัด | นอนหลับ ⟩ ตื่น |
ความเร็วเชิงเส้น | 0.1 สตัด/วินาที | นอนหลับ ⟩ ตื่น |
ความเร็วในมุมมองของแองเจิล | 0.1 ราดิอัน/วินาที | นอนหลับ ⟩ ตื่น |
สถานการณ์ปลุกเพิ่มเติม
นอกเหนือจากสถานการณ์ที่อธิบายไว้ใน การตรวจสอบการนอนหลับ และ การนอนหลับ แล้ว ชิ้นส่วนจะเข้าสู่สถานะ ตื่น เมื่อ:
มันชนกับอัปเดตอื่น ๆ อีก
คุณสมบัติทางกายภาพใดๆ ที่เกี่ยวข้องกับการเปลี่ยนแปลงของชิ้นส่วนภายในการรวม รวมถึง:
ช่วงเวลาไม่เป็นศูนย์ถูกนำไปใช้กับคำสั่งใดๆ BasePart ภายในการประกอบผ่าน ApplyImpulse() , ApplyImpulseAtPosition() หรือ ApplyAngularImpulse()
การเปลี่ยนแปลงคุณสมบัติที่เกี่ยวข้องกับฟิสิกส์ใดๆ บน Workspace ที่จะส่งผลต่อการประกอบรวม รวมถึง:
สร้าง Constraint ใหม่ด้วย Attachment ที่เป็นพ่อของไปยัง BasePart ภายในกลุ่มประกอบ
การเปลี่ยนแปลงคุณสมบัติใดๆ สําหรับ Constraint ที่มี Attachment ที่เป็นพ่อของไปยัง BasePart ภายในองค์ประกอบ
คุณสมบัติ CurrentAngle เปลี่ยนแปลงสําหรับ Motor ที่เชื่อมต่อกับ BasePart ภายในกลุ่มประกอบ
การประกอบมี VehicleSeat ที่มีตัวละครผู้เล่นที่นั่งอยู่
การประกอบอยู่ภายใน BlastRadius ของ Explosion
วิเคราะห์ภาพการดีบัก
ในระหว่างการทดสอบการเล่น คุณสามารถมองเห็นสถานะการนอนหลับของการประกอบได้โดยการสลับเปิด ส่วนที่ตื่น จากแดชบอร์ด ตัวเลือกการแสดงภาพ ในมุมขวาบนของหน้าต่าง 3D มุมมอง

เมื่อเปิดใช้งานแล้ว ชิ้นส่วนจำลองจะถูกอธิบายโดยสถานะการนอนหลับปัจจุบันของพวกเขา, ชิ้นส่วน ตื่น ถูกอธิบายด้วยสีแดง, ชิ้นส่วน ตรวจสอบการนอนหลับ ถูกอธิบายด้วยสีส้ม, และชิ้นส่วน นอนหลับ ไม่ถูกอธิบาย