Schlafsystem

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

Jede Baugruppe im Roblox-Engine entspricht einem einzelnen starren Körper. Die Position und Geschwindigkeit jedes starren Körpers beschreiben, wo er sich befindet und wie schnell er sich bewegt. Eine der Hauptaufgaben der Engine besteht darin, die Positionen und Geschwindigkeiten jeder Baugruppe zu aktualisieren.

Baugruppen können mit mechanischen Einschränkungen und Mover-Einschränkungen verbunden werden, um Mechanismen wie Autos oder Flugzeuge zu bilden. Wenn die Anzahl der Baugruppen und Einschränkungen in einem Mechanismus zunimmt, erhöht sich auch die benötigte Zeit zur Simulation des Mechanismus. Glücklicherweise wird dieser Anstieg ausgeglichen, wenn das Schlafsystem feststellt, dass die Engine die Simulation nicht bewegter Baugruppen überspringen kann.

Schlafzustände

Jede Baugruppe kann sich in einem von drei Zuständen befinden: wach, schlafend oder schlaf-überprüfend.

Wach

Eine wach Baugruppe bewegt sich oder beschleunigt, und wird daher simuliert. Baugruppen gelangen in diesen Zustand aus Situationen, die in schlafend und schlaf-überprüfend beschrieben sind, sowie aus zusätzlichen Wachsituationen.

Schlafend

Eine schlafend Baugruppe bewegt sich weder noch beschleunigt sie und wird daher nicht simuliert.

Eine Baugruppe wird als nicht bewegend erkannt, indem ihre lineare Geschwindigkeit und rotatorische Geschwindigkeit überprüft werden. Wenn ihre lineare Geschwindigkeit unter dem Linearen Geschwindigkeits Schwellenwert und ihre rotatorische Geschwindigkeit unter dem Rotatorischen Geschwindigkeits Schwellenwert liegt, wird die Baugruppe als nicht bewegend angesehen.

In einigen Fällen würde eine einfache Überprüfung auf Nichtbewegung dazu führen, dass eine Baugruppe fälschlicherweise in den schlafenden Zustand übergeht. Wenn beispielsweise ein Ball gerade nach oben geworfen wird, nähert sich seine Geschwindigkeit null, wenn er seine maximale Höhe erreicht, was ihn zu einem Kandidaten macht, um zu schlafen und nie wieder herunterzufallen. Um solche Fälle zu behandeln, betrachtet die Engine eine Baugruppe als beschleunigend, wenn ihre lineare Beschleunigung oder rotatorische Beschleunigung die Lineare Beschleunigung und Rotatorische Beschleunigung Schwellenwerte übersteigt und verhindert, dass die Baugruppe in den Schlafzustand übergeht.

Schlaf-überprüfend

Eine nicht bewegende Baugruppe, die eine Einschränkung mit mindestens einer wach benachbarten Baugruppe teilt, wird in den Zustand schlaf-überprüfend versetzt und nicht simuliert. Bei jedem Welt-Schritt überprüft eine schlaf-überprüfende Baugruppe, ob:

Wenn eine dieser Bedingungen wahr ist, oder unter einer der zusätzlichen Wachsituationen, wechselt die schlaf-überprüfende Baugruppe in den wach Zustand.

Schwellenwertreferenz

Die folgende Tabelle listet die verschiedenen Geschwindigkeits- und Beschleunigungs-Schwellenwerte auf, die verwendet werden, um zu bestimmen, ob eine Baugruppe sich bewegt oder beschleunigt.

SchwellenwertWertZustandswechsel
Lineare Geschwindigkeit0,33 studs/swachschlafend
Rotatorische Geschwindigkeit0,42 studs/swachschlafend
Lineare Beschleunigung0,24 studs/s²wachschlafend
Rotatorische Beschleunigung0,24 studs/s²wachschlafend
Nachbar Lineare Geschwindigkeit0,48 studs/sschlaf-überprüfendwach
Nachbar Rotatorische Geschwindigkeit0,59 studs/sschlaf-überprüfendwach
Wach Lineare Beschleunigung16,9 studs/s²wachschlafend
Wach Rotatorische Beschleunigung16,9 studs/s²wachschlafend

Die rotatorischen Geschwindigkeits- und Beschleunigungsschwellenwerte spiegeln die Geschwindigkeit und Beschleunigung eines Punktes wider, der sich auf der Begrenzungskugel der Baugruppe (eine Kugel, die alle Teile in einer Baugruppe enthält) befindet und starr mit der Baugruppe bewegt.

Aktuierte Gelenke

Manchmal möchten Entwickler Teile sehr langsam mit einem aktuierenden Gelenk bewegen, einer Einschränkung, die Kraft oder Bewegung anwendet, um verbundene Teile anzutreiben, wie eine HingeConstraint, die einen Motor verwendet. Um solche Szenarien zu unterstützen, verwenden Baugruppen, die mit aktuierenden Gelenken verbunden sind, einen strengeren Schlafgeschwindigkeitsschwellenwert. Dies verzögert, wann diese Baugruppen einschlafen, sodass langsame, kontrollierte Bewegungen möglich sind, ohne dass das Physiksystem sie vorzeitig in den Schlafzustand versetzt.

Die folgenden gelten als aktierte Gelenke:

Zusätzliche Wachsituationen

Neben den in schlaf-überprüfend und schlafend beschriebenen Situationen wechselt eine Baugruppe in den wach Zustand, wenn:

Debug-Visualisierung

Während des Testspiels können Sie die Schlafzustände von Baugruppen visualisieren, indem Sie die Wach Teile im Visualisierungs Optionen Widget in der oberen rechten Ecke des 3D-Viewport aktivieren.

Eine Nahaufnahme des 3D-Viewport mit dem Visualisierungs Options Button in der oberen rechten Ecke angezeigt.

Sobald aktiviert, werden simulierte Teile von ihrem aktuellen Schlafzustand umrandet, wobei wach Teile rot umrandet, schlaf-überprüfend Teile orange umrandet und schlafend Teile nicht umrandet sind.

Simulierte Teile, umrandet von der Farbe, die ihren aktuellen Schlafzustand darstellt
©2026 Roblox Corporation. Roblox, das Roblox-Logo und "Powering Imagination" gehören zu unseren eingetragenen und nicht eingetragenen Markenzeichen in den USA und anderen Ländern.