Con restricciones de movimiento

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

El motor de física incluye lo siguiente Constraints que aplica fuerza o torque para mover una o más ensamblajes.Además, varias limitaciones mecánicas están disponibles que se comportan como conexiones mecánicas conceptuales, incluidas bisagras, resorts, cuerdas y más.

Velocidad lineal

Velocidad lineal aplica fuerza en una pieza para mantener una velocidad constante a lo largo de un vector 3D, línea o plano de 2D
Velocidad ángular

AngularVelocity aplica torque en una montura para mantener una velocidad angular constante
Alinear posición

Alinear posición aplica fuerza para mover dos accesorios juntos o para mover un accesorio a una posición de destino
Alinear orientación

Alineación de orientación aplica torque para alinear dos accesorios, o alinear un accesorio con una orientación de objetivo
Fuerza vectorial

VectorForce aplica una fuerza lineal constante en una сборка
Torsión

Par aplica par constante en una pieza desde su centro de masa
Fuerza de línea

Fuerza de línea aplica fuerza a lo largo de la línea teórica que conecta sus dos accesorios

Visualización de restricciones

Para visualizar con precisión las restricciones en Studio, puedes usar las siguientes opciones de la pestaña Modelo de la barra de herramientas:

Constraints tools indicated in Model tab

Mostrar soldaduras — Muestra WeldConstraints, por separado de la visualización de otras restricciones.

Detalles de restricción — Muestra detalles visuales completos de las restricciones no soldadas.

Escala — Escala relativa de visualizaciones.

Crear restricciones

Las restricciones de mover generalmente se conectan una o dos Attachments o Bones.Cuando se conecta a Bones, la restricción usará su posición y orientación animadas.

Para crear una restricción mover, puedes usar la herramienta Crear o la ventana Explorador.

  1. En la pestaña Modelo , acceda al menú del botón Crear y seleccione el tipo de restricción deseado, por ejemplo Velocidad angular .

    Constraint picker indicated in Studio toolbar
  2. En la ventana de visualización 3D, pasa el mouse sobre cualquier Part o MeshPart y haz clic para agregar un nuevo Attachment a la pieza en el punto visualizado.Alternativamente, pasa el mouse sobre y haz clic en un existente Attachment o Bone para usarlo para la restricción.

  3. Algunas restricciones de movimiento utilizan o admiten un archivo adjunto secundario en su funcionalidad, por lo que la herramienta podría solicitarle que repita el paso anterior en otro Part, MeshPart o Attachment, o Bone.

    AngularVelocity using one attachment
    Velocidad angular usando un archivo adjunto
    AlignPosition using two attachments
    Alinear posición usando dos archivos adjuntos

Simulación física

Para simular la física mientras se mueve o gira las piezas, puedes cambiar al modo físico en la barra de herramientas del Studio, obligando efectivamente a las piezas a obedecer las limitaciones físicas.Por ejemplo, si arrastras una parte alrededor de la escena y se choca con otra parte, físicamente expulsará esa parte del camino.

Conversión de mover legado

Si tu experiencia depende de restricciones legadas BodyMover basadas en herencia, revisa las siguientes notas al convertir a restricciones modernas de mover.

AlignPosition cumple con la mayoría de los casos de uso cubiertos por el mover obsoleto BodyPosition.Para sincronizarse con la forma en que el transportador legado trató cada componente de forma independiente y permitió una fuerza diferente a lo largo de cada dimensión, la propiedad ForceLimitMode de AlignPosition permite que la restricción opere en modo Magnitude o modo PerAxis:

  • En el modo Magnitude , el comportamiento existente se preserva y MaxForce se interpreta como una magnitud.

  • En el modo PerAxis , la fuerza a lo largo de cada eje se puede especificar de forma independiente.Debido a que la fuerza máxima se especifica como un vector, también se puede especificar el marco de referencia de la fuerza a través de la propiedad ForceRelativeTo con World , Attachment0 y Attachment1 opciones.Además, la formulación para el controlador interno se modifica para coincidir con la de BodyPosition .

AlignOrientation cumple con la mayoría de los casos de uso cubiertos por el mover obsoleto BodyGyro.Los modos AlignType de AlignOrientation proporcionan suficiente libertad para la mayoría de las aplicaciones y la combinación de múltiples restricciones puede replicar el límite de torque vectorial.Además, el modo PrimaryAxisLookAt fuerza el eje principal de la primera atadura de la restricción ( Attachment0 ) siempre apuntar hacia la segunda atadura ( Attachment1 ), lo que facilita mucho la adición de cosas como cámaras de seguridad de seguimiento de movimiento o misiles guiados.

LinearVelocity cumple con la mayoría de los casos de uso cubiertos por el mover obsoleto BodyVelocity.Aunque el mover legado permite un vector MaxForce , el tipo de aplicación típico de ese vector era reducir a cero un componente particular, permitiendo que la restricción se desactive a lo largo de esa dimensión.LinearVelocity logra un efecto similar al operar en modos distintos VelocityConstraintMode que correspondían a una ( Line ), dos ( Plane ) y tres ( Vector ) dimensiones.

Además, la propiedad ForceLimitMode con la opción de PerAxis acomoda cualquier aplicación de la fuerza vectorial con todos los componentes no cero, como un aumento de la fuerza a lo largo de un eje para contrarrestar la gravedad.

Aunque AngularVelocity tiene algunas discrepancias con el mover obsoleto BodyAngularVelocity, los casos específicos relacionados con esas discrepancias no han sido resaltados por la comunidad, ni internamente.

Como mejora separada, AngularVelocity funciona con Attachments y la propiedad RelativeTo te permite especificar el CFrame en el que se especifica la fuerza, por ejemplo World o Attachment1 .

VectorForce cumple con todos los casos de uso ofrecidos por los motores obsoletos BodyForce y BodyThrust.La restricción moderna funciona con Attachments y su propiedad RelativeTo te permite aplicar fuerza a un desplazamiento relativo desde el centro, similar a cómo BodyThrust.Location trabajaba.

Una combinación de LineForce y AlignOrientation satisface la mayoría de los casos de uso cubiertos por el mover obsoleto RocketPropulsion.En el ejemplo de un misil guiado, LineForce se puede utilizar para controlar el comportamiento de "seguir objetivo" de RocketPropulsion mientras AlignOrientation y su propiedad LookAtPosition se pueden utilizar para controlar el comportamiento de "objetivo de cara".