Objetos giratorios son objetos que rotan sobre uno o más ejes dentro del espacio 3D. Utilizando el poder integrado del motor de simulación de Roblox, puedes hacer que los objetos giren e interactúen con su entorno de una manera que emula el comportamiento físico del mundo real que es familiar e intuitivo para los jugadores, como la gravedad, la aerodinámica y la fricción.
Usando el archivo de Objetos Giratorios .rbxl como referencia, este tutorial explica cómo las fuerzas físicas impactan el movimiento angular en Studio, y te muestra diversas técnicas para girar objetos en tus experiencias con diferentes comportamientos de giro, incluyendo orientación sobre:
- Usar una restricción AngularVelocity para girar un ensamblaje entero a una velocidad angular constante.
- Usar una restricción mecánica HingeConstraint para girar una parte dentro de un ensamblaje a una velocidad angular constante mientras el resto del ensamblaje permanece estacionario.
- Usar el método ApplyAngularImpulse para girar un ensamblaje con un impulso inicial de fuerza angular de modo que el ensamblaje desacelere lentamente con el tiempo.
Movimiento angular y fuerzas físicas
Roblox Studio es un motor de simulación del mundo real que emula el comportamiento físico en tiempo real, así que para predecir el comportamiento de los objetos giratorios en las experiencias, es importante tener una comprensión general de cómo giran los objetos en la vida real con movimiento angular.
Movimiento angular, o movimiento rotacional, es el movimiento alrededor de un punto o eje fijo. Por ejemplo, cuando una hélice tiene movimiento angular, gira alrededor de su eje rotacional en el medio de la hélice.

El movimiento angular no puede existir sin fuerzas físicas externas que empujen o tiren de los objetos para girar. Según la primera ley del movimiento de Newton, los objetos estacionarios permanecen estacionarios y los objetos en movimiento permanecen en movimiento a una velocidad constante a menos que sean afectados por una fuerza externa. Por ejemplo, una hélice estacionaria permanece estacionaria a menos que una fuerza física como el viento la empuje a girar.
Torque es la medida de la fuerza física que causa que los objetos giren, y es responsable de que los objetos obtengan aceleración angular. Este concepto es particularmente importante para que los objetos giren en Studio; cuanto más torque apliques a los objetos, más rápido pueden acelerar.
Esto se debe a que el torque necesita ser mayor que cualquier fuerza física direccional que actúe en contra del objeto, como la gravedad o la fricción. Por ejemplo, si colocas la hélice en tierra, la fuerza física del viento necesita superar la cantidad de fricción de la tierra para continuar acelerando la hélice giratoria. Si la fuerza del viento no es mucho mayor que la fricción de la tierra, la hélice acelera, pero más lentamente que en el ejemplo anterior.

Velocidad angular es la medida de la tasa de rotación de un objeto, o qué tan rápido gira el objeto alrededor de un punto o eje fijo durante un periodo de tiempo. Studio mide la velocidad angular según cuántos radianes un objeto gira por segundo. Hay 2π radianes (6.283) en una rotación completa, así que para que un objeto realice una rotación completa por segundo, debe tener suficiente torque para girar alrededor de 6 radianes. Entender la velocidad angular es importante para diseñar la jugabilidad en tus experiencias porque te ayuda a determinar cuánto torque necesitas para lograr una aceleración particular para tus objetos giratorios.
Las siguientes secciones profundizan en estos conceptos mientras aprendes cómo girar objetos a una velocidad angular constante o inicial con el torque necesario para superar cualquier fuerza física de oposición dentro del entorno. A medida que revises estos conceptos físicos con las técnicas siguientes, podrás predecir con mayor precisión cómo ajustar los valores de las propiedades para lograr cualquier comportamiento giratorio ideal en Studio.
Mantener una fuerza angular constante
Para que un objeto alcance y mantenga una velocidad angular constante, necesita una fuerza angular para superar cualquier fuerza física de oposición que desacelere la velocidad angular del objeto o haga que el objeto permanezca estacionario. Por ejemplo, si deseas que un objeto tenga una velocidad angular de [0, 12, 0] en Studio, necesitas suficiente torque para que el objeto alcance y mantenga 12 radianes por segundo a lo largo del eje Y en su entorno, o alrededor de dos rotaciones completas por segundo.
La cantidad de torque que aplicas a tus objetos no solo depende de las fuerzas físicas de oposición dentro del propio entorno, como la gravedad y la fricción, sino también del propio objeto. Por ejemplo, si tienes dos objetos de la misma forma que están girando en el mismo eje, el objeto más grande con un mayor momento de inercia requiere más torque para lograr la misma aceleración angular.
Las siguientes subsecciones utilizan ensamblajes de diferentes formas y tamaños para enseñarte cómo girar un objeto entero o solo una porción del objeto. A medida que experimentes con diferentes valores de propiedades, aprenderás a estimar la cantidad máxima de torque que necesitas para los ensamblajes en tus propias experiencias.
Usar restricciones AngularVelocity
Los objetos AngularVelocity son un tipo de restricción de movimiento que aplican torque sobre todo un ensamblaje para mantener una velocidad angular constante. Para comenzar a girar el ensamblaje, la restricción AngularVelocity necesita conocer:
- El punto y la dirección positiva o negativa para aplicar una fuerza angular.
- La cantidad de radianes que deseas que el ensamblaje gire por segundo.
- La cantidad máxima de torque que el motor puede aplicar para que el ensamblaje alcance una velocidad angular constante.
Para demostrar este proceso, agregarás un bloque a tu espacio de trabajo con un accesorio que una restricción AngularVelocity referencia para girar el bloque 6 radianes por segundo a lo largo del eje Y del mundo a una velocidad angular constante, o aproximadamente una rotación completa.

