Una vez que está resuelta la colisión, como vimos en el primer artículo, hay
que ver qué se hace cuando se detecta la colisión. He puesto unos
puntos, a mano, de respawn, uno por cada dirección de gravedad, y
según qué cubo detecte la caída se coloca al personaje en ese
punto y que siga cayendo. Y se tenía que ver esa caída, así que la
cámara tenía que retroceder hasta el punto de respawn más rápido
de lo normal y siguiendo la trayectoria de caída del personaje en
lugar de seguir fija, así que necesitaba tener dos modos de cámara
y poder cambiar entre ellos. Ajustado y funcionando, ahora se ve cómo
cae.
Quedaba un poco soso, así que le puse
un nuevo efecto de partículas, no me he matado, he puesto uno de la
asset store, con el único cambio de que las partículas caigan en
lugar de flotar hacia arriba. Lo tengo que colocar en el punto de
respawn y orientarlo según la gravedad actual antes de activarlo
para que el efecto se vea bien. Y como no quiero que las partículas
me vayan siguiendo no pueden estar colgados del protagonista.
Además el protagonista no puede caer de pie, o no se entenderá que pierda vida, tiene que pegarse una hostia y luego levantarse, así que necesito una animación con esa acción. No encontré nada hecho que me gustase (tenía alguna de levantarse pero bocarriba y yo lo quería bocabajo), así que acabé haciendo la animación a mano en 3Ds max. No es una animación muy complicada, estando bocabajo (o según Glados en decúbito prono) apoyar las manos para ir levantando el cuerpo, doblar una pierna, apoyar ese pie y hacia arriba hasta una posición de idle. Pero 3Ds max siempe me da problemas cuando hago posiciones con los brazos doblados o forzadas, y lo de mover los brazos y doblarlos para levantarse siempre lo lleva mal y se pone a hacer giros raros y que romperían articulaciones a un contorsionista. Al final y con muchos más frames clave de lo que me gustaría saco una animación medio decente.
El problema es como usar esa animación.
Mi intención era dejar al prota tumbado al hacer el respawn y que al
chocar contra el suelo se levante. Esto lo hacía en el sistema
antiguo poniendo esa animación y poniendo la velocidad de la
animación a 0, con lo que se quedaba congelado en la primera parte
de estar tumbado y cuando se tuviera que levantar volver a poner la
velocidad a 1. Pero esto de parar el tiempo en un animator no
funciona o no supe hacerlo, tiene la opción, igual, una variable de
velocidad, pero no me funciona. Así que intente hacerlo con 2
estados, uno con una animación de solo 1 frame del prota tumbado y
otra ya levantándose. Pero al parecer Mecanim no se lleva bien con
las animaciones de solo 1 frame y no funcionaba. Si ponía 2 frames
caía moviendo las manos como una locaza y tampoco me gustaba. Así
que tuve que hacer una animación con 2 frames iguales solo para ese
estado de caer tumbado. Ahora al hacer respawn le coloco en el estado
de bocabajo y al tocar suelo paso a la animación de levantarse.
Con esto ya solo falta adornarlo un
poco, que la cámara tiemble cuando chocas con el suelo, que lo tenía
ya hecho, solo me faltaba invocarlo, y que baje la vida, y ya está.
Completa la mecánica de caída, y video para demostrarlo.
No hay comentarios :
Publicar un comentario