lunes, 11 de agosto de 2014

Feed de Updates (11/08)


Updates:

Es una soberana estupidez tener actualizado el blog diariamente por lo que realizare el feed de Updates de forma espóradica, cuando el calor me permita escribir sin gotear sangre intestinal:

-Posicionamiento correcto de la Pistola SocomUMP.450
-Mejora de la IA (inteligencia artificial)
-Sistema de impacto por partes totalmente integrado
-2 Skin del Zombie "raso" completamente listo
-Añadidas animaciones de :
                                 -Recargar
                                 -Zombie Crawl transition
                                 -Zombie Crawl
                                 -Zombie Crawl Dead

-Añadidos los shaders a los personajes, enemigos y meshes.
-Añadido un nuevo material Toony al terreno, para darle otro aire
-Añadido efectos de lluvia
-Añadido efecto de agua a la cascada
-Sustitucion de meshes colliders en capsule colliders para una mayor optimización
-Diseño del mapeado completado al 80%
-Nuevos zombies! (aunque posiblemente no para este mapeado)
-Nuevo personaje, seleccionable entre Hombre y Mujer previo a la seleccion de Mapa.
-Añadidos sonidos varios
-Implementación del AGFX para futuros mapeados.

 Intentaré tener una build pública durante la emisión en la radio emoción del programa Backup, que se emitirá en directo los Viernes a las 5 de la tarde (Horario Español) y podéis seguir aqui:


http://www.radioemocion.com/backup/




Mejorando Project Toonz

                                                             Mejorando Project ToonZ

 Después de tener a nuestro primer Zombie puesto sus colliders,  una Inteligencia Artificial mejorada (ni mucho menos depurada al 100% , si podéis evitar el uso del NavMesh Agent en mapeados grandes mucho mejor, u os comeréis literalmente la cabeza con esto), aplicado unos shaders para darle una mayor profundidad al juego y aplicado algún que otro efecto a la cámara que hablaré en posteriores entradas... es momento de pensar a donde se va a dirigir esta modalidad de juego,  y el juego en sí.


 Lo segundo aún no lo tengo del todo decidido, sin embargo sí he pensado la primera. En las primeras entradas hablaba de un sistema de Time Attack donde cada zombie una vez muerto nos daría un determinado porcentaje de tiempo extra, que se añadiria al tiempo inicial. Antes el sistema era muy básico,
donde matabas a X zombie, y dependiendo del tipo de Zombie que fuera daría X cantidad de tiempo en segundos. Esto era muy mejorable, y evidentemente teniendo cada articulación con un collider para una mayor precisión el margen de mejora era amplio.



 Tras realizar unos cambios, y añadiendo un par de animaciones, la primera variante de Zombie, o Zombie "raso" (el cual de momento tiene 2 skins, ampliabes en un futuro próximo) ha evolucionado a lo siguiente. El sistema de impacto se realizará dependiendo de que parte la bala impacte y la distancia de la bala. Es decir, si tu golpeas en la cabeza, realizarás un golpe critico, de mayor daño a si el impacto golpea a otra parte del cuerpo y dependiendo de la zona donde golpee del cuerpo a su vez tambien realizara una mayor o menor daño (en la cabeza hará un daño, en el torso hará un daño menor a la cabeza, y en las extremidades hara un menor daño al cuerpo). Así mismo el daño realizado en las extremidades harán un daño de menor a mayor desde la parte mas alejada al torso (mano) a la parte mas alejada al torso (hombro). Asi mismo el valor del daño que recibirá el enemigo se verá reducido en base a la distancia desde donde se dispara la bala. Es decir, si impacta la bala desde 2 metros, el daño será mayor  a si ésta impacta desde 10 metros.

Esto daba margen de mejora y de ampliación. ¿Por qué no usar un nuevo detector en la rodilla? Dicho y hecho, la rodilla ahora también tendra comportamiento propio. Si golpeas a la rodilla, este recibira daño, y por consecuencia del disparo, ésta se romperá, lo que hará gatear al enemigo. Por lo que tenemos al enemigo con tres animaciones más. Transición de pie al suelo, gateo (crawling) y muerte en el suelo. A su vez esto será aprovechado para variar el tiempo en segundos del Zombie. Si tu matas al Zombie de un disparo en la cabeza recibirás X segundos. Pero si le rompes la rodilla recibirás otros X segundos, por lo que si le rompes la rodilla, y posteriormente le disparas en la cabeza recibirás X+X segundos. Y asi introducir un sistema de Combos.




 Obviamente este sistema de Combos, está en estudio, pero es ya una realidad. Con estando en estudio, me refiero a la forma de poder incorporar esto al resto de Zombies, ya que no solo habrá un tipo de Zombies, y los Zombies mas grandes, no tendría sentido que incorporaran el mismo tipo de animación (rodilla rota) por lo que habra que ver, como implementar algo similar a los diferentes tipos de Zombies, ver las animaciones disponibles y ver como implementarlo. La idea sería un sistema de combos donde al menos hubiera 2 o 3 interacciones posibles por modelo.




