Slaap systeem

*Deze inhoud is vertaald met behulp van AI (bèta) en kan fouten bevatten. Klik hier om deze pagina in het Engels te bekijken.

Elk assemblage in de Roblox Engine komt overeen met een enkele rigid body. De positie en snelheid van elk rigid body beschrijven waar het zich bevindt en hoe snel het beweegt, en een van de primaire taken van de engine is om de posities en snelheden van elke assemblage bij te werken.

Assemblages kunnen met elkaar verbonden worden door middel van mechanische beperkingen en verplaatsingsbeperkingen om mechanismen zoals auto's of vliegtuigen te vormen. Naarmate het aantal assemblages en beperkingen in een mechanisme toeneemt, neemt ook de tijd die nodig is om het mechanisme te simuleren toe. Gelukkig wordt deze toename gecompenseerd wanneer het slaapsysteem vaststelt dat de engine de simulatie van niet-bewegende assemblages kan overslaan.

Slaaptoestanden

Elke assemblage kan zich in een van de drie toestanden bevinden: wakker, slapend of slaap-controle.

Wakker

Een wakker assemblage is in beweging of versnelt, en wordt daarom gesimuleerd. Assemblages komen in deze toestand vanuit situaties die zijn uiteengezet in slapend en slaap-controle, evenals aanvullende wakker situaties.

Slapend

Een slapende assemblage beweegt of versnelt niet, en wordt daarom niet gesimuleerd.

Een assemblage wordt als niet-bewegend beschouwd door zijn lineaire snelheid en rotatiesnelheid te controleren. Als de lineaire snelheid minder is dan de Lineaire Snelheid drempel en de rotatiesnelheid minder is dan de Rotational Velocity drempel, wordt de assemblage als niet-bewegend beschouwd.

In sommige gevallen zou het simpelweg controleren op niet-beweging ervoor zorgen dat een assemblage onterecht in de slapende toestand komt. Bijvoorbeeld, als een bal recht omhoog wordt gegooid, nadert zijn snelheid nul wanneer hij zijn maximale hoogte bereikt, waardoor het een kandidaat wordt om te slapen en nooit meer naar beneden te vallen. Om dergelijke gevallen te behandelen, beschouwt de engine een assemblage als versnellend als zijn lineaire versnelling of rotatieversnelling groter zijn dan de Lineaire Versnelling en Rotational Acceleration drempels, respectievelijk, en voorkomt dat de assemblage in slaap valt.

Slaap-controle

Een niet-bewegende assemblage die een beperking deelt met ten minste één wakker buurland wordt in de slaap-controle toestand geplaatst en wordt niet gesimuleerd. Bij elke wereldstap controleert een slaap-controle assemblage of:

Als een van deze voorwaarden waar is, of onder een van de aanvullende wakker situaties, komt de slaap-controle assemblage in de wakker toestand.

Drempelreferentie

De volgende tabel geeft de verschillende snelheid- en versnellingdrempels weer die worden gebruikt om te bepalen of een assemblage beweegt of versnelt.

DrempelWaardeToestand verandering
Lineaire Snelheid0.33 studs/swakker ⟩ slapend
Rotatiesnelheid0.42 studs/swakker ⟩ slapend
Lineaire Versnelling0.24 studs/s²wakker ⟩ slapend
Rotatieversnelling0.24 studs/s²wakker ⟩ slapend
Buurland Lineaire Snelheid0.48 studs/sslaap-controle ⟩ wakker
Buurland Rotatiesnelheid0.59 studs/sslaap-controle ⟩ wakker
Wakker Lineaire Versnelling16.9 studs/s²wakker ⟩ slapend
Wakker Rotatieversnelling16.9 studs/s²wakker ⟩ slapend

Rotatiesnelheid en versnellingdrempels weerspiegelen de snelheid en versnelling van een punt dat zich op de assemblage begrenzende bol bevindt (een bol die alle onderdelen in een assemblage bevat) en dat rigide met de assemblage beweegt.

Aangedreven gewrichten

Soms willen ontwikkelaars onderdelen heel langzaam verplaatsen met behulp van een aangedreven gewricht, een beperking die kracht of beweging toepast om verbonden onderdelen aan te drijven, zoals een HingeConstraint met een Motor. Om deze scenario's te ondersteunen, gebruiken assemblages die zijn verbonden met aangedreven gewrichten een strengere slaap snelheid drempel. Dit vertraagt wanneer die assemblages in slaap vallen, waardoor langzame, gecontroleerde beweging mogelijk is zonder dat het fysicasysteem ze voortijdig in slaap brengt.

De volgende worden beschouwd als aangedreven gewrichten:

Aanvullende wakker situaties

Naast de situaties die zijn uiteengezet in slaap-controle en slapend, komt een assemblage in de wakker toestand wanneer:

Debugvisualisatie

Tijdens het playtesten kun je de slaaptoestanden van assemblages visualiseren door Wakker onderdelen in te schakelen vanuit de Visualisatie Opties widget in de rechterbovenhoek van het 3D-venster.

Een close-up van het 3D-venster met de Visualisatie Opties knop aangegeven in de rechterbovenhoek.

Zodra dit is ingeschakeld, worden gesimuleerde onderdelen omrand door hun huidige slaaptoestand, waarbij wakker onderdelen in het rood zijn omrand, slaap-controle onderdelen in het oranje zijn omrand, en slapend onderdelen niet zijn omrand.

Gesimuleerde onderdelen omrand door de kleur die hun huidige slaaptoestand vertegenwoordigt
©2026 Roblox Corporation. Roblox, het Roblox-logo en Powering Imagination behoren tot onze geregistreerde en niet-geregistreerde handelsmerken in de VS en andere landen.