Crear objetos móviles

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

Los objetos móviles son objetos que se mueven en uno o más ejes dentro del espacio 3D.Usando el poder integrado del motor de simulación de Roblox, puedes hacer que los objetos se muevan y 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 Moviendo objetos.rbxl como referencia, este tutorial explica cómo las fuerzas físicas impactan en el movimiento lineal en Studio y te muestra varias técnicas para mover objetos desde el punto A al punto B en tus experiencias con diferentes comportamientos de movimiento, incluyendo instrucciones sobre:

  • Usando una restricción de transportador LinearVelocity para mover una totalidad de montaje a una velocidad lineal constante.
  • Usando un PrismaticConstraint para limitar una asamblea a un solo eje y moverla a una velocidad lineal constante con respecto a un punto en el espacio 3D.
  • Usando el método ApplyImpulse para mover una asamblea con un impulso inicial de fuerza para que la asamblea disminuya lentamente con el tiempo.

Moción lineal y fuerzas físicas

Roblox Studio es un motor de simulación de mundo real que emula el comportamiento físico en tiempo real, por lo que para predecir cómo se pueden comportar los objetos que se mueven linealmente en experiencias, es importante tener una comprensión de alto nivel de cómo se mueven los objetos en la vida real con movimiento lineal. Movimiento lineal es el movimiento a lo largo de un eje. Por ejemplo, cuando un bloque tiene movimiento lineal, se mueve a lo largo de un eje establecido.

A gray block in front of a dark background. The movement axis is highlighted, and it faces toward the left of the screen to signify that the block is going to move along the world's Y axis.

La movilidad lineal no puede existir sin fuerzas externas y físicas que empujen o tiren de objetos para moverse.Según la primera ley de movimiento de Newton , los objetos estáticos permanecen estáticos y los objetos en movimiento se mantienen en movimiento con una velocidad constante a menos que sean actuados por una fuerza externa.Por ejemplo, un bloque estático permanece estático a menos que una fuerza física como el viento lo empuje a moverse.

Fuerza es la medida de la dirección y magnitud de un empuje o tiro físico que hace que los objetos cambien su velocidad lineal a lo largo de un eje.Un cambio en la velocidad se conoce como aceleración .Este concepto es particularmente importante para que los objetos se muevan en Studio; cuanta más fuerza apliques a los objetos, más rápidamente acelerarán.

Esto se debe a que la fuerza debe ser mayor que cualquier fuerza física que empuja contra el objeto, como la gravedad o la fricción.Por ejemplo, si colocas el bloque en una placa de metal, la fuerza física del viento debe superar la cantidad de fricción de la placa de metal para continuar acelerando el bloque.Si la fuerza del viento no es mucho mayor que la fricción de la placa de metal, el bloque acelera, solo más lentamente que el ejemplo anterior.

A gray block in front of a dark grey metal plate with a diagram that signifies the block will have a plate friction to slow the block's movement from the wind.

Velocidad lineal es la medida del movimiento de un objeto, o qué tan rápido cambia el objeto su posición a lo largo de un eje en un período de tiempo.Studio mide la velocidad lineal según la cantidad de studs que se mueve un objeto por segundo.Los studs son las unidades físicas principales de Roblox para medir longitud, y cada stud equivale a aproximadamente 28 cm en el mundo real.

A gray block in front of the default baseplate's 4x4 grid texture. A single stud cube rectangle is highlighted.

Entender la velocidad lineal es importante para diseñar el juego en tus experiencias porque te ayuda a determinar cuánta fuerza necesitas para lograr una velocidad determinada para tus objetos móviles.Por ejemplo, cuando quieres impulsar objetos hacia arriba, es importante considerar cómo debes ajustar tu fuerza para superar la gravedad dentro del entorno para que los objetos se muevan con precisión.

Las siguientes secciones se adentran más en estos conceptos a medida que aprendes cómo mover objetos a una velocidad constante o inicial lineal con la fuerza necesaria para superar cualquier fuerza física opositora dentro del entorno.A medida que revisas estos conceptos de física con las técnicas próximas, puedes predecir más precisamente cómo ajustar los valores de las propiedades para lograr cualquier comportamiento de movimiento lineal ideal en Studio.