Agregar accesorio
Puedes especificar el punto fijo para girar un ensamblaje agregando un objeto Attachment al ensamblaje, y luego configurando la posición del accesorio en el espacio 3D. La experiencia de Objetos Giratorios coloca un accesorio en el centro de una parte de bloque para que la restricción pueda girar la parte en sentido antihorario alrededor del centro de sí misma.
Los accesorios incluyen ayudas visuales para ayudarte a visualizar sus ejes de rotación. La flecha amarilla denota el eje primario del accesorio, y la flecha naranja denota el eje secundario del accesorio. Aunque ninguno de los ejes de rotación influye en la rotación del bloque en los pasos de esta técnica, es importante entender estas ayudas visuales para futuras referencias porque pueden ayudarte a determinar el comportamiento ideal para diferentes tipos de restricciones, como la HingeConstraint en la siguiente técnica.

Para agregar un accesorio:
En la ventana de Explorer, inserta una parte de bloque en el Workspace.

Inserta un accesorio en la nueva parte.
- En la ventana de Explorer, pasa el cursor sobre la parte y haz clic en el botón ⊕. Se muestra un menú contextual.
- En el menú, inserta un Attachment. El accesorio se muestra en el centro de la parte.
- Renombra el accesorio a SpinAttachment.

Configurar restricción
Ahora que tu bloque tiene un punto fijo para girar, puedes configurar las propiedades de una restricción AngularVelocity para especificar la dirección rotacional, eje o ejes para aplicar una velocidad angular constante objetivo, la cantidad de radianes que deseas que el bloque gire por segundo, y la cantidad máxima de torque que el motor puede aplicar para que el bloque alcance una velocidad angular constante.
La experiencia de Objetos Giratorios aplica hasta 1000 Rowton-studs de fuerza angular constante para girar el bloque a 6 radianes por segundo a lo largo del eje Y del mundo a una velocidad angular constante. Los Rowton-studs son las unidades físicas primarias de Roblox para medir el torque. Para hacer referencia a las unidades físicas de Roblox y cómo se convierten a unidades métricas, consulta Unidades de Roblox.
Para configurar una restricción AngularVelocity:
Para hacer visible la restricción en el visor para que puedas referenciar su dirección rotacional, habilita Mostrar Detalles de la Restricción en el menú Ver de Studio.
Inserta una restricción AngularVelocity en la parte.
- En la ventana de Explorer, pasa el cursor sobre la parte, luego haz clic en el icono ⊕. Se muestra un menú contextual.
- En el menú contextual, inserta AngularVelocity. La ayuda visual de la restricción se muestra en el medio de la parte.
Asigna el accesorio de la parte a la nueva restricción.
- En la ventana de Explorer, selecciona la restricción.
- En la ventana de Properties,
- Establece Attachment0 en SpinAttachment.
- Establece AngularVelocity en 0, 6, 0 para girar la parte a 6 radianes por segundo a lo largo del eje Y. Ten en cuenta que si estableces esta propiedad en 0, -6, 0, el bloque giraría en el sentido horario.
- Establece MaxTorque en 1000 para aplicar hasta 1000 Rowton-studs de fuerza angular constante por segundo para alcanzar la velocidad angular objetivo.
- Mantén RelativeTo en World para girar el bloque relativo a la posición y orientación del mundo.

Verifica que la cantidad de torque que estableciste haga girar el bloque a 6 radianes por segundo a lo largo del eje Y del mundo.
Selecciona el modo de simulación Run del menú desplegable de la mezzanine y haz clic en el botón Play para comenzar. Studio simula la experiencia en la posición actual de la cámara sin tu avatar en el espacio 3D.

