fbpx
Cult + Mag El Infinito Juegos

¿Cómo funciona la física en los personajes en Super Smash Bros. Ultimate?

8 enero, 2019

¿Cómo funciona la física en los personajes en Super Smash Bros. Ultimate?

DISCLAIMER: Primero lo primero. En Plan9 podemos ser weones, pobres, hediondos, flojos o traficantes, pero NUNCA tendremos los conocimientos suficientes como para poder explicar en detalle las físicas de un juego. Por lo que cabe señalar que este post, es básicamente un resúmen y copy paste-traducción de lo escrito en Wired ayer.

Una vez con eso sabido, vamos con el post:

Los videojuegos tienen una física simpática, no es necesario que sigan las leyes que tenemos en la realidad. No obstante, sí existen reglas en cada juego, de lo contrario, los movimientos de los personajes no tendrían sentido, entonces, ¿cuál es la física que controla el movimiento en los juegos?

La realidad comienza ahí: Encontrando la física interna de los juegos. Es menos compleja que la física que rige nuestro mundo, de hecho, para analizarla, no se necesita un acelerador de particulas, solo un motor gráfico.

Para este experimento, me centraré en Super Smash Bros. Ultimate para Nintendo Switch (un juego que analizamos acá). El fin del juego es pelear contra personajes de las distintas franquicias de la marca japonesa con algunos agregados de otras compañías. Eso quiere decir que Mario puede pelear con Snake.

Super Smash Bros. Ultimate ofrece un montón de diversión para analizar: Posee un modo de entrenamiento donde es posible probar los distintos movimientos de cada personaje.

La mejor parte es su cámara, se puede mantener alejada, haciendo de la recolección de información mucho más sencilla. También introducieron una cuadrícula en el fondo de los escenarios, la que funciona como escala de medición. Es como si los desarrolladores del juego lo hicieron específicamente para mí.

Análisis de un salto

Empezaré con un movimiento que parece insignificante, pero es todo lo contrario: saltar hacia arriba. Para este caso, usaré Captain Falcon, sin razón en particular.

La opción para capturar pantalla en el juego no funciona, por lo tanto, debí grabar la televisión con mi teléfono. Lo que parece funcionar bastante bien. Luego de eso,  puedo usar análisis de video (tracker video analysis) para obtener un lindo gráfico de la posición en función del tiempo del salto de Captain Falcon.

Esto es lo que conseguí (todos los gráficos de este artículo son de Rhett Allan el autor original del artículo).


(todos los gráficos de este artículo son de Rhett Allan el autor original del artículo).

¿Qué sacamos de este gráfico? Primero, una nota: Asumo que la unidad de distancia para la cuadrícula está en metro. ¿Por qué? Debido a que eso pondría la altura de Captain Falcon en alrededor 1.9m y eso suena razonable. Supongo que debería mencionar que hay tres partes importantes sobre saltos en video juegos:

  • La escala de tiempo (el juego está corriendo a tiempo real o ralentizado)
  • La escala de distancia
  • La aceleración vertical.

Si saltas en la tierra (en vida real), sabes que el tiempo, es tiempo real y también conoces la escala de distancia. Apenas despegas del piso, solo la fuerza de gravedad te tira hacia abajo. Esto significa que tienes una aceleración vertical de -9.8 m/s2. No importa la velocidad inicial, siempre tendrás la misma aceleración vertical asumiendo que la resistencia del aire es pequeña e insignificable.

Cuanado analizas el movimiento en un juego debes tomar una decisión. Puedo tomar dos de las características anteriormente mencionadas (tiempo, distancia y aceleración) y luego buscar la tercera. Para la mayoría de los juegos, asumo que la escala de tiempo es tiempo real y que toma lugar en la tierra, con una aceleración de -9.8m/s2. Luego resuelvo la ecuación para encontrar la escala de distancia, viendo así cuán grande o pequeñas son las cosas.

Para este juego, usaré la escala de distancia entregada por el mismo. ¿Por qué no hacerlo? Si también asumo que funciona en tiempo real, significa que puedo resolver la ecuación en función de la aceleración vertical. Pero aquí es donde nos encontramos con un problema. Si el personaje tiene una aceleración vertical constante, su gráfico de posición-tiempo sería una parábola, pero no lo es. Por supuesto que eso no me detuvo antes, y no lo hará ahora.

En el gráficó de arriba se puede ver que la información solo calza en una parte, la que no se ve parabólica. Ajustando la ecuación, obtengo una aceleración vertical de -5.69 m/s2. Puedo trabajar con eso.

