Schlafsystem

*Dieser Inhalt wurde mit KI (Beta) übersetzt und kann Fehler enthalten. Um diese Seite auf Englisch zu sehen, klicke hier.

Jede Montagemaschine in der Roblox-Engine entspricht einem einzigen steifen Körper .Die Position und Geschwindigkeit jedes steifen Körpers beschreibt, wo er sich befindet und wie schnell er sich bewegt, und eine der Hauptaufgaben der MotorEngine ist es, die Positionen und Geschwindigkeiten jedes Bausatzes zu aktualisieren.

Zusammenhänge können mit mechanischen Einschränkungen und Bewegungseinschränkungen verbunden werden, um Mechanismen wie Autos oder Flugzeuge zu bilden.Je mehr Assemblies und Einschränkungen in einem Mechanismus zunehmen, desto mehr Zeit wird zur Simulation des Mechanismus benötigt.Glücklicherweise wird diese Erhöhung ausgeglichen, wenn das Schlafsystem feststellt, dass die Engine die Simulation von nicht bewegenden Montagemaschinen überspringen kann.

Schlafzustände

Jede Zusammenstellung kann in einem von drei Zuständen sein: wach, Schlafprüfung oder schlafen.

Wach

Eine wache Montagemaschine bewegt sich oder beschleunigt sich und wird daher simuliert.Versammlungen gelangen in diesen Zustand aus Situationen, die in Schlafüberprüfung und Schlafen beschrieben sind, sowie zusätzliche Wachsituationen.

Schlaf-Checking

Eine nicht bewegliche Montagemaschine, die eine Einschränkung mit mindestens einer wachen benachbarten Montagemaschine teilt, wird in den Schlafüberprüfungs -Zustand versetzt und nicht simuliert.Bei jedem Weltenschritt prüft eine Schlafüberwachungs-Assembly, ob:

Wenn eine dieser Bedingungen wahr ist oder eine der zusätzlichen Wachsituationen vorliegt, tritt die Schlafprüfungsversammlung in den Wachzustand ein.

Schlafen

Eine schlafende Montagemaschine bewegt sich nicht oder beschleunigt nicht und wird daher nicht simuliert.

Eine Montagemaschine wird als nicht bewegbar bestimmt, indem ihre Positionabweichung überprüft wird, die als die maximale Abweichung von der durchschnittlichen Position des Punkts am weitesten von seinem Schwerpunkt über die jüngste Reihe von Weltstufen berechnet wird.Wenn diese Abweichung größer als die Verschiebungsschwelle ist, geht die Montagemaschine in den Wachzustand über.

In einigen Fällen würde die einfache Überprüfung auf Nichtbewegung dazu führen, dass eine Montagemaschine den Schlafzustand falsch betritt.Wenn zum Beispiel ein Ball direkt nach oben geworfen wird, ändert sich seine Position kaum für eine Reihe von Weltschritten, wenn er seine maximale Höhe erreicht, was ihn zu einem Kandidaten macht, der nie wieder herunterfällt.Um solche Fälle zu bewältigen, überwacht die Engine, ob das Produkt der Beschleunigung und der aktuellen Zeitspanne der Montagemaschine die lineare Geschwindigkeit und/oder die anguläre Geschwindigkeit Schwellenwerte überschreitet.

Schwellenwert-Referenz

Die folgende Tabelle gibt die verschiedenen Verschiebungs- und Geschwindigkeitsgrenzen an, die verwendet werden, um zu bestimmen, ob eine Montagemaschine sich bewegt oder beschleunigt.

SchwelleWertZustandsänderung
Nachbarvertreibung0.01 klötzeschlaf-checkwach
Nachbarlineare Geschwindigkeit0,2 steine/sekundeschlaf-checkwach
Nachbar-Angulargeschwindigkeit0,2 radian/sekundeschlaf-checkwach
Versatz0.001 klötzeschlafenwach
Lineare Geschwindigkeit0,1 stollen/sekundeschlafenwach
Winkelgeschwindigkeit0,1 radian/sekundeschlafenwach

Zusätzliche Wecklagen

Zusätzlich zu den Situationen, die in Schlafüberprüfung und Schlafen beschrieben sind, betritt eine Zusammenstellung den wachen Zustand, wenn:

Debug-Visualisierung

Während des Spieltests kannst du Montageschlafzustände visualisieren, indem du auf Awake-Teile im Widget Visuelle Optionen in der oberen rechten Ecke des 3D-Ansichtsfensters umschaltest.

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

Sobald aktiviert, werden simulierte Teile durch ihren aktuellen Schlafzustand umrissen, mit wachen Teilen in Rot, Schlafüberprüfung Teilen in Orange und schlafenden Teilen ohne Umriss.

Simulierte Teile, die durch die Farbe dargestellt werden, die ihren aktuellen Schlafzustand repräsentiert