Système de sommeil

*Ce contenu est traduit en utilisant l'IA (Beta) et peut contenir des erreurs. Pour consulter cette page en anglais, clique ici.

Chaque assemblage dans le moteur Roblox correspond à un corps rigide unique. La position et la vitesse de chaque corps rigide décrivent où il est situé et à quelle vitesse il se déplace, et l'une des tâches principales du moteur est de mettre à jour les positions et les vitesses de chaque assemblage.

Les assemblages peuvent être connectés ensemble par des contraintes mécaniques et des contraintes de déplacement pour former des mécanismes tels que des voitures ou des avions. À mesure que le nombre d’assemblages et de contraintes dans un mécanisme augmente, le temps nécessaire pour simuler le mécanisme augmente également. Heureusement, cette augmentation est compensée lorsque le système de sommeil détermine que le moteur peut ignorer la simulation des assemblages non mobiles.

États de sommeil

Chaque assemblage peut être dans l'un des trois états : éveillé, endormi ou vérification du sommeil.

Éveillé

Un assemblage éveillé est en mouvement ou en accélération, et est donc simulé. Les assemblages entrent dans cet état à partir des situations décrites dans endormi et vérification du sommeil, ainsi que dans des situations d'éveil supplémentaires.

Endormi

Un assemblage endormi n'est ni en mouvement ni en accélération, et n'est donc pas simulé.

Un assemblage est déterminé comme non-mouvant en vérifiant sa vitesse linéaire et sa vitesse angulaire. Si sa vitesse linéaire est inférieure au seuil de vitesse linéaire et sa vitesse angulaire est inférieure au seuil de vitesse angulaire, l’assemblage est considéré comme non-mouvant.

Dans certains cas, vérifier simplement l'absence de mouvement ferait qu'un assemblage entrerait incorrectement dans l'état endormi. Par exemple, si une balle est lancée directement vers le haut, sa vitesse approche zéro lorsqu'elle atteint sa hauteur maximale, ce qui en fait un candidat potentiel pour s'endormir et ne jamais retomber. Pour gérer de tels cas, le moteur considère qu'un assemblage est en accélération si son accélération linéaire ou accélération angulaire sont supérieures aux seuils de vitesse d'accélération linéaire et accélération angulaire, respectivement, et empêchera l’assemblage de s'endormir.

Vérification du sommeil

Un assemblage non-mouvant qui partage une contrainte avec au moins un assemblage éveillé est mis dans l'état de vérification du sommeil et n'est pas simulé. À chaque étape de monde, un assemblage en vérification du sommeil vérifie si :

Si l'une de ces conditions est vraie, ou sous l'une des situations d'éveil supplémentaires, l’assemblage en vérification du sommeil entre dans l'état éveillé.

Référence de seuil

Le tableau suivant fournit les divers seuils de vitesse et d'accélération utilisés pour déterminer si un assemblage est en mouvement ou en accélération.

SeuilValeurChangement d'état
Vitesse Linéaire0.33 studs/séveilléendormi
Vitesse Angulaire0.42 studs/séveilléendormi
Accélération Linéaire0.24 studs/s²éveilléendormi
Accélération Angulaire0.24 studs/s²éveilléendormi
Vitesse Linéaire Voisin0.48 studs/svérification du sommeiléveillé
Vitesse Angulaire Voisin0.59 studs/svérification du sommeiléveillé
Accélération Linéaire d’Éveil16.9 studs/s²éveilléendormi
Accélération Angulaire d’Éveil16.9 studs/s²éveilléendormi

Les seuils de vitesse et d'accélération angulaires reflètent la vitesse et l'accélération d'un point situé sur la sphère englobante de l'assemblage (une sphère qui contient toutes les parties d'un assemblage) qui se déplace rigoureusement avec l’assemblage.

Joints actionnés

Parfois, les développeurs souhaitent déplacer des parties très lentement à l'aide d'un joint actionné, une contrainte qui applique une force ou un mouvement pour déplacer des parties connectées, comme un HingeConstraint utilisant un Motor. Pour soutenir ces scénarios, les assemblages connectés à des joints actionnés utilisent un seuil de vitesse de sommeil plus strict. Cela retarde le moment où ces assemblages s’endorment, permettant un mouvement lent et contrôlé sans que le système physique les mette prématurément à l'endormissement.

Les éléments suivants sont considérés comme des joints actionnés :

Situations d'éveil supplémentaires

En plus des situations décrites dans vérification du sommeil et endormi, un assemblage entre dans l'état éveillé lorsqu’il :

Visualisation de débogage

Pendant les tests de jeu, vous pouvez visualiser les états de sommeil des assemblages en activant les Pièces éveillées depuis le widget des Options de Visualisation dans le coin supérieur droit de la vue 3D.

Une vue rapprochée de la vue 3D avec le bouton des Options de Visualisation indiqué dans le coin supérieur droit.

Une fois activé, les pièces simulées seront délimitées par leur état de sommeil actuel, les pièces éveillées étant délimitées en rouge, les pièces en vérification de sommeil en orange, et les pièces endormies sans délimitation.

Pièces simulées délimitées par la couleur représentant leur état de sommeil actuel
©2026 Société Roblox. Roblox, le logo Roblox et Powering Imagination font partie de nos marques déposées aux États-Unis et dans d'autres pays.