Además, en el gráfico de posición, parece que Captain Falcon alcanza cierta velocidad constante al descender (pero no al ascender). Al agregar una función linear a esta parte de la información, obtengo una velocidad de caída de 9.47 m/s. Otra información mostraba que el salto alcanzaba una altura de 4.2 metros por sobre donde comenzaba.

Más?
Así es “Last Survivor”: El Battle Royale de Jojos Bizarre Adventure

Falta el doble salto. Es un movimiento típico de videojuegos, donde un personaje salta una segunda vez ya estando en el aire. Aquí está el gráfico de posición para algo como eso:

El movimiento ascendente es bastante complicado, por lo tanto, lo dejaré solo por el momento. Sin embargo, este gráfico nos entrega un poco de información importante sobre este salto. El personaje se mueve a una velocidad constante al descender. En este caso, obtuve una velocidad de 10.9 m/s, lo que es bastante cercano a los 9.47 m/s del salto anterior.

Un saltito más. ¿Qué tal un salto corriendo? Cuando un personaje salta horizontalmente, como si lo estuviera haciendo sobre algo. Aquí está el gráfico:

Ahora vamos por todas las partes importantes primero:

  • Es un gráfico para los movimientos tanto en vertical como horizontal al mismo tiempo.
  • Para el movimiento horizontal, Captain Falcon estaba corriendo a una velocidad de 14.3 ms/ antes del salto. Durante éste, su velocidad era de 6.95 m/s.
  • Sí, debería tener una velocidad horizontal constante durante el salto, al menos si el sujeto de estudio estuviera sometido a la física del mundo real.
  • No estoy seguro por qué su velocidad horizontal se redujo al comienzo del salto.
  • En dirección vertical, Captain Falcon se mueve hacia arriba y abajo en la medida que corre. Choro.
  • El movimiento vertical parece similar a cuando salta hacia arriba. Al descender, se mueve a una velocidad constante de 8.9 m/s.
  • Para este salto, su altura máxima es alrededor de la misma que cuando saltó hacia arriba.

Modeleando a Captain Falcon

Ahora viene la parte importante de la física: No entiendes algo de verdad hasta que puedes hacer un modelo de ello. Sí, modelos. La ciencia en general se basa en modelos. Así que, hagamos uno. Como soy fanático de los modelos númericos en Python, eso es lo que haré.

¿Pero dónde comienzo? Desde lo que sabes. Haz un modelo de un humano saltando en la tierra con gravedad real. Lo que no es muy difícil. Así luce: (con el código). Esto no es el SALTO DEL CAPITÁN FALCON. Apreta Play para verlo y el lapicito para mirar y editar el código.

(el código del ejemplo en Python está con sus comentarios respectivos, es terrible fácil de entender cómo funciona).

Ahora que tenemos algo funcionando, podemos cambiar las reglas. Estas son las variables que utilicé:

  • Velocidad inicial: incluyendo un pequeño aumento de velocidad al comienzo del salto.
  • Aceleración vertical: lo probé con valores de 50, 60, 70 y 100 m/s2.
  • Velocidad de descenso terminal.

Al final, cambié varias cosas con relación a las conclusiones tomadas del análisis del video. Aquí están las variables para un Captain Falcon saltando:

  • Comienza con una velocidad vertical constante (88m/s) hasta que alcanza los 2 metros.
  • Una velocidad vertical constante un poco más lenta (25 m/s) cuando alcanza la altura de 3 metros.
  • Luego de eso, la aceleración vertical de -60 m/s2 con una velocidad inicial de 15 m/s.
  • Para el resto de su descenso, mantiene una velocidad de -10 m/s.

Parece un modelo bastante loquillo, pero cuando lo hago funcionar, obtengo el siguiente gráfico (junto a la información del ánalisis del video).

Admiren esa belleza. Es lo más cercano a lo que nos podemos acercar. Aquí está el código para el gráfico. La ciencia de verdad no tiene fin, solo porque hice un modelo que funciona para este salto, todavía debo ver si las mismas reglas se aplican para otros.

Y eso es lo que amo de analizar la física de los juegos: Es como la ciencia de verdad, pero no es tan cara.

Nota de Plan9: Entendimos algo nosotros? PARA NADA! Pero lo importante es que tú, nerd que estudia una carrera de verdad (no como periodismo, o ingeniería comercial) hayas disfrutado este post. 😉


Also published on Medium.

Comenta o muere

김치볶음밥