lunes, 4 de mayo de 2015

Mecánica de caída II: Animación y efectos


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.



Partículas respawn



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