Asi mismo, tengo que ver la forma de ajustar los colliders de una forma precisa, como lo he hecho en la rodilla, ya que se supone que tiene que ser algo milimétrico, para que no sea fácil realizar este tipo de Combos, y que la cantidad de Zombies sea tan molesta como para no permitirte estar Combeando una y otra vez.



martes, 5 de agosto de 2014

Jugando con shaders!

                                                                 Shaders

 Como el paquete básico de Unity tiene unos shaders un tanto meh, para cartoon, o una de dos, o te haces tus propios shaders, o compras unos nuevos en la Asset Store.

 Suele dejarse para el final, pero el aburrimiento y el ansia hizo ponerme un poco con ellos. A las muy malas compro algun pack que otro interesante en la store. Algunas imagenes:

                                                                      (Antes)




                                                                     (Después)



 El efecto del fuego simplemente para sobrecargar. Evidentemente tengo que seguir tocando el shader para que no se me vea esa mejilla y dedo así.

                                   Otras:


                                     







viernes, 1 de agosto de 2014

AI

                                                   
                                                                                 AI



 Una vez puestos los colliders, si hay algo que puede llevar mucho tiempo, demasiado, es la elaboración de una inteligencia artificial (AI, IA). No porque sea excesivamente complejo de realizar, ya que el codigo del mismo es bastante sencillo sino por delimitar un terreno más o menos grande, para que encaje a la perfección con sus colliders.

 Hay un programilla llamado Rain, que facilita muchisimo el hacerla. Si somos nuevos en programación, o simplemente queremos ahorrarnos un tiempo os recomiendo que le peguéis una ojeada. Es bastante visual y con la nueva versión de este, todavía aún más. He tardado bastante tiempo en seguir avanzando ya que, en este caso la AI es bastante sencilla, quería aprovechar el momento para hacerme con los programas. En el caso de Rain, hay varios tutoriales y una WIKI que basicamente no sirve para nada. Digo que no sirve para nada por el simple hecho que por muy coder que seas, el programa funciona de una forma distinta, y en la Wiki no está completa. Si conoces a alguien que pueda ayudarte con Rain, ve por el sin dudarlo, de lo contrario, olvidate... una vez finalizados los tutoriales no podrás seguir con la AI ya que faltan muchos tutoriales, y no existe ningún tutorial para la nueva versión de Rain para cosas tan básicas como acceder a una variable desde el árbol de comportamientos....

 Por lo que después de estar mendigando ayuda o tutoriales, tanto en el IRC de unity, foro de unity, foro de los desarrolladores de Rain, he tenido que ir vía código. Si sabes programar medianamente decente, acabarás antes que esperar que te conteste un desconocido en la propia pagina del desarrollador, porque va para 1 semana y aun no he recibido ni contestación ni tan siquiera gente ha visto mi post, muerto.

 Por lo que con un poco de código, y un poco del uso del NavMesh Agent para trazar rutas (sólo en Unity PRO) se puede hacer una IA decentilla. Y más para este caso, donde estoy creando el Endless mode, donde te enfrentarás a oleadas de Zombies, y precisamente no es el enemigo mas difícil de diseñarle una AI.



 Así pues, ya tenemos los colliders de los enemigos, y la AI y los spawns puestos. A falta de depurar todo (animaciones personaje, seguir diseñando el mapeado, añadir animaciones y acciones del rifle) el "Core" del juego ya está creado.

 Lentamente avanza!

martes, 22 de julio de 2014

Ronda de Imagenes



 Imágenes:









¿Necesitas Colliders? Tengo un par!


 Actualización // Blog + Updates (22-07)





    No me considero capacitado para hacer tutoriales de nada en esta vida, ya que todos estamos en constante aprendizaje, no me considero capacitado ahora, ni posiblemente nunca para intentar dar clases a
alguien de como debe hacer las cosas.

 Aún así, me gustaría aprovechar el BLOG para que si hay alguien interesado en hacer un videojuego, pueda seguir la evolución de como va anvanzando el proyecto.

  Me gustaría romper el mito de que la creación de un videojuego es difícil y que los estudios indies solo pueden hacer juegos basados en "cuadraditos" al estilo minecraft porque lo demás es complicado. Bueno, lo cierto que esto es una verdad a medias. Si cualquier desarrollador indie tuviera el dinero o diseñadores gráficos o de animaciones podría hacer un AAA "perfectamente".

 Digo "perfectamente" porque la realización de un juego es muy muy larga, y se necesita mucha gente trabajando en el proyecto, pero al menos su videojuego si podría lucir como un AAA con las pertinentes animaciones, diseños, efectos, shaders...

El principal problema es que no las tenemos, y si queremos hacer algo medianamente "visible", nos encontramos con muchas trabas. Tienes que pagar unas animaciones, unos objetos, mil cosas. Por lo que no podemos competir con ellos por un tema económico y tiempo empleado. Lo cual no significa que crear
un videojuego sea excesivamente complicado, si costoso, y necesita su dedicación.