Es posible que necesites ajustar tu torque dependiendo de la escala de tu bloque y de cualquier fuerza física de oposición en tu entorno. Por ejemplo, las propiedades de la restricción AngularVelocity en la experiencia de muestra funcionan para una parte de bloque con un tamaño predeterminado de 4, 1, 2 sobre una plataforma plana con un material plástico, y un entorno con la gravedad predeterminada clásica.
Sin embargo, si tu bloque es de un tamaño más grande y está en terreno de hierba, necesitarás aumentar la propiedad AngularVelocity.MaxTorque porque la fuerza angular necesita superar tanto la masa del bloque como la fricción del entorno. Por ejemplo, la parte de bloque grande que es cuadruplicada en tamaño por la parte de la muestra necesita al menos 300000 Rowton-studs de fuerza angular constante para lograr la velocidad angular establecida.
Usar restricciones HingeConstraint
Los objetos HingeConstraint son un tipo de restricción mecánica que permite a dos accesorios rotar alrededor de un eje, restringiendo los accesorios a la misma posición y sus ejes primarios en la misma dirección. Cuando estableces HingeConstraint.ActuatorType en Motor, esta restricción aplica torque en los dos accesorios con el objetivo de que los accesorios alcancen y mantengan una velocidad angular constante.
Además, cuando colocas accesorios en un ensamblaje con dos objetos, los objetos se bloquean juntos y intentan girar juntos según el eje primario fijo del accesorio. Si anclas uno de estos objetos, la fuerza angular continúa girando al otro objeto a una velocidad angular constante mientras el resto del ensamblaje permanece estacionario.
Por ejemplo, para comenzar a girar un objeto particular dentro de un ensamblaje, la restricción HingeConstraint necesita saber:
- La posición donde deseas que los accesorios se superpongan.
- El punto y la dirección positiva o negativa para aplicar una fuerza angular.
- La cantidad de radianes que deseas que el accesorio gire por segundo.
- La cantidad máxima de torque que el motor puede aplicar para que el accesorio alcance una velocidad angular constante.
Para demostrar este proceso, agregarás un ensamblaje de hélice con dos objetos a tu espacio de trabajo con accesorios en ambos objetos que una restricción HingeConstraint referencia para girar la hélice a 3 radianes por segundo (alrededor de media rotación completa por segundo) a lo largo del eje Y a una velocidad angular constante mientras la base de la hélice permanece estacionaria.

Obtener activo de hélice
La Tienda de Creadores es una pestaña de la Caja de Herramientas que puedes usar para encontrar todos los activos que han sido creados por Roblox y la comunidad de Roblox para su uso dentro de tus proyectos, incluyendo modelos, imágenes, mallas, audio, complementos, videos y activos de fuentes. Puedes usar la Tienda de Creadores para agregar un activo individual o una biblioteca de activos directamente a una experiencia abierta.
Este tutorial hace referencia a un modelo de hélice que puedes usar a medida que replicar cada paso de la técnica HingeConstraint para girar objetos. Para obtener este activo de hélice de tu inventario a tu experiencia:
Agrega la hélice a tu inventario.
- Navega a la página de detalles del activo en la Tienda de Creadores.
- En la esquina superior derecha, haz clic en el botón Obtener Modelo. El activo de hélice ahora está en tu inventario, y puedes reutilizarlo en cualquier proyecto en la plataforma.
En Studio, navega a la pestaña Inicio, luego haz clic en el botón Caja de Herramientas. Se abre la ventana de Caja de Herramientas.

En la ventana de Caja de Herramientas, haz clic en la pestaña Inventario. Se muestra el filtro Mis Modelos.

Haz clic en el mosaico Hélice. El modelo se muestra en tu visor.

Configurar accesorios
Puedes especificar tanto la posición donde deseas que los accesorios se superpongan como la dirección del movimiento rotacional para girar un objeto particular dentro de un ensamblaje agregando dos objetos Attachment al ensamblaje, y luego configurando su alineación y orientación en el espacio 3D.
La experiencia de Objetos Giratorios alinea dos accesorios cerca de la posición donde la hélice no anclada se superpone con la base anclada, y orienta su eje primario de rotación hacia arriba para que giren en sentido antihorario. El accesorio de base no puede girar en este ejemplo porque la base está anclada.
Para configurar accesorios para la restricción de bisagra:
Inserta un objeto Attachment en Cabeza y Base.
- En la ventana de Explorer, pasa el cursor sobre Cabeza y haz clic en el botón ⊕. Se muestra un menú contextual.
- En el menú, inserta un Attachment.
- Repite este proceso para Base.
- Renombra ambos accesorios a HeadAttachment y BaseAttachment, respectivamente.