Mantenga una velocidad lineal constante

Para que un objeto alcance y mantenga una velocidad lineal constante, necesita una fuerza para superar cualquier fuerza opositora que decelere la velocidad lineal del objeto o lo haga permanecer estático.Por ejemplo, si quieres que un objeto tenga una velocidad lineal de [0, 12, 0] en Studio, necesitas suficiente fuerza para que el objeto alcance y mantenga 12 tachuelas por segundo a lo largo del eje Y en su entorno.

La cantidad de fuerza necesaria no solo depende de las fuerzas físicas opositoras 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 se mueven en el mismo eje, el objeto con la mayor cantidad de masa requiere más fuerza para lograr la misma aceleración lineal.

La pequeña parte triangular tiene una pequeña cantidad de masa, por lo que necesita menos fuerza para lograr la misma aceleración.
La parte grande del triángulo tiene una gran cantidad de masa, por lo que necesita más fuerza para lograr la misma aceleración.

Las siguientes subsecciones utilizan ensambles de diferentes formas y tamaños para enseñarte cómo mover tanto un objeto completo como solo una parte del objeto a una velocidad lineal constante.A medida que experimentes con diferentes valores de propiedad, aprenderás cómo estimar la cantidad máxima de fuerza que necesitas para ensamblajes en tus propias experiencias.

Usar restricciones de velocidad lineal

LinearVelocity objetos son un tipo de restricción transportadora que aplican fuerza en toda una montura para mantener una velocidad lineal constante.Al no bloquear la posición de la ensamblación a un eje durante su movimiento, la ensamblación es libre de girar cuando se choca con otros objetos en el espacio 3D.Este tipo de movimiento conduce a sorprendentes escenarios de juego que son más difíciles de predecir para los jugadores.

A medida que las almohadillas de lirio chocan entre sí, cambian de orientación pero siguen fluyendo por el río a una velocidad lineal constante.

Para comenzar a mover la instalación, la restricción LinearVelocity necesita saber:

  • El punto y la dirección positiva o negativa para aplicar una fuerza.
  • La cantidad de tachuelas que quieres que se mueva la montura por segundo.
  • La cantidad máxima de fuerza que el motor puede aplicar para que la ensambladora alcance la velocidad lineal constante.

Para demostrar este proceso, configurarás una almohadilla de lirio con un accesorio que una restricción LinearVelocity referencia a mover la almohadilla de lirio 15 studs por segundo a lo largo del eje negativo X del mundo a una velocidad lineal constante.

A close up view of a lily pad. The lily pad's constraint visual aid is visible, and it points to the right, which is the world's negative X axis.

Añadir archivo

Puedes especificar el punto al que aplicar fuerza agregando un objeto Attachment a la ensambladora, luego configurando la posición del accesorio en el espacio 3D.La experiencia de muestra Movimiento de objetos coloca un archivo adjunto en el centro del bloque de lirio para que la restricción pueda mover la malla desde el archivo adjunto a lo largo de un eje particular.

Las anexiones incluyen ayudas visuales para ayudarle a visualizar sus ejes de movimiento.La flecha amarilla indica el eje principal del archivo adjunto, y la flecha naranja indica el eje secundario del archivo adjunto.Aunque ningún eje de movimiento influya en el movimiento de la almohadilla de lirio en los pasos de esta técnica, es importante comprender estas ayudas visuales para futuras referencias porque pueden ayudarlo a determinar el comportamiento ideal para diferentes tipos de restricciones, como el PrismaticConstraint en la próxima técnica.

A attachment's visual aid arrows. The yellow arrow that signifies the attachment's primary axis points up, and the orange arrow that signifies the attachment's secondary axis points to the right.

Para agregar un archivo adjunto:

  1. En la ventana Explorador , expanda la carpeta LinearVelocityExample , luego expanda su modelo hijo LilyPad_DIY .

  2. Inserta un archivo adjunto en la malla del bloque .

    1. Pase el mouse sobre la malla y haga clic en el botón ⊕. Se muestra un menú contextual.
    2. Desde el menú, insira un archivo adjunto . El archivo se muestra en el centro de la parte.
    3. Renombra el archivo adjunto a MoveAttachment .
    A close up view of a lily pad and its attachment visual aid. The primary axis points away from the camera, and the secondary axis points upward.

