Sistema de sueño

*Este contenido se traduce usando la IA (Beta) y puede contener errores. Para ver esta página en inglés, haz clic en aquí.

Cada conjunto en el motor de Roblox corresponde a un solo cuerpo rígido. La posición y velocidad de cada cuerpo rígido describen dónde se encuentra y qué tan rápido se mueve, y una de las tareas principales del motor es actualizar las posiciones y velocidades de cada conjunto.

Los conjuntos pueden estar conectados entre sí con restricciones mecánicas y restricciones de mover para formar mecanismos como coches o aviones. A medida que aumenta el número de conjuntos y restricciones en un mecanismo, también aumenta el tiempo requerido para simular el mecanismo. Afortunadamente, este aumento se compensa cuando el sistema de sueño determina que el motor puede omitir la simulación de conjuntos que no se mueven.

Estados de sueño

Cada conjunto puede estar en uno de tres estados: despierto, durmiendo o verificando sueño.

Despierto

Un conjunto despierto está en movimiento o acelerando, y por lo tanto es simulado. Los conjuntos entran en este estado desde situaciones descritas en durmiendo y verificando sueño, así como situaciones adicionales de despertar.

Durmiendo

Un conjunto durmiendo no está ni en movimiento ni acelerando, y por lo tanto no es simulado.

Se determina que un conjunto no está en movimiento al verificar su velocidad lineal y velocidad rotacional. Si su velocidad lineal es menor que el umbral de Velocidad Lineal y su velocidad rotacional es menor que el umbral de Velocidad Rotacional, el conjunto se considera que no se está moviendo.

En algunos casos, simplemente verificar la falta de movimiento podría hacer que un conjunto entre incorrectamente en el estado de sueño. Por ejemplo, si se lanza una bola hacia arriba, su velocidad se acerca a cero a medida que alcanza su altura máxima, lo que la convierte en una candidata para dormir y nunca volver a caer. Para manejar tales casos, el motor considera que un conjunto está acelerando si su aceleración lineal o aceleración rotacional son mayores que los umbrales de Aceleración Lineal y Aceleración Rotacional, respectivamente, y evitará que el conjunto se duerma.

Verificando sueño

Un conjunto que no se mueve y que comparte una restricción con al menos un conjunto despierto vecino se pone en el estado de verificando sueño y no es simulado. En cada paso del mundo, un conjunto en verificación de sueño verifica si:

Si alguna de estas condiciones es verdadera, o bajo cualquiera de las situaciones adicionales de despertar, el conjunto en verificación de sueño entra en el estado despierto.

Referencia de umbrales

La siguiente tabla proporciona los diversos umbrales de velocidad y aceleración utilizados para determinar si un conjunto se mueve o acelera.

UmbralValorCambio de estado
Velocidad Lineal0.33 studs/sdespiertodurmiendo
Velocidad Rotacional0.42 studs/sdespiertodurmiendo
Aceleración Lineal0.24 studs/s²despiertodurmiendo
Aceleración Rotacional0.24 studs/s²despiertodurmiendo
Velocidad Lineal Vecina0.48 studs/sverificando sueñodespierto
Velocidad Rotacional Vecina0.59 studs/sverificando sueñodespierto
Aceleración Lineal de Despertar16.9 studs/s²despiertodurmiendo
Aceleración Rotacional de Despertar16.9 studs/s²despiertodurmiendo

Los umbrales de velocidad y aceleración rotacionales reflejan la velocidad y la aceleración de un punto ubicado en la esfera de contorno del conjunto (una esfera que contiene todas las partes en un conjunto) que se mueve rígidamente con el conjunto.

Juntas actuadas

A veces, los desarrolladores quieren mover partes muy lentamente utilizando una junta actuada, una restricción que aplica fuerza o movimiento para impulsar partes conectadas, como un HingeConstraint usando un Motor. Para apoyar estos escenarios, los conjuntos conectados a juntas actuadas utilizan un umbral de velocidad de sueño más estricto. Esto retrasa cuándo esos conjuntos se duermen, permitiendo un movimiento controlado y lento sin que el sistema de física los coloque a dormir prematuramente.

Las siguientes se consideran juntas actuadas:

Situaciones adicionales de despertar

Además de las situaciones descritas en verificando sueño y durmiendo, un conjunto entra en el estado despierto cuando:

Visualización de depuración

Durante las pruebas de juego, puedes visualizar los estados de sueño del conjunto activando las Partes Despertas desde el widget de Opciones de Visualización en la esquina superior derecha de la vista 3D.

Una vista cercana del viewport 3D con el botón de Opciones de Visualización indicado en la esquina superior derecha.

Una vez habilitado, las partes simuladas estarán delineadas por su estado de sueño actual, con partes despiertas delineadas en rojo, partes verificando sueño delineadas en naranja, y partes durmiendo sin delinear.

Partes simuladas delineadas por el color que representa su estado de sueño actual
©2026 Roblox Corporation. Roblox, el logotipo de Roblox y "Powering Imagination" son algunas de nuestras marcas registradas y no registradas en los Estados Unidos y otros países.