Los objetos que se mueven en uno o más ejes dentro del espacio 3D son objetos que se mueven y se interactúan con su entorno de una manera que imita el comportamiento físico real del mundo que es familiar y intuitivo para los jugadores, como la gravedad, la aerodinámica y la fricción.
Usando el archivo Mover Objetos.rbxl como referencia, este tutorial explica cómo las fuerzas físicas afectan la movilidad lineal en Studio, y muestra varias técnicas para mover objetos desde el punto A al punto B en sus experiencias con diferentes comportamientos de movimiento, incluida la guía sobre:
- Usando un límite de movimiento de LinearVelocity para mover una instalación entera a una velocidad lineal constante.
- Usando un PrismaticConstraint para limitar una instalación a un solo eje y moverla a una velocidad constante en relación con un punto en el espacio 3D.
- Usa el método ApplyImpulse para mover una instalación con un impulso inicial de fuerza para que la instalación se desacelere lentamente con el tiempo.
Movimiento 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 comportan los objetos de manera lineal en las experiencias, es importante tener una comprensión de alto nivel de cómo se mueven los objetos en el mundo real con movimiento lineal. La movilidad lineal es la movilidad a lo largo de un eje. Por ejemplo, cuando un bloque tiene movilidad lineal, se mueve a lo largo de un eje específico.
La movilidad lineal no puede existir sin fuerzas físicas externas que empujan o cierran objetos para herramienta de movimiento. Según la primer ley de la movilidad de Newton, los objetos estáticos se mantienen 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 se mantiene estático a menos que se actúe por una fuerza como el viento para herramienta de movimiento.
La fuerza es la medida de la dirección y la magnitud de un empuje o agarre 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 los objetos para mover en Studio; la mayoría de la fuerza que aplica a los objetos, la acelera más rápido.
Esto es porque la fuerza necesita ser mayor que cualquier fuerza física que empuja contra el objeto, como la gravedad o la fricción. Por ejemplo, si colocara 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 bloques. Si la fuerza del viento no es mucho mayor que la fricción de la placa de metal, el bloque se acelera, solo más lentamente que el ejempl
La velocidad lineal es la medida del movimiento de un objeto, o lo rápido que el objeto cambia su posición a lo largo de un período de tiempo. Studio mide la velocidad lineal según el número de studs que se mueve por segundo. Los studs son las unidades físicas principales de Roblox para medir la longitud, y cada stud equivale a alrededor de 28cm en el mundo real.
Entender la velocidad lineal es importante para diseñar el juego en tus experiencias, ya que te ayuda a determinar la fuerza que necesitas para alcanzar una velocidad específica para tus objetos en movimiento. Por instancia, cuando quieres impulsar objetos hacia arriba, es importante considerar cómo deberás ajustar tu fuerza para superar la gravedad dentro del entorno para que los objetos se muevan con precisión.
Las siguientes secciones se adentrarán más en estos conceptos a medida que aprendes cómo mover objetos en una velocidad lineal constante o inicial con la fuerza necesaria para superar cualquier fuerza física opositoria dentro del entorno, ambiente. Cuando revisas estos conceptos de física con las próximas técnicas, puedes predecir más precisamente cómo ajustar los valores de propiedad para lograr cualquier comportamiento de movimiento ideal en Studio.
Mantener una velocidad constante
Para que un objeto alcance y mantenga una velocidad orbital constante, necesita una fuerza para superar cualquier fuerza física opuesta que decelere la velocidad orbital del objeto o cause que el objeto se mantenga estacionario. Por ejemplo, si desea que un objeto tenga una velocidad orbital de [0, 12, 0] en Studio, necesita una fuerza suficiente para que el objeto alcance y mantenga
La cantidad de fuerza necesaria no solo depende de las fuerzas físicas opuestas dentro del propio ambiente, como la gravedad y la fricción, sino también del propio objeto. Por ejemplo, si tiene dos objetos del mismo tamaño que se están moviendo en el mismo eje, el objeto con la mayor cantidad de masa requiere más fuerza para lograr la misma aceleración lineal.
Las siguientes secciones utilizan montones de diferentes formas y tamaños para enseñarte cómo mover un objeto entero o solo una parte del objeto a una velocidad constante. A medida que experimentas con diferentes valores de propiedad, aprenderás a estimar la cantidad máxima de fuerza que necesitas para las monturas en tus propias experiencias.
Usando limitaciones de velocidad lineal
LinearVelocity objetos son un tipo de mover约束 que aplica fuerza en toda una montaje para mantener una velocidad lineal constante. Al no bloquear la posición de la montaje para un eje durante su movimiento, la montaje es libre de girar como se colisiona con otros objetos en el espacio 3D. Este tipo de movimiento conduce a escenarios de juego sorpresivos que son más difíciles de predecir para los jugadores.
Para comenzar a mover la instalación, el límite de LinearVelocity necesita saber:
- El punto y la dirección positiva o negativa para aplicar una fuerza.
- La cantidad de tornillos que quieres que se muevan por segundo.
- La cantidad máxima de fuerza que el motor puede aplicar para que el montaje alcance la velocidad constante lineal.
Para demostrar este proceso, configurará una almohadilla de lirio con un atributo que una limitación de LinearVelocity referencia a mover la almohadilla de lirio 15 studs por segundo a lo largo del eje negativo de X en un mundoconstante de velocidad lineal.
Añadir módulo
Puede especificar el punto para aplicar la fuerza agregando un objeto Attachment a la máquina, luego configurando la posición del conexiónde sujeción en el espacio 3D. La experiencia de la muestra Mover objetos coloca un objeto en el centro de la almohadilla de lirio para que la limitación pueda mover el malla desde la almohadilla a lo largo de un eje específico.
Los accesorios incluyen ayudas visuales para ayudarlo a visualizar sus ejes de movimiento. La flecha amarilla muestra el eje principal del conexión, y la flecha naranja muestra el eje secundario del conexión. Mientras que ambos ejes de movimiento no afectan el movimiento del lámina de lirio en los pasos de esta técnica, es importante entender estas ayudas visuales para futuras referencias, ya que
Para agregar un archivo conexión:
En la ventana Explorer , expanda el directorio LinearVelocityExample y luego expanda su hijo LilyPad_DIY aplicación de modelado.
Inserta un accesorio en el Pad malla.
- Pase el mouse por encima de la malla y haga clic en el botón ⊕. Se muestra un menú contextual.
- Del menú, inserta un Adjunto . El adjunto se muestra en el centro de la parte.
- Renombre el accesorio a Mover accesorio .
Configurar Con restricción
Ahora que su malla tiene un punto fijo para mover la espaciadode lily, puede configurar las propiedades de un límite de LinearVelocity para especificar la dirección y la magnitud para la velocidad constante, la cantidad de studs que desea 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 constante.
La experiencia de objeto móvil Mover objetos aplica hasta 5000 Robots de fuerza constante para mover la almohadilla de lily 15 espárragos por segundo en el eje negativo de Roblox a una velocidad de velocidad constante. Los Robots 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 en unidades métricas, consulte
Para configurar un restricciónde LinearVelocity:
(Opcional) Haz que el límite sea visible en el espacio 3D para que puedas referenciar su dirección lineal.
- En la barra de menú, navega a la pestaña Modelo y luego a la sección Con限り.
- Si no está actualmente habilitado, haga clic en Detalles de Conjunto para mostrar ayudas visuales de conjunto.
Inserta un LinearVelocity约束 en el Pad malla.
- En la ventana Explorador , pasa el mouse sobre la malla, luego haz clic en el ícono⊕. Se muestra un menú contextual.
- Del menú contextual, insértela Velocidad Lineal .
Asigna el accesorio del malla a la nueva restricción.
- En la ventana Explorador , seleccione la restricción.
- En la ventana Propiedades ,
- Establece Attachment0 a Mover archivo adjunto .
- Establece MaxForce a 5000 para aplicar hasta 5000 Rowtons de fuerza constante para lograr la velocidad lineal objetivo.
- Mantenga RelativeTo para World para mover el lienzo de la almohadilla de lirio en relación con la posición y orientación del mundo.
- Establece VelocityConstraint a Línea para limitar la fuerza a lo largo de una línea desde la conexión.
- Establece LineDirection a -1, 0, 0 para mover el parche de lily alrededor del eje negativo del mundo. Nota que si estableces esta propiedad a 1, 0, 0 el parche de lily se movería alrededor del eje positivo del mundo.
- Establece Velocidad de línea a 15 para mover el parche de lirio 15 studs por segundo.
Verifique la cantidad de fuerza que ha establecido que mueve el malla 15 studs por segundo a lo largo del eje negativo de X del mundo.
En la barra de menú, navegue a la pestaña Prueba .
En la sección Simulación, haz clic en el Selector de Modos. Se muestra un menú desplegable.
Seleccione Correr . Studio simula la experiencia en la posición de cámara actual sin tu avatar en el espacio 3D.
Usando Confinos Prismáticos
Los objetos Class.PrismaticConstraint son un tipo de conejos mecánicos que crean un conjunto rígido entre dos ataduras, permitiendo que sus conjuntos de padres se muevan alrededor de un eje relativo . Al bloquear la posición de ambos conjuntos a un solo eje, cada conjunto solo puede girar si giran juntos 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 Objetos en movimiento estable usa objetos PrismaticConstraint para mover plataformas de registro que los jugadores pueden usar para cruzar con cuidado un río gigante.
Cuando estableces PrismaticConstraint.ActuatorType a Motor , esta restricción aplica fuerza en los dos objetos con el objetivo de que los objetos alcancen y mantengan una velocidad lineal constante. Si anclas uno de los objetos' padres como montajes de referencia, la fuerza continúa moviendo el montaje sin anclar mientras que el montaje anclado se mantiene estacionario.
Para comenzar a mover la instalación, el límite de PrismaticConstraint necesita saber:
- El punto y la dirección positiva o negativa para aplicar una fuerza.
- La cantidad de espárragos que quieres que se muevan por segundo.
- La cantidad máxima de fuerza que el motor puede aplicar para los accesorios y sus montajes asociados para alcanzar una velocidad lineal constante.
Para demostrar este proceso, configurará un montaje de registro con dos objetos que tienen atributos de hijo que se refieren a un PrismaticConstraint que hace referencia a mover los registros 40 studs por segundo en el eje negativo del mundo en una velocidad lineal constante.
Configurar Accesorios
Puede especificar la dirección para mover un objeto particular dentro de una máquina de montaje agregando dos objetos Attachment a la máquina de montaje, luego configurando su alineamiento y orientación en el espacio 3D. La experiencia de Mover objetos muestra dos objetos de anclaje a lo largo del eje X del mundo cerca de la posición de donde el conexiónno se superpone con
Cuando configure su límite de PrismaticConstraint en la siguiente sección, moverá el registro en relación a la parte de anclaje. En otras palabras, el registro se moverá lejos de la parte estacionaria que no puede moverse porque está anclada en el espacio 3D.
Para configurar los elementos para la restricciónprismática:
En la ventana Explorer , expanda el directorio PrismaticConstraintExample y luego expanda su hijo Log_DIY aplicación de modelado.
Inserta un archivo adjunto en el Log malla.
- Pase el mouse por encima de la malla y haga clic en el botón ⊕. Se muestra un menú contextual.
- Del menú, inserta un Adjunto . El adjunto se muestra en el centro de la parte.
- Renombre el accesorio a LogAppearance .
Usando el mismo proceso, inserta un archivo adjunto en la parte Anclar , luego renombra el archivo AnclarArchivo .
Usando la herramienta Selector de vista como referencia para los coordenados del mundo, gire LogAttachment y AnchorRotation hasta que cada conexióntenga su eje principal frente al eje negativo X del mundo
Reposicionar AnchorAttachment para que ambos accesorios estén alineados en el eje X del mundo.
Configurar Con restricción
Ahora que sus accesorios están alineados en el mismo eje y cara la misma dirección que desea que la región se herramienta de movimiento, puede configurar las propiedades de un límite de PrismaticConstraint para especificar si aplicar la velocidad de velocidad constante en la dirección positiva o negativa de cada conexiónde la región, la cantidad de studs que desea que los atributos se muevan por segundo y la cant
Mientras puede elegir diferentes valores para sus propios casos de uso, la experiencia de muelles de objeto Mover objetos aplica hasta 50000 Rowtons de fuerza constante para mover los anexos 40 radianes por segundo a lo largo del eje negativo del mundo en una velocidad de movimiento constante. Sin embargo, debido a que el ancla del anexo está en un objeto anclado, solo el anexo del log puede herramienta de movimiento.
Para configurar una limitación prismática:
Inserta un objeto Class.PrismaticConstraint en el Log malla.
- En la ventana Explorador , pasa el mouse sobre la malla, luego haz clic en el ícono⊕. Se muestra un menú contextual.
- Del menú contextual, inserta un PrismaticConstraint .
Asigne los accesorios del registro a la nueva restricción para que el registro se mueva en relación con la parte del bloque anclado.
- En la ventana Explorador , seleccione la restricción.
- En la ventana Propiedades ,
- Establece Attachment0 a AnchorAttachment .
- Establece Attachment1 a LogAppearance . La restricción se muestra en la ventana de vista.
En la ventana Explorador , seleccione la restricción, luego en la ventana Propiedades,
- Establece ActuatorType a Motor . Se muestran nuevos campos de propiedad.
- Establece MotorMaxForce a 50000 para aplicar hasta 50000 Rowtons de fuerza constante para lograr la velocidad lineal objetivo.
- Establece Velocidad a 40 para mover el registro 40 studs por segundo.
Verifique la cantidad de fuerza que ha establecido que mueve el registro 40 studs por segundo a lo largo del eje negativo X del mundo.
En la barra de menú, navegue a la pestaña Prueba .
En la sección Simulación, haz clic en el Selector de Modos. Se muestra un menú desplegable.
Seleccione Correr . Studio simula la experiencia en la posición de cámara actual sin tu avatar en el espacio 3D.
Aplicando una fuerza lineal inicial
Otra manera de cambiar la velocidad lineal de un objeto es aplicando un impulso de fuerza. Después del impulso de fuerza, el objeto decela hasta que se vuelve estacionario si hay una fuerza opuesta, como la fricción, o permanece en movimiento con una velocidad lineal constante si no hay fuerzas opuestas.
Esta técnica es útil para mover objetos después de un evento de juego significativo, como una explosión o una colisión exitosa, porque proporciona instantáneamente opinióna los jugadores. Para demostrar, la siguiente sección te enseña cómo lanzar el personaje de un jugador hacia el cielo cuando colisiona con un par de salto con un impulso inicial que puedes adaptar con nuevos valores para cumplir con tus propias exigencias de juego.
Usando ApplyImpulse
El método ApplyImpulse aplica fuerza en toda una montaje para obtener una velocidad inicial lineal antes de ralentizar a una parada cuando hay fuerzas opuestas. Para comenzar a mover la montaje, el método necesita saber:
- La instalación para herramienta de movimiento.
- El eje para aplicar la fuerza para alcanzar una velocidad inicial lineal.
- La cantidad de fuerza aplicable a cada eje.
Puedes definir todos estos valores en un script. Por ejemplo, el script de ejemplo define la arquitectura para mover como el objeto de clase del jugador, luego aplica un impulso de fuerza que es 2500 Rowton-segundos para lanzar al jugador hacia arriba en el eje positivo del mundo. Nota que los personajes de los jugadores tienen diferentes cantidades de masa, así que puede que necesites aumentar y equ
Para mover una instalación usando ApplyImpulse :
- En la ventana Explorer , expanda el directorio AplicarEjemploImpulso y luego expanda su hijo JumpPad_DIY aplicación de modelado.
- Inserta un script en la parte JumpPad .
- Pase el cursor sobre la parte y haga clic en el botón ⊕. Se muestra un menú contextual.
- Del menú, inserta un Script . El anexo se muestra en el centro de la parte.
- Renombre el script a JumpScript .
- Reemplace 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)