Rota HeadAttachment y BaseAttachment para que el eje primario de cada accesorio apunte hacia arriba en el eje Y. Esto le indica a Studio que rote los accesorios en sentido antihorario.

Mueve BaseAttachment a la parte superior de Base, y HeadAttachment al borde inferior de Hélice. Esto le indica a Studio dónde conectar la bisagra misma, y superponer ambos accesorios en tiempo de ejecución.

Configurar restricción
Ahora que tus accesorios tienen posición para superponerse y una dirección de movimiento rotacional, puedes configurar las propiedades de una restricción HingeConstraint para especificar la cantidad de radianes que deseas que el accesorio gire por segundo, y la cantidad máxima de torque que el motor puede aplicar para que el accesorio alcance una velocidad angular constante.
Similar a la técnica anterior, la experiencia de Objetos Giratorios aplica hasta 1000 Rowton-studs de fuerza angular constante para girar el accesorio a 3 radianes por segundo a lo largo del eje Y a una velocidad angular constante. Sin embargo, dado que el accesorio de base está en un objeto anclado, solo el accesorio de la hélice puede girar.
Para configurar una restricción de bisagra:
Inserta un objeto HingeConstraint en Cabeza.
- En la ventana de Explorer, pasa el cursor sobre Cabeza, luego haz clic en el icono ⊕. Se muestra un menú contextual.
- En el menú contextual, inserta una HingeConstraint.
Asigna los accesorios de la hélice a la nueva restricción para que la hélice gire en relación a la base anclada.
- En la ventana de Explorer, selecciona la restricción.
- En la ventana de Properties,
- Establece Attachment0 en BaseAttachment.
- Establece Attachment1 en HeadAttachment. La bisagra se muestra en el visor.

En la ventana de Explorer, selecciona la restricción y luego en la ventana de Properties,
- Establece ActuatorType en Motor. Se muestran nuevos campos de propiedades.
- Establece MotorMaxTorque en 1000 para aplicar hasta 1000 Rowton-studs de fuerza angular constante para alcanzar la velocidad angular objetivo.
- Establece AngularVelocity en 3 para girar la cabeza de la hélice a 3 radianes por segundo.

Verifica que la cantidad de torque que estableciste haga girar la hélice a 3 radianes por segundo a lo largo del eje Y.
Selecciona el modo de simulación Run del menú desplegable de la mezzanine y haz clic en el botón Play para comenzar. Studio simula la experiencia en la posición actual de la cámara sin tu avatar en el espacio 3D.

Aplicar una fuerza angular inicial
Otra forma de cambiar la velocidad angular de un objeto es aplicando un impulso de fuerza angular. Después del impulso de fuerza angular, el objeto ya sea desacelera hasta quedar estacionario si hay una fuerza de oposición como la fricción, o permanece en movimiento con velocidad constante si no hay fuerzas de oposición.
Esta técnica es útil para girar objetos después de un evento significativo de juego o clima, como una fuerte ráfaga de viento, porque proporciona a los jugadores una respuesta instantánea. Para demostrar, la siguiente subsección te enseña cómo girar un ensamblaje con una fuerza angular inicial aleatoria que puedes adaptar con nuevos valores para cumplir con tus propios requisitos de juego.
Usar ApplyAngularImpulse
El método ApplyAngularImpulse aplica torque en todo un ensamblaje para obtener una velocidad angular inicial antes de desacelerar hasta detenerse. Para comenzar a girar el ensamblaje, el método necesita saber:
- El ensamblaje que se va a girar.
- El eje al que aplicar torque para alcanzar una velocidad angular inicial.
- La cantidad de torque que se aplicará a cada eje.
Puedes definir todos estos valores en un script. Por ejemplo, el script de muestra define el ensamblaje para girar como el padre del script, luego aplica un impulso aleatorio de fuerza angular entre 0 y 100 Rowton-studs en el eje Y.
Para girar un ensamblaje usando ApplyAngularImpulse:
Inserta una parte de esfera en el Workspace. La muestra usa una esfera con un MaterialVariant para que puedas visualizar claramente el movimiento de la esfera.

Inserta un script en la nueva parte.
- En la ventana de Explorer, pasa el cursor sobre la parte y haz clic en el botón ⊕. Se muestra un menú contextual.
- En el menú, inserta un Script.
Reemplaza el código predeterminado con el siguiente código:
local part = script.Parentlocal impulse = Vector3.new(0, math.random(0, 100), 0)part:ApplyAngularImpulse(impulse)