Roblox motorunda her bir Assembly , tek bir sabit vücut eşdeğer. Her sabit vücudunun pozisyonu ve hızı tek bir sabit vücutunun nerede bulunduğunu ve hızlıca hareket ettiğini tarif eder ve birincil motor görevlerinden biri, pozisyonları ve hızları her bir sabit vücutunun güncellenmesidir.
Özellikler, otomobiller veya uçaklar gibi mekanik kısıtlamalar ile birleştirilebilir ve mekanizmalar oluşturulabilir. Bir mekanizmanın sayısı ve kısıtlamaları arttıkça, mekanizmanın simüle etme süresi de artar. Şanslı bir şekilde, bu artış uyku sist
Uyku Durumları
Her bir montaj üç durumdan biri olabilir: uyanık, uyku kontrolü veya uyku.
Uyanık
Bir uyan montajı hareket ediyor veya hızlanıyor ve bu nedenle simüle edilmiştir. Montajlar uyku ve uyku , ile birlikte 1>ekstra uyku durumları1> da dahil olmak üzere simüle edilmiştir.
Uyku-Kontrolü
En az bir uyan komşu yapı ile bir kısıtlayıcıyı paylaşan hareket etmeyen bir montaj yanlış olarak uyku devletine yerleştirilir ve simüle edilmez. Her dünya adımında, bir uyku devleti kontrol eder:
- Bir komşu yapının pozyon sapması komşu yerleştirme eşikinden daha büyüktür.
- Bir komşu ürününün hızlanması ve mevcut zaman adımı boyutu, komşu açı hızı ve/veya komşu yer çekimi eşiklerinden daha büyük.
Bu koşullardan herhangi biri doğruysa, ekstra uyku durumlarının herhangi birinde uyku denetleyici montajı uyanma durumuna girer.
Uyuyor
Bir uyku montajı hareket etmiyor veya hızlanmıyor ve bu nedenle simüle edilmiyor.
Bir montaj, pozyon deviasyonunu kontrol ederek hareket etmediğine karar verir, hesaplanır ki şu andaki konumunun ortalama değerinden maksimum deviasyon olarak hesaplanır. Bu deviasyon uzaklaşma eşikinden daha fazla ise montaj uyanık devletine girer.
Bazı durumlarda, sadece hareket olmadığını kontrol etmek hala bir montajı yanlış bir şekilde uyku haline girmeye neden olabilir. Örneğin, bir top doğrudan yukarı atıldığında, pozisyonu bir dizi dünya adımına yaklaştı
Eşik İşaretlemesi
Aşağıdaki tablo, bir montajın hareket ettiği veya hızlandığını belirlemek için kullanılan farklı yer çekimi ve hızlandırma eşiklerini sağlar.
Eşik | Değer | Devlet Değişikliği |
---|---|---|
Komşu Değiştirme | 0.01 metre | uyku-kontrolü ⟩ uyanık |
Komşu Yer İzleme Hızı | 0.2 santimetre/saniye | uyku-kontrolü ⟩ uyanık |
Komşu Açı Hızı | 0,2 radians/s | uyku-kontrolü ⟩ uyanık |
Yerleştirme | 0.001 metre | uyuyorum ›› uyanıyorum |
Yer çekimi hızı | 0.1 metre/s | uyuyorum ›› uyanıyorum |
Açısal Hız | 0.1 radyans/saniye | uyuyorum ›› uyanıyorum |
Ekstra Uyku Durumları
uyku-kontrol ve uyku ile belirlenen durumların yanı sıra, bir montaj uyanık devletine girer:
Başka bir montajla çarpışır.
Tüm montaj değişikliklerindeki herhangi bir fiziksel özellik, bunların içindeki herhangi bir BasePart :
Yapılandırmada herhangi bir BasePart içindeki bir impuls uygulanır, herhangi bir ApplyImpulse() , ApplyImpulseAtPosition() veya 1> Class.BasePart:ApplyAngularImpulse()|ApplyAngularImpulse()1> .
Class.Workspace üzerindeki herhangi bir fiziksel özellik değişikliği, montajı etkileyen herhangi bir özellik değişikliği, hala etkileyen herhangi bir özellik değişikliği, herhangi bir özellik değişikliği de dahil edilmiştir.
Yeni bir Constraint oluşturuldu, bir Attachment ile, bir BasePart içindeki üst düzey bir 1> Class.Parent1> ile ilgili.
Herhangi bir özellik değişikliği bir Constraint ile ana Attachment arasında bir BasePart içindeki bir ebeveyn içinde.
Class.Motor.CurrentAngle|CurrentAngle özelliği, bir Class.Motor ile bir Class.BasePart arasındaki bağlantı için değişir.
Class.VehicleSeat ile bir oturmuş oyuncu karakteri içerir
Kuruluş, bir BlastRadius ın Explosion içinde.
Hata ayıklama Görselleştirme
Oyun testinde, Uyanık parçaları 3D görüntü ortasındaki Görüntüleme Seçenekleri widget'inden açarak konsol uyku durumlarını görselleştirebilirsiniz.
Etkinleştirildiğinde, uyku haline sahip simüle edilmiş parçaların içeriği uyku parçalarının içeriği kırmızıdaki uyku parçalarıyla açıklanır, uyku-kontrol parçalarının içeriği turuncu ve 2>uyku2> parçalarının içeriği olmayan 5>uyku5> parçalarıyla açıklanır