Configurar la restricción

Ahora que tu malla tiene un punto fijo para mover la almohadilla de lirio, puedes configurar las propiedades de una restricción LinearVelocity fija para especificar la dirección y la magnitud de la velocidad lineal constante, la cantidad de studs que quieres que la malla se mueva por segundo y la cantidad máxima de fuerza que el motor puede aplicar para que la malla alcance una velocidad lineal constante.

La experiencia de muestra Movimiento de objetos aplica hasta 5000 Rowtons de fuerza constante para mover la almohadilla de lirio 15 espárragos por segundo a lo largo del eje negativo X del mundo a una velocidad lineal constante.Los rowtons son las unidades físicas principales de Roblox para medir la fuerza.Para referirse a las unidades físicas de Roblox y cómo se convierten a unidades métricas, consulte Unidades de Roblox.

Para configurar una restricción LinearVelocity :

  1. (Opcional) Hacer la restricción visible en el espacio 3D para que puedas referenciar su dirección lineal.

    1. Navegue hasta la pestaña Modelo de la barra de herramientas, luego la sección Con restricciones .
    2. Si no está actualmente habilitado, haga clic en Detalles de restricción para mostrar ayudas visuales de restricción.
    A close up view of the Studio's Constraints section UI.
  2. Inserta una restricción LinearVelocity en la malla Pad .

    1. En la ventana Explorador , pasa el mouse sobre la malla, luego haz clic en el icono ⊕. Se muestra un menú contextual.
    2. Desde el menú contextual, insira Velocidad lineal .
  3. Asigna la atención del malla a la nueva restricción.

    1. En la ventana Explorador , seleccione la restricción.
    2. En la ventana Propiedades ,
      1. Establecer adjunto0 a mover adjunto .
      2. Establece MaxForce a 5000 para aplicar hasta 5000 Rowtons de fuerza constante para lograr la velocidad lineal objetivo.
      3. Mantenga RelativeTo a Mundo para mover la almohadilla de lirio con respecto a la posición y orientación del mundo.
      4. Establece Límite de velocidad a Línea para limitar la fuerza a lo largo de una línea desde el archivo adjunto.
      5. Establece Dirección de línea a -1, 0, 0 para mover la almohadilla de lirio a lo largo del eje negativo X del mundo.Tenga en cuenta que si establece esta propiedad a 1, 0, 0 la almohadilla de lirio se movería a lo largo del eje positivo X del mundo.
      6. Establece LineVelocity a 15 para mover la almohadilla de lirio 15 espárragos por segundo.
    A close up view of a lily pad and its constraint visual aid arrow that points to the right, or the world's negative X axis.
  4. Verifica la cantidad de fuerza que estableces mueve la malla 15 espárragos por segundo a lo largo del eje negativo X del mundo.

    1. En la barra de herramientas, navegue hasta la pestaña Prueba .
    2. Seleccione Ejecutar de los modos de prueba de juego. Studio simula la experiencia en la posición de la cámara actual sin su avatar en el espacio 3D.
    Rapid playtest options in Studio.

Usa las restricciones de PrismaticConstraint

PrismaticConstraint objetos son un tipo de restricción mecánica que crean una articulación rígida entre dos accesorios, permitiendo que sus ensamblajes padre se muevan por un eje relativo a los demás .Al bloquear la posición de ambas asambleas a un solo eje, cada asamblea solo es capaz de girar si giran juntas en la misma dirección.

Este tipo de movimiento conduce a escenarios de juego estables que son más fáciles de predecir para los jugadores.Por ejemplo, la experiencia de muestra Movimiento de objetos usa objetos PrismaticConstraint para mover plataformas de registro que los jugadores pueden usar para cruzar cuidadosamente un río gigante.

Cuando estableces PrismaticConstraint.ActuatorType a Motor , esta restricción aplica fuerza a los dos accesorios con el objetivo de que los accesorios alcancen y mantengan una velocidad lineal constante.Si anclas una de las asambleas padre de los archivos adjuntos, la fuerza continúa moviendo la asamblea no anclada a una velocidad lineal constante mientras la asamblea anclada se mantiene estática.

