martes, 17 de marzo de 2015

Migración a Unity 5: El personaje en movimiento

Al final me he puesto en marcha en la tarea de migrar el juego a Unity 5. He tenido que comenzar un proyecto desde 0 e ir añadiendo las piezas que tengo poco a poco. Hay cosas que tendré que sacrificar, otras hacerlas de otras maneras, pero va a aumentar la calidad, y puedo hacerlo todo con la versión gratuita sin recurrir a la pro de formas poco limpias.



Animaciones en Unity 5


Lo primero ha sido colocar el Skybox (al que por cierto he dado una capa de niebla azulina para que parezca más lejos), el personaje, e internar que se mueva correctamente. El sistema de controlador para personaje que tiene incluido Unity 5 es bastante mejor que la mierda que tenía hecho el obrero en la versión anterior. Así que he probado si podía usar su sistema, mortificándolo a mi gusto para que funcione como el que tenía, y fiarme también de su sistema físico y de colisiones. Esto significaría tirar el trabajo que hice adaptando el SuperCharacterController, pero creo que merece la pena. Lo tenía funcionando en un proyecto aislado, de prueba, y estaba teniendo problemas para integrarlo con el proyecto del juego. Y tampoco se llevaba bien con las animaciones de Mecanim.




Así que ese trabajo está tirado, pero al usar algo que viene en Unity 5 por defecto, tendré más fácil obtener documentación, soluciones a problemas comunes y seguramente tenga menos problemas en un futuro cuando necesite meter cosas nuevas.



El controlador de movimiento de Unity tiene movimiento andar / correr, con giro pequeño y giro grande a izquierda y derecha, todo como un grid 2D. También tiene lo mismo yendo de cuclillas, y salto, dependiendo de la pierna de entrada al salto, en estático y siempre cae sobre las dos piernas. El controlador para movimiento es bastante realista, pero el salto no pega, parece mal hecho. Sin embargo en un entorno menos realista, como mi personaje queda bien.



Así que lo que hice fue quitar cosas, mi personaje no va a poder ir agachado, así que todos los estados, animaciones y código de andar en cuclillas fuera (aunque dejé una animación para hacer la transición salto-andar en ciertas situaciones). Tampoco me hacen falta los giros con animación, mi personaje no va a ir girando poco a poco y con animación, si el jugador da una dirección en el joystick el personaje encarará esa dirección automáticamente, como en los Crash. A lo mejor esta aproximación más de dibujos no es tan habitual en los controles actuales, pero me parece que funciona bien para controles no realistas, y me va a ayudar en mi juego, donde no tengo capacidad artística para ofrecer algo muy realista. Así que quité las animaciones de giros, y lo que era una composición 2D direccional se queda en 1D, ahora el movimiento solo depende de la velocidad, andar más o correr más, pero no de la dirección. El script de control de personaje tiene unos métodos para ayudar al giro más allá de la animación y usando valores altos en el giro por segundo, tanto parado como en marcha, consigo que el personaje encare la dirección de movimiento de forma automática.



El salto lo dejo como está, y no queda tan mal, creo que con un personaje más de dibujo animado y un conjunto de animaciones menos realista este salto encaja mejor. Tuve que añadir una segunda capa con una máscara para que el personaje cierre la mano donde tiene la espada siempre. También tuve que cambiar algunas cosas en el script, para que los rayos que tira para ver si está cerca del suelo solo se hagan contra las capas apropiadas (suelo, obstáculos), y para que el control se adaptase a los botones que quería. Aunque Unity 5 añade unas clases adaptadas para el uso tanto móvil como en PC, que a lo mejor hace que parte de mi estructura de clases sea innecesaria, pero todavía no he acabado de adaptar la parte de controles.






Así es como queda, puede parecer en los saltos o en algunos momentos que este aspecto de dibujo en las animaciones no es bueno. Pero hay que recordar de donde venimos, así es como se movía el personaje en la versión inicial del juego:



No hay comentarios :

Publicar un comentario