Roblox Motorunda her montaj bir tek sert vücut eşdeğerdir.Her sert vücudun konumu ve hızı, nerede bulunduğunu ve ne kadar hızlı hareket ettiğini tanımlar ve ana motor görevlerinden biri, her montajın konumlarını ve hızlarını güncelleştirmektir.
Bileşenler, mekanik kısıtlama ve hareket kısıtlaması ile birlikte bağlanabilir ve arabalar veya uçaklar gibi mekanizmalar oluşturabilir.Bir mekanizmadaki montaj ve kısıtlama sayısı arttıkça, mekanizmayı simüle etmek için gereken süre de artar.Neyse ki, bu artış, uyku sistemi motorun hareketsiz montajların simülasyonunu atlayabileceğini belirlediğinde telafi edilir.
Uyku durumları
Her birleşim üç devletten birinde olabilir: uyanık, uyku kontrolü veya uyku.
Uyanık
Uyanık bir montaj hareket ediyor veya hızlanıyor ve bu nedenle simüle ediliyor.Montajlar bu duruma uyku kontrolü ve uyku sırasında belirtilen durumlardan, ayrıca ek uyanma durumları dan girer.
Uyku kontrolü
En az bir uyanık komşu montajı ile bir sınır paylaşan hareketsiz bir montaj, uyku kontrolü durumuna yerleştirilir ve simüle edilmez.Her dünya adımında, bir uyku kontrolü montajı şunu kontrol eder:
- Komşu bir montajın pozisyon sapması daha yüksektir than the Komşu Taşıma Sınırı eşiği.
- Komşu bir montajın hızlandırması ve mevcut zaman adımı boyutunun bir ürünü, Komşu Açısal Hız ve/veya Komşu Lineer Hız eşiğinden daha büyüktür.
Bu koşullardan herhangi biri doğruysa veya ekstra uyanma durumlarından herhangi biri altında, uyku kontrolü montajı uyanık duruma girer.
Uyku
Bir uyku montajı hareket etmiyor veya hızlanmıyor ve bu nedenle simüle edilmiyor.
Bir montaj, pozisyon sapmasının hareket etmediğini kontrol ederek belirlenir, yani en yakın dünya adımlarının merkezinden uzak olan noktanın ortalama konumundan maksimum sapma olarak hesaplanır.Bu sapma Yer değiştirme eşiğinden daha büyükse, montaj uyanık durumuna girer.
Bazı durumlarda, sadece hareketsizlik kontrol etmek bir montajın uyku durumuna yanlış girmesine neden olur.Örneğin, bir top doğrudan atılırsa, maksimum yüksekliğine yaklaştığı için bir dünya adımı sayısında neredeyse konumu değişmez, böylece uyku adayı olur ve asla geri dönmez.Bu gibi durumları ele almak için, motor, montajın hızlandırma ürününün ve mevcut zaman adımı büyüklüğünün Linear Velocity ve/veya Angular Velocity eşiğini aşıp aşmadığını izler.
Eşik referansı
Aşağıdaki tablo, bir montajın hareket edip edmediğini veya hızlandığını belirlemek için kullanılan çeşitli yer değiştirme ve hız sınırlarını sağlar.
Eşik Değeri | Değer | Devlet değişikliği |
---|---|---|
Komşu Taşıma | 0.01 çiviler | uyku kontrolü ⟩ uyanık |
Komşu Lineer Hızı | 0.2 mil/s | uyku kontrolü ⟩ uyanık |
Komşu Açısal Hızı | 0.2 radyand/saniye | uyku kontrolü ⟩ uyanık |
Taşıma | 0.001 saplama | uyuyor ⟩ uyanıyor |
Lineer Hız | 0.1 saplama/s | uyuyor ⟩ uyanıyor |
Açısal Hız | 0.1 radyandan/saniye | uyuyor ⟩ uyanıyor |
Ek uyanma durumları
Uyku kontrolünde belirtilen durumlara ek olarak, uyku kontrolü ve uyku sırasında, bir montaj şu duruma girer:
Başka bir montajla çarpışır.
Montaj içindeki herhangi bir fizikle ilgili özellik, şunlar dahil: BasePart İçindeki herhangi bir fizikle ilgili özellik, şunlar dahil:
Sıfır olmayan bir hızlanma, montaj içinde herhangi bir BasePart , ApplyImpulse() veya ApplyImpulseAtPosition() aracılığıyla uygulanır ApplyAngularImpulse() .
Montajı etkileyen herhangi bir fizikle ilgili özellik değişikliği Workspace , bunlar arasında:
Yeni bir Constraint , montaj içindeki bir Attachment e ait bir BasePart ile yaratılır.
Bir montaj içindeki bir Constraint ile ilişkilendirilen bir Attachment özelliğinin değişmesi, montaj içindeki bir BasePart ile ilişkilendirilen herhangi bir özellik değişikliği
Birleşimin içindeki bir CurrentAngle özelliğinin bağlı olduğu bir Motor özelliğinin özellik değişiklikleri BasePart için
Montaj, oturan bir oyuncu karakteri ile bir VehicleSeat içerir.
Montaj bir BlastRadius 'nin Explosion içindedir.
Sorun giderme görselleştirmesi
Oynatma testi sırasında, 3B görüntü alanının sağ üst kısmındaki Uyanık parçalar düğmesinden Görselleştirme Seçenekleri widgetine geçerek montaj uyku durumlarını görselleştirebilirsiniz.

Bir kez etkinleştirildiğinde, simüle edilmiş parçalar mevcut uyku durumlarıyla çizilecek, uyanık parçalar kırmızıda çizilecek, uyku kontrolü parçaları turuncu ile çizilecek ve uyku parçaları belirtilmeyecek.