Para comenzar a mover la instalación, la restricción PrismaticConstraint necesita saber:

  • El punto y la dirección positiva o negativa para aplicar una fuerza.
  • La cantidad de tachuelas que quieres que se muevan los accesorios por segundo.
  • La cantidad máxima de fuerza que el motor puede aplicar a los accesorios y a sus ensamblajes padre para alcanzar una velocidad lineal constante.

Para demostrar este proceso, configurarás una asamblea de registros con dos objetos que tienen archivos hijos que se mueven con una velocidad lineal constante de 40 espárragos por segundo a lo largo del eje negativo X del mundo con una velocidad constante.

A close up view of a brown log on top of a river. The log's constraint visual aid is visible and points to the right, or the world's negative X axis.

Configurar los archivos adjuntos

Puedes especificar la dirección para mover un objeto particular dentro de una asamblea agregando dos objetos Attachment a la asamblea, luego configurando su alineación y orientación en el espacio 3D.La experiencia de muestra Movimiento de objetos alinea dos archivos a lo largo del eje X del mundo cerca de la posición de donde el registro sin anclar se superpone con la parte anclada, y orienta el eje principal de cada archivo para que se enfrente al eje negativo del mundo.

Cuando configures tu restricción de PrismaticConstraint en la siguiente sección, moverá el registro en relación a la parte de anclaje.En otras palabras, el registro se alejará de la parte estática que no se puede mover porque está anclada en el espacio 3D.

Para configurar los archivos adjuntos para la restricción prismática:

  1. En la ventana Explorador , expanda la carpeta PrismaticConstraintExample , luego expanda su modelo hijo Log_DIY .

  2. Inserta un archivo adjunto en la malla Registro .

    1. Pase el mouse sobre la malla y haga clic en el botón ⊕. Se muestra un menú contextual.
    2. Desde el menú, insira un archivo adjunto . El archivo se muestra en el centro de la parte.
    3. Renombra el archivo adjunto a LogAttachment .
    A close up view of a log and its attachment visual aid. The primary axis points toward the camera, and the secondary axis points upward.
  3. Usando el mismo proceso, insira un archivo adjunto en la parte Ancla , luego renombre el archivo adjunto AnclaAdjunta .

    A close up view of a log and two attachment visual aids. The primary axis of the new attachment visual aid points to the right, and the secondary axis points upward.
  4. Utilizando la herramienta Selector de vista como referencia para las coordenadas del mundo, gira LogAttachment y AnchorAttachment hasta que el eje principal de cada archivo apunte al eje negativo del X del mundo

    A close up view of a log and its attachment visual aid. Both attachments have a primary axis that points to the right, and a secondary axis that points upward.
  5. Reposicionar Accesorio de anclaje para que ambos accesorios estén alineados en el eje X del mundo.

    A close up view of a log and its attachment visual aids that are now positioned horizontally. Both attachments have a primary axis that points to the right, and a secondary axis that points upward.

Configurar la restricción

Ahora que tus archivos están alineados en el mismo eje y se enfrentan a la misma dirección que quieres que se mueva el registro, puedes configurar las propiedades de una restricción PrismaticConstraint para especificar si se debe aplicar la velocidad lineal constante del objetivo en la dirección positiva o negativa del eje principal de cada archivo, la cantidad de tachuelas que quieres que los archivos se muevan por segundo y la cantidad máxima de fuerza que el motor puede aplicar para que el registro alcance una velocidad lineal constante.

Si bien puedes elegir diferentes valores para tus propios casos de uso, la experiencia de muestra Mover objetos aplica hasta 50000 Rowtons de fuerza constante para mover los accesorios 40 radianes por segundo a lo largo del eje negativo X del mundo a una velocidad lineal constante.Sin embargo, porque la atención del ancla está en un objeto anclado, solo la atención del registro puede moverse.

