lunes, 6 de abril de 2015

Problemas al importar el Ciego en Unity

En su momento hice el diseño y animaciones del nuevo tipo de enemigo: el veneno ciego. Y ahí quedó la cosa. No llegué a incluirlo en Unity porque me puse con otras cosas, y ahora ha llegado el momento, y me he encontrado con varios problemas, no ha sido tan sencillo como yo creía.



Ciego en Unity


El primer problema fueron los huesos. Como solo quería animar los brazos, puse unos huesos sueltos en cada brazo, y si en Unity eliges la animación como Legacy se mueve, pero en Generic no. Y si estoy usando animaciones del tipo actual no quería volver a Legacy. Llegué a la conclusión de que no funcionaba con Generic, por ser dos esqueletos, uno en cada brazo, y no uno solo. Y creo que tenía razón, añadí un hueso más al cuerpo que unía los dos brazos y la animación empezó a funcionar con un rig de tipo Generic en Unity.




Pero tanto en Generic como en Legacy se movía, pero no bien. El modelo entero se bamboleaba hacia delante y atrás cuando solo debería mover los brazos. Se ve que no puedes dejar vértices sin asignar peso a algún hueso como pretendia. En 3DS max funcionaba bien, los vértices de los brazos tenían asignado huesos y se movían y el resto no, y no se movían. Pero creo que Unity al encontrarse esto, asigna los vértices sin hueso al primero que pilla, y por eso se movía todo, en este caso al ritmo de uno de los huesos del brazo izquierdo. Para arreglar esto tuve que asignar todos los vértices neutrales al nuevo hueso, que no se mueve. Aunque así se perdía el efecto de deformación que había metido, el cual pude recuperar aplicando esa deformación sobre el nuevo hueso.



Una vez arreglado esto ya funcionaba en Unity, y le quise dar el mismo aspecto que tenía el veneno antes, con halo alrededor. En lugar de poner halo, esta vez hice un efecto parecido usando el MkGlow que usé para la estela de la espada. Ya que el shader se ejecuta, solo tenía que hacer el material del veneno de tipo MKGlow y ajustar los valores.



Por otro lado tenía que hacer que se moviera. Este personaje va a patrullar sin reaccionar ante el personaje, ya que es ciego, es más un obstáculo que un enemigo, aunque te lo puedes cargar y te puede hacer daño sin querer. Lo puse a andar por un recorrido hecho con un path de iTween, pero hacía cosas rarísimas. Aún ajustándolo bien tenía el problema de que al poner la animación tipo ping-pong para que hiciera el recorrido de ida y vuelta, la vuelta la hacía marcha atrás, como si fuera un moonwalker. Podría haberlo arreglado con un evento al final del recorrido y una animación de giro, pero opté por otra solución más sencilla y más potente. Usé iTween multipath, que permite poner varios caminos y que le personaje los vaya encadenando. Así pongo un camino de ida, y otro de vuelta, además no superpuestos, y el enemigo hace perfectamente la ronda que quiero. Pero esto es más versátil, ya que en zonas más complicadas le puedo poner a hacer otros patrones con más de 2 caminos. 

No hay comentarios :

Publicar un comentario