Sistem Tidur

*Konten ini diterjemahkan menggunakan AI (Beta) dan mungkin mengandung kesalahan. Untuk melihat halaman ini dalam bahasa Inggris, klik di sini.

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.
  • Hasil dari akselerasi dan ukuran timestep saat ini produksi sebuah kelompok adalah lebih besar dari kecepatan dan/atau 1>kecepatan1> 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.

GerbangNilaiPerubahan Negara
Pengiriman Tetangga0,01 incisleep-checking > bangun
Kecepatan Linier Tetangga0,2 studs / detiksleep-checking > bangun
Kecepatan Sirkulasi Tetangga0,2 radian/detiksleep-checking > bangun
Penggeseran0,001 studtidur > bangun
Kecepatan Linier0,1 studs / detiktidur > bangun
Kecepatan Sinkron0,1 radian/detiktidur > bangun

Situasi Pengawasan Tambahan

Selain situasi yang ditunjukkan dalam sleep-checking dan sleeping, sebuah rangkaian masuk ke 醒来 status ketika:

Visualisasi Debug

Selama playtest, Anda dapat melihat status tidur pengiriman dengan menyalakan Awake parts dari widget Opsi Visualisasi di sudut atas kanan 3D viewport.

A close up view of the 3D viewport with the Visualization Options button indicated in the upper-right corner.

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.

Bagian yang disimulasikan oleh warna mewakili status tidur mereka saat ini