lunes, 25 de agosto de 2014

iTween Path:Splines sencillas en Unity

La he presentado iTween, y he mostrado unos ejemplos de uso de mis juegos con este plugin de unity. Voy a seguir insistiendo con iTween, y que conste que no me llevo comisión.

iTween


En el plugin básico, además de la clase iTween, y una clase de eventos, viene otra clase, iTweenPath, con la que podemos crear rutas como splines sobre una serie de nodos. Si estáis más acostumbrados a los programas vectoriales es muy parecido a las curvas de Bezier. Pero es que además en el asset store se ofrece otro plugin, también gratuito, para poder crear en el editor, visualmente, estas rutas. Se llama iTween visual editor.

Hay un tercer plugin relacionado, también disponible en la asset store, y al igual que los otros dos, gratuito. Se trata de iTween multipath, un plugin para manejar distintos paths de forma conjunta. Este me parece útil porque los ejemplos que trae sirven para entender iTween Path, tampoco he llegado a usarlo mucho, aunque le veo posibilidades que voy a contar.


Hay una parte de todo lo que voy a contar que se puede hacer usando las herramientas por defecto de Unity, incluso con programas externos. Puedes hacer una ruta en un spline en 3Ds max por ejemplo, mover un objeto por ella y guardarlo como animación. Lo importamos en Unity y ya está. Podríamos incluso controlar en qué parte del spline está el objeto en código con el tiempo de animación. Pero en realidad no estaríamos movimiento el objeto, no sería una animación externa sino interna, moveríamos la malla respecto al centro de masas del objeto.

Usando la ventana de animación de Unity, y creando una animación en Unity podríamos hacer también. Es poner a grabar, mover el objeto por donde queramos, y luego hasta podemos retocar las curvas para que no sea todo lineal, como cualquier editor de animaciones. Sin embargo esto no nos va a dar movimientos en curva y suaves, o nos lo va a dar según la mano que tengamos para hacerlo nosotros.


Por eso creo que usar los path de iTween merece la pena. La edición es fácil con el plugin del editor visual, es colocar los nodos por donde queramos y vemos una fina línea de color por donde pasa el trazado. Es fácil en pensar que podemos hacer rutas para que los enemigos se muevan, plataformas móviles, hacer un recorrido de cámara por encima del escenario antes de empezar, o en medio de una cinemática.

Se puede usar el path de varias formas. Para mover un objeto en un tiempo dado, o a cierta velocidad, en loop, o una sola vez, o en ping-pong. Incluso podemos extrapolar el movimiento más allá de los nodos límite (aunque esto puede tener resultados inesperados). Por defecto si hacemos un path la orientación del objeto que va recorriendo la trayectoria es la tangente al recorrido. Dicho de otro modo, si el path fuera una montaña rusa iríamos mirando siempre en la dirección y sentido de la marcha. Se puede cambiar también, haciendo que mire para otros lados para casos más complejos.

Además lo podemos manejar en código, nos puede dar la posición del spline que estamos en cada momento, su longitud, o poner nosotros el objeto en una posición del spline. El spline tiene sus posiciones entre [0,1], lo cual simplifica algunas cosas, pero complica otras.

En cuanto al plugin de multi-path permite crear varios paths y que al acabar uno pase a otro. Si ponemos que el paso sea al azar podemos crear una especie de demo rápida para mostrar escenarios, de esas que se quedan puestas en los juegos expuestos en el corte inglés cuando no haces nada.

Si los trazados fueran consecutivos tendríamos una forma sencilla de crear el recorrido de rivales en un juego de coches. Ya con el iTween path normal podríamos hacer una curva con muchos nodos que recorriera todo el circuito, y poner el coche a correr por esa ruta a una cierta velocidad (que podríamos ir cambiando dinámicamente). El Path tiene un número máximo de nodos (creo que 10) y además el coche rival siempre iría por el mismo sitio haciendo el juego predecible. Incuso aunque hiciéramos varias rutas y pusiéramos una al azar, sería fácil aprenderse las rutas.

Con multipath podríamos dividir el circuito en varios splines pequeños, unidos entre ellos. Para una curva del circuito podríamos poner 3 trazadas, más o menos cerradas. Y al principio de la carrera ir empalmando un recorrido, escogiendo distintas trazadas para cada trozo de pista. Es más, en lugar de decidir al principio, podríamos decidir dinámicamente el siguiente trozo de spline a tomar como parte del trazado según una IA, por ejemplo donde no esté otro coche, por donde sea más cerrado, donde haya una recompensa a recoger...

Al igual que hice con las funciones básicas de iTween, el siguiente será un artículo sobre los usos que he dado a los Paths de iTween.

No hay comentarios :

Publicar un comentario