miércoles, 6 de mayo de 2015

Efectos de imagen y cara

De las cosas más chulas del juego que entregué en Julio y me faltaba de recuperar en esta versión eran los efectos visuales según nos vamos sintiendo peor. He usado menos y creo que con la nueva forma de hacerlos queda mejor.




Cuando estuve probando los efectos de imagen en Unity 5, descubrí que había un par que no me funcionaban desde código, no podía crear variables de ese tipo de efecto para controlarlos. Pensé que era algún problema con las referencias a librerías, pero no, ahora he visto que el problema es que esos scripts no tienen la clase declarada como pública, añadiendo un public a esas clases se arregla el problema. Aunque tener que meter mano en los assets por defecto porque no funcionan, aunque sea por esta chorrada, es un punto en contra de Unity.


En la versión 4 de Unity usaba 4 efectos de forma simultánea para dar ese efecto de estar bien colocado, son Sun Shaft (deslumbre del sol por encima del borde del escenario), Contrast Enhance (subo el contraste descomunalmente, esto crea unos colores aberrados bastante chulos), Twirl (retorcer la imagen) y Fish Eye (efecto de ojo de pez). En la versión de Unity quité el Fish Eye, ya que en algunos casos contrarrestaba al Twirl, y en otros añadía poco, solo un poco de hinchazón al centro de la imagen.

No he querido tener solo unos valores de intensidad o ángulo o lo que corresponda en cada efecto según la salud del personaje, sino que quería que tuviese más movimiento. Que al igual que el sonido fuera aumentando y disminuyendo la fuerza de los efectos, y según el estado de salud fuera entre unos valores u otros. Por ejemplo el contraste se maneja con su intensidad, entonces al 80% de vida, va fluctuando entre 0.1 y 0.5 de intensidad, pero si tenemos un 30% de vida lo hará entre 3 y 10. Además hay dos tiempos distintos, uno para contraste y sun shaft y otro distinto para Twirl, esto hace que no siempre coincida un punto de efectos más bajos con todos a la vez en el mínimo. Ahora mismo y con la configuración que se ve en el vídeo, Twirl tarda 14 segundos en hacer una transición y los otros efectos 10.

Además Twirl cada vez que sube lo hace hacia un lado, unas veces en sentido horario y otro en antihorario. Es decir si el máximo es 30º, vamos de 0º a 30º, después otra vez hacia 0º, a -30º, volvemos a 0º y vuelta a empezar. El sistema de transición suave me dio problemas en el cambio de estado. Cuando el jugador pasa del 75% de vida al 74% por ejemplo pasa de un estado de salud a otro, y los límites de los efectos cambian, y me costó que no se notase un salto en los valores justo en ese momento y se mantuvieran las transiciones suaves. Al final lo conseguí añadiendo más variables intermedias y cambiando los límites efectivos al llegar a un extremo.

La otra novedad en los efectos es el cambio de textura en la cara del personaje, ya enseñé que había 4 caras, y que si vas mal de salud la cara se va haciendo un agujero negro. Por alguna razón no me dejaba cambiar el material de la cara desde código, así que he acabado cambiando la textura en el mismo material. Con los efectos y con lo pequeño que se ve el personaje no se veían los ojos blancos en la cara de menor salud, así que cambie el material de la cara por uno tipo MKGlow, y anulando el glow en el resto de caras y activándolo cuando es la cara de menor salud. Con un parámetro de grosor que tiene, hago que el blanco de los ojos se haga más visible desde lejos.


Efectos de imagen

Y con esto están los efectos funcionando bien, en el vídeo he hecho un poco de montaje yendo hacia el fondo con máxima salud (mínimos efectos) y volviendo con mínima salud (máximos efectos), aunque me haya cargado la continuidad, así podéis ver los extremos de los efectos sin aburrir con un vídeo largo.

No hay comentarios :

Publicar un comentario