Para configurar una restricción prismática:

  1. Inserta un objeto PrismaticConstraint en la malla Registro .

    1. En la ventana Explorador , pasa el mouse sobre la malla, luego haz clic en el icono ⊕. Se muestra un menú contextual.
    2. Desde el menú contextual, insira una restricción prismática .
  2. Asigna los archivos adjuntos del registro a la nueva restricción para que el registro se mueva en relación con la parte del bloque anclado.

    1. En la ventana Explorador , seleccione la restricción.
    2. En la ventana Propiedades ,
      1. Establecer adjunto0 a AnchorAttachment .
      2. Establece Archivo1 a Archivo de registro . La restricción se muestra en la ventana de visualización.
    A close up view of a log and its constraint visual aid. It doesn't have a arrow visual aid because it doesn't yet have a set velocity.
  3. En la ventana Explorador , seleccione la restricción, luego en la ventana de Propiedades,

    1. Establezca Tipo de actuador a Motor . Se muestran nuevos campos de propiedad.
    2. Establece MotorMaxForce a 50000 para aplicar hasta 50000 N de fuerza constante para lograr la velocidad lineal objetivo.
    3. Establece Velocidad a 40 para mover el registro 40 espárragos por segundo.
    A close up view of a log and its constraint visual aid arrow that points to the right, or the world's negative X axis.
  4. Verifica la cantidad de fuerza que estableces mueve el registro 40 espárragos por segundo a lo largo del eje negativo X del mundo.

    1. En la barra de herramientas, navegue hasta la pestaña Prueba .
    2. Seleccione Ejecutar de los modos de prueba de juego. Studio simula la experiencia en la posición de la cámara actual sin su avatar en el espacio 3D.
    Rapid playtest options in Studio.

Aplicar una fuerza lineal inicial

Otra forma de cambiar la velocidad lineal de un objeto es aplicando un impulso de fuerza.Después del impulso de fuerza, el objeto decelera hasta que se vuelve estático si hay una fuerza opositora como la fricción, o permanece en movimiento con una velocidad lineal constante si no hay ninguna fuerza opositora.

Esta técnica es útil para mover objetos después de un evento de juego significativo, como una explosión o una colisión impactante, porque proporciona comentarios instantáneos a los jugadores.Para demostrar, la siguiente subsección te enseña cómo lanzar el personaje de un jugador hacia el cielo cuando se choca con una plataforma de salto con un impulso inicial que puedes adaptar con nuevos valores para cumplir con tus propios requisitos de juego.

Uso de ApplyImpulse

El método ApplyImpulse aplica fuerza a toda una asamblea para obtener una velocidad lineal inicial antes de ralentizarse a un stop cuando hay fuerzas opositoras.Para comenzar a mover la instalación, el método debe saber:

  • La asamblea para mover.
  • El eje para aplicar fuerza para alcanzar una velocidad lineal inicial.
  • La cantidad de fuerza para aplicar a cada eje.

Puedes definir todos estos valores en un script.Por ejemplo, el script de muestra define la instalación para moverse como el objeto Humanoid del personaje del jugador, luego aplica un impulso de fuerza que es de 2500 segundos de Rowton para lanzar al jugador hacia arriba en el eje positivo del mundo.Tenga en cuenta que los personajes de los jugadores tienen diferentes cantidades de masa, por lo que es posible que deba aumentar y equilibrar esta fuerza para lanzar a todos los jugadores sin lanzar personajes de jugador con cantidades más pequeñas de masa demasiado altas.

Para mover una instalación usando ApplyImpulse :

  1. En la ventana Explorador , expanda la carpeta ApplyImpulseExample , luego expanda su modelo hijo JumpPad_DIY .

  2. Inserta un script en la parte JumpPad .

    1. Pase el cursor sobre la parte y haga clic en el botón ⊕. Se muestra un menú contextual.
    2. Desde el menú, insira un script . El archivo se muestra en el centro de la parte.
    3. Renombra el script a JumpScript .
  3. Reemplazar el código predeterminado con el siguiente código:


    local volume = script.Parent
    local function onTouched(other)
    local impulse = Vector3.new(0, 2500, 0)
    local character = other.Parent
    local humanoid = character:FindFirstChildWhichIsA("Humanoid")
    if humanoid and other.Name == "LeftFoot" then
    other:ApplyImpulse(impulse)
    end
    end
    volume.Touched:Connect(onTouched)