Setiap pengumpulan di mesin Roblox berkorelasi dengan satu tubuh keras . Posisi dan kecepatan masing-masing tubuh keras menjelaskan di mana lokasi dan kecepatan gerakannya, dan salah satu tugas utama mesin adalah untuk memperbarui posisi dan kecepatan masing-masing tubuh keras.
Assemblies dapat terhubung bersama dengan batasan mekanik dan batasan penggerak untuk membentuk mekanisme seperti mobil atau pesawat terbang. Saat jumlah assemblies dan batasan dalam mekanisme meningkat, waktu yang dibutuhkan untuk menyimulasikan mekanisme juga meningkat. Untungnya, peningkatan ini adalahOffset ketika
Negara Tidur
Setiap pengumpulan dapat berada dalam salah satu dari tiga negara: bangun , periksa tidur , atau tidur .
Bangun
Sebuah bangun pengumpulan adalah bergerak atau berkecepatan, dan karena itu simulasi. Pengumpulan masuk ke keadaan bangun dari situasi yang ditentukan dalam sarapan tidur dan 1>tidur1>, serta 4>situasi bangun tambahan4>.
Memeriksa Tidur
Sebuah penggabungan non-bergerak yang berbagi kendali dengan setidaknya satu bangun penggabungan yang tetangga dapat ditempatkan dalam szczególny stan badań dan tidak dimulai. Pada setiap langkah dunia, penggabungan szczególny stan badań memeriksa apakah:
- Deviasi posisi dari sebuah pengumpulan tetangga lebih besar dari Neighbor Displacement threshold.
Jika salah satu dari kondisi ini benar, atau di bawah salah satu dari situasi pembaruan ekstra, maka sleep-checkingAssembly memasuki keadaan bangun.
Tidur
Sebuah tidur pengumpulan tidak bergerak atau berkecepatan, dan oleh karena itu tidak simulasi.
Sebuah pengukuran ditentukan untuk tidak bergerak dengan memeriksa deviasi posisinya, dihitung sebagai deviasi maksimum dari posisi rata-rata dari poin terdekat dari pusat massanya di set terbaru dari langkah-langkah dunia. Jika deviasi ini lebih besar dari batas penggeseran, pengukuran masuk ke keadaan bangun .
Dalam beberapa kasus, hanya memeriksa untuk non-gerakan akan menyebabkan sebuah montasi untuk memasuki status tidur tanpa sadar. Misalnya, jika bola dilempar lurus ke atas, posisinya hampir tidak berubah selama beberapa langkah waktu saat ini mendekati ketinggian maksimumnya, men
Referensi Tonggak
Tabel berikut menyediakan berbagai batas penggeseran dan kecepatan guna untuk menentukan apakah sebuah rangkaian bergerak atau berakselerasi.
Gerbang | Nilai | Perubahan Negara |
---|---|---|
Pengiriman Tetangga | 0,01 inci | sleep-checking > bangun |
Kecepatan Linier Tetangga | 0,2 studs / detik | sleep-checking > bangun |
Kecepatan Sirkulasi Tetangga | 0,2 radian/detik | sleep-checking > bangun |
Penggeseran | 0,001 stud | tidur > bangun |
Kecepatan Linier | 0,1 studs / detik | tidur > bangun |
Kecepatan Sinkron | 0,1 radian/detik | tidur > bangun |
Situasi Pengawasan Tambahan
Selain situasi yang ditunjukkan dalam sleep-checking dan sleeping, sebuah rangkaian masuk ke 醒来 status ketika:
Ini bertabrakan dengan konfigurasi lain.
Propinsi fisik apa pun yang terkait dengan setiap BasePart dalam perubahan pengaturan, termasuk:
Sebuah impuls non-零 diterapkan ke semua BasePart dalam rangkaian melalui ApplyImpulse() , ApplyImpulseAtPosition() atau 1> Class.BasePart:ApplyAngularImpulse()|ApplyAngularImpulse()1> .
Setiap perubahan propinsi fisik yang terkait dengan Workspace yang akan mengubah pengaturan pemasangan, termasuk:
Sebuah Class.Constraint baru dibuat dengan Constraint yang merupakan anak dari Attachment dalam pengaturan.
Setiap perubahan properti untuk Constraint dengan Attachment yang merupakan anak dari BasePart dalam pengaturan.
Propiedad CurrentAngle berubah untuk Motor yang terhubung ke BasePart dalam pengaturan.
Penggabungan berisi Class.VehicleSeat dengan karakter pemain yang duduk.
Assemblage berada dalam BlastRadius dari Explosion .
Visualisasi Debug
Selama playtest, Anda dapat melihat status tidur pengiriman dengan menyalakan Awake parts dari widget Opsi Visualisasi di sudut atas kanan 3D viewport.
Setelah diaktifkan, bagian yang disimulasikan akan ditunjukkan oleh status tidur mereka saat ini, dengan bangun bagian yang ditunjukkan dalam merah, memeriksa tidur bagian yang ditunjukkan dalam oranye, dan tidur bagian yang tidak ditunjukkan.