Un repaso detallado sobre cómo cobró vida el halcón del juego.
Falcon Age es un juego sobre Ara: cómo caza, lucha y reclama su tierra a los robots colonizadores. Estará disponible mañana en PlayStation Store para PS4 sin RV, o, si tienes PS VR, podrás cuidar de un halcón en realidad virtual.
Hemos estado mucho tiempo intentando que el halcón pareciese y se sintiese como un pájaro de presa de verdad. Sumerjámonos en el diseño del halcón, su animación, configuración con rigging y tecnología del plumaje.
Diseño del halcón
El diseño de nuestro halcón combina varios tipos de aves rapaces. Es tan grande como un águila real, pelea como un halcón, tiene similitudes con los halcones y águilas, algunos penachos como los búhos y tendencias de ave rapaz.
Es la única de su especie que queda en nuestro mundo y queríamos hacerla única visualmente para la historia, y que además destacase visualmente durante el juego en ambientes como el desierto o el cielo.
Una de las primeras inspiraciones para Falcon Age vino de vídeos de águilas reales cazando grandes cabras de montaña. Eso nos llevó a investigar sobre aves rapaces y sobre la idea de tener un halcón como mascota, y a diseñar las mecánicas y el estilo de juego en torno a ese concepto.
Hicimos al principio un esbozo del prototipo para probar estas ideas. La primera vez que silbamos con éxito al pájaro en RV y vimos cómo cambiaba su escala cuando se nos acercaba desde la distancia hasta llegar a nuestra mano, supimos que estábamos haciendo algo que podía servir como la base de un juego único.
Animación y rigging
Rastreo del movimiento de las garras del halcón
Existen muchas opciones de animación, pero ninguna de ellas resolvía fácilmente nuestras especificaciones para el rastreo del movimiento de las garras del halcón. Las configuraciones de la cinemática inversa, raíz de movimiento y otros complementos complejos podrían haber funcionado si hubiésemos tenido un equipo más grande y más tiempo para dedicarnos a ello. Queríamos un resultado más predecible, así que nos decantamos por una solución basada en múltiples posturas hechas con 3dsmax.
Sin embargo, el mayor motivo por el que no utilizamos IK, es que esta era la mejor manera de llevarlo a cabo en un par de días.
Estábamos elaborando el prototipo tan rápido al principio del proyecto que no teníamos tiempo para mirar si había otras soluciones disponibles. Este es el modo menos feo y más seguro que encontramos, y hemos seguido con él desde entonces. Si no está roto, no lo arregles.
Aquí vemos cómo nos hemos imaginado que las garras del pájaro se fusionarían en la vida real. La pelota es el puño que está unido a los mandos de movimiento de RV. Hay límites para este método. Las garras tienen que ser capaces de agarrar una gran parte del puño, y la postura del puño debe ser lo más esférica posible.
Una versión corta de cómo se hace: el puño es la pelota y las patas del pájaro rotan a su alrededor utilizando 30 poses combinadas y una mezcla de animaciones para conseguir que las patas vuelvan al centro si la pelota (la mano en movimiento) ha rotado demasiado.
30 poses combinadas sobre una pelota
30 poses combinadas sobre una pelota.
Una mezcla de animaciones permite que las patas vuelvan al centro.
Y así las combinaciones empiezan de nuevo tras la mezcla de animaciones a partir de la nueva rotación de la mano. Según nuestro programador Justin, está haciendo algunos cuaternios básicos y álgebra lineal. Y yo estoy usando tres voltajes fluctuantes que me ha dado él y los estoy alimentando con esos estados de las animaciones mezcladas.
Para el polluelo, el segundo nudillo del dedo índice funciona como una pelota.
El único caso extremo donde el concepto de la pelota no funciona es cuando el guante apunta directamente hacia abajo. Imagen más abajo.
Tenemos muchas formas de lidiar con este caso. Una solución era tener un colisionador en la parte del antebrazo del guante y hacer que el pájaro se aleje volando si la colisión del pájaro se cruza con él. Finalmente decidimos dejarlo igual. Es más intuitivo para el jugador de esta manera, ya que te permite rascarte la cadera izquierda mientras estás en RV sin necesidad de que el pájaro te abandone. Además, la mayoría de las personas jamás tendrían las manos en esa posición en una partida normal.
A no ser que estén jugando haciendo el pino por algún motivo. Cualquier tipo de elemento de la animación se vería mal o mal hecho si se está haciendo el pino.
Rastreo del movimiento de la cabeza del halcón
Versión corta de cómo se hace: la cabeza (bone_Head) es el hijo directo del mayor objeto en la jerarquía esquelética del pájaro (bone_Root).
La posición de bone_Root, (no rotación), sigue la posición del mando de movimiento, y bone_Head contrarresta ese movimiento. Básicamente, es una jerarquía de dos objetos donde una mezcla de posiciones contrarresta el movimiento del objeto-padre, para mantener al objeto-niño en la misma posición global. El resto del cuerpo del pájaro utiliza una mezcla de 27 poses para intentar que el pájaro parezca lo más natural posible.
Para el tamaño del pájaro adulto que tenemos, un desplazamiento de 12 cm por todo el eje (un cubo de 24x24x24), nos parecía ideal para conseguir un efecto estabilizador sin estirar el cuello demasiado. La cabeza también se moverá hasta el límite de ese rango y cuando pare el movimiento de la mano, esa nueva posición será el nuevo centro y otro cubo de 24 cm se formará ahí.
Matemáticamente hablando, la llave de cabeza es básicamente un vector transformado con un montón de “pelusa” extra para limitar la velocidad, para lograr una transición dentro y fuera, y para mover el marcador cuando este está muy lejos del cuerpo, pero el pájaro sigue en el área.
Plumas y renderizado
Las pequeñas plumas del cuerpo, o las plumas del contorno, en nuestros pájaros revolotean en el aire, y reaccionan a las manos del jugador cuando las roza para dar una mayor sensación de interacción táctil. La descripción corta de cada pluma pequeña en el pájaro es tratada como muchos sombreados para hierba o vegetación.
Se usan varias sinusoides superpuestas para calcular algún ruido simple utilizado para el aleteo de las plumas y para darle así más vida. Su tiempo está compensado con un valor por pluma aleatorio guardado en los vectores de color, y el movimiento de aleteo se escala también utilizando vectores de color. Esto quiere decir que la base de las plumas no se mueve, pero las puntas sí. También significa que las plumas más largas se moverán más que las cortas.
A diferencia de la mayoría de sombreados de hierba, necesitamos que las plumas no se muevan en direcciones aleatorias, por lo que no podemos usar los espacios de dirección locales o del mundo. Además, esto se encuentra en un componente skinned mesh (malla con piel), lo que hace que la dirección sea aún más dinámica.
En su lugar, usamos una combinación de ejes y tangentes de las plumas para que estas aleteen dentro y fuera y de un lado a otro de acuerdo a su orientación. Esto no es muy exacto, pero para pequeños movimientos como este no está especialmente mal.
Para manejar las interacciones de la mano, la mano del jugador tiene una secuencia de comandos que rastrea los huesos y crea una lista de cápsulas que siguen la forma de cada dedo, además de una esfera para la palma.
Si la mano se encuentra en el rango, el vértice del sombreado se repite sobre la lista de cápsulas para encontrar la distancia más cercana de una de ellas, y suavemente reduce el aleteo si una de las cápsulas está superponiéndose.
Las plumas también se estrujan contra el cuerpo. Las cápsulas se hacen enormes si las pruebas de superposición son suaves, así que no es un apagado y encendido instantáneo, sino un cambio gradual. Está toscamente calibrado por lo que una vez el dedo visible toca una pluma, esta deja de moverse completamente y se aplasta.
Aquí tenemos una primera prueba de este sistema en acción. Puedes ver cómo reaccionan las plumas a la esfera antes de que la toque, pero aún así, la interacción es convincente.
Este es un pequeño ejemplo del esfuerzo que hemos dedicado en hacer que los gráficos del halcón sean creíbles. Esperamos que disfrutéis de cuidar, vestir, cazar y luchar con vuestro halcón.
Se ha cerrado la sección de comentarios.
1 Comentario
Loading More Comments