A la hora de crear un videojuego lo primero que debemos pensar es el paso a paso. Olvidaros de la programación y pensar que queréis que hacer e ir por ahí, siempre. Por ejemplo una vez puesta la pistola, tienes que saber que si le doy  a un botón, la pistola dispara, para ello, necesitas que el barril se mueva, el gatillo, el seguro, que mientras se mueva emita un sonido, un efecto en el Muzzle Flash, un efecto en el punto de impacto, que el láser vea el movimiento de ese enemigo, que el casquillo de la balsa salga por un lateral y la bala por el cañón, y a continuación empezar a diseñarlo (si, todas esas acciones con un click, deprimente verdad?)

 Una vez que sepáis dividir el trabajo, tendréis medio videojuego hecho (para mi bastante más complicado que la programación en si, aunque puede ser abrumadora para novatos sobretodo, y no por la programación en sí, sino por la interactividad entre Scripts necesaria)

 Cogiendo el ejemplo de la pistola, vamos hoy con los Colliders. Los colliders es algo, que todos conocemos, aunque no lo sepamos! Hablemos como colliders (colisionadores) como lineas invisibles, que haran que X objeto se convierta en "solido" es decir no se pueda atravesar. Esas lineas de "choque" las llamamos colliders! Y evidentemente hay de varios tipos, Box (caja) , Capsule (Cápsula) y Mesh Colliders.

 Sabiendo esto, sabremos que a todo objeto que no queramos que se traspase tendremos que ponerle un collider. Lo más sencillo y razonable, sería pensar que si a un mesh, le ponemos un Mesh collider, nos ahorraría trabajo. Y en parte es cierto, pero el lag que puede producir esto si lo ponemos a un objeto movible no seria normal...

 Por lo que si tu quieres un muñeco que no te traspase, lo que deberías realizar es poner unos Capsule Colliders en cada articulación de este, para que estos colliders se muevan basandose en esas articulaciones. Puede llegar a ser un poco frustrante y lento, pero merece completamente la pena. He incluso puedes recrearte en ellos, es decir, poner una parte de impacto clavada. Es decir, si tienes a un enemigo, que tiene una camiseta ancha, deja esos bordes de la camiseta sin colliders, si tu disparas ahi, no vas a darle realmente, vas a disparar a la camiseta. Pon solo los colliders a la parte "viva" del muñeco.



 La actualizacion a modo de Blog es para decir que los colliders ya están puestos (ya no se verán videos con zombies atravesando paredes o mi propio personaje). Puesto al mas mínimo detalle, por lo que si apuntas entre las dos piernas, ya no golpeas al muñeco, golpeas al aire!





   


lunes, 21 de julio de 2014

Actualización + Video



Actualización (21.07)

-Nueva animación melee en movimiento (usar el hacha mientras pulsamos el botón "correr")
-Nuevas animaciones "zombies especiales"
-Modificada la animación "strafe right" con pistola equipada
-Añadido el casquillo de la bala + fuerza (En el video NO se aplica fuerza, simplemente "cae")
-Añadido un elemento random al desplazamiento de la bala, por lo que nunca dos casquillos caerán igual.
-Añadido un sistema de daño basado en la distancia, cuanto mas lejos menor será el daño.
-Efectos modificados
-Añadidas nuevas animaciones gestuales del personaje (¿Futuro CO-OP? sin decidir)
           +"Facepalm"
           +"Meditacion"
           +"Bailar"
-Aumento en el desarrollo del diseño del mapeado en un 6-10% (no incluido en el video)
-Los Zombies ya no tienen una cantidad de vida predeterminada, tienen un valor aleatorio dependiendo del tipo de Zombie. Ej. Zombie del video su vida tendrá unos valores que iran desde 70 a 140hp)
-Nuevo video con mayor calidad: Project ToonZ en Yotube
-¡¡¡¡RECOMENDADO!!! Posibilidad de descargar el video a una calidad más cercana desde Mega (ENLACE MEGA)



Nota : He tenido la oportunidad este fin de semana de probar el Motion Capture (mocap) usando Kinnect y es una auténtica pasada, pero demasiado caro. Tanto el Kinnect como los programas para un reconocimiento corporal/ facial. Por lo que he decidido monetizar los videos del proyecto con la única finalidad de recaudar algo de dinero, para no dejarme la vida en el proyecto y junto con las donaciones poder hacer frente al mismo. El dinero obtenido (poco o nada dado las visitas a youtube) irán dirigidas a la compra de Assets para el proyecto y/o Motion Capture. Aunque me gustaría usarlo para mi proximo proyecto, alguna animación caería en este F2P!

Nota 2: Si alguien tiene conocimientos de Photoshop para hacerme una miniatura para los videos del proyecto se lo agradecería. Contacta conmigo via MP aqui zhgameplayshd@gmail.com , desde Youtube,Twitter o Blog.

Nota 3: Perdonar si hay algún movimiento brusco en el video, para colmo de males, se me ha roto el ratón !^-^.

 Asi que! si os gusta o seguís el proyecto y queréis echarme un cable, por favor subscribirse, o compartir el video/s en vuestras redes sociales. Sería de gran ayuda. Cualquier click ayuda!


Canal Youtube: ZackHanzoTube!
Twitter: @zhgameplayshd

Música por SurceBeats:
 Twitter: @Surcebeats
 Youtube; SurceBeats