lunes, 2 de junio de 2014

SYNFIG ANIMATION STUDIO

Synfig Studio es un programa de animación vectorial en 2D de código abierto. Está diseñado para producir animaciones con calidad cinematográfica con pocas personas y recursos. 

CARACTERISITCAS

Según Wikipedia, la animación es la exhibición rápida de una secuencia de imágenes para crear una ilusión de movimiento. Tradicionalmente, la animación 2D se creaba dibujando individualmente cada imagen mostrada. Dichas imágenes se denominan "fotogramas" y este método se llama "animación fotograma a fotograma". Para crear una buena ilusión de movimiento se necesita dibujar muchos fotogramas, es por ello que este método requiere mucho tiempo y recursos.
Synfig Studio está diseñado para eliminar la necesidad de dibujar cada fotograma de forma individual. Existen dos técnicas para lograr esto:
  • Animación por transformación (Morphing)
  • Animación por cortes (Cutout animation)
 El ánimo de este proyecto realizar el primer paso para este proceso.
Esto es, desarrollar un lenguaje específico de dominio para Synfig, que sea capaz de generar consultas XQuery a un archivo Synfig (sif / sifz) de forma que sea posible modificar los parámetros que el archivo contiene y que describen la animación.
Así, se desarrolla un DSL textual que es capaz de modificar parámetros de forma conjunta incluso entre diversos archivos. Al realizar una animación real, la animación se describe en diversos archivos, que unidos la generarán. Con este editor es posible modificar, por ejemplo, el color de un elemento en varios archivos y capas a la vez sin tener que abrir y editar uno a uno los archivos y parámetros.
Es también posible, por ejemplo, seleccionar todas las capas de un tipo, y modificar un parámetro, lo que se puede usar para mover uno o varios elementos de una animación por encima o por debajo de otros sin tener que editar los archivos de la animación manualmente.
Para la modificación será necesario hacer uso de XQuery Update Facility, una extensión del estándar XQuery y recomendación de la W3C.

DATOS DE CREACION Y IMAGENES

Este proyecto se desarrollará siguiendo un modelo incremental en el que a lo largo de las distintas iteraciones se conocerá más exactamente el formato de archivo e irá siendo posible generar consultas sobre los diferentes elementos, de más simples a más complejos.
Una fase importante es la investigación y especificación del formato de archivo, que será llevada acabo oficialmente durante la fase de análisis.

Normalmente uno de los quebraderos de los animadores suele ser el hacer giro de la cabeza del personaje que se está animando. Esto es así porque al ser una parte del cuerpo a la que estamos muy habituados a mirar y reconocer, los errores en el dibujo y la animación se notan mucho. Además suele ser dificil darle vida a los personajes en los momentos en los que hacen ese tipo de giros.
Para este ejemplo quiero que nos centremos en una serie de aspectos interesantes que he preparado para su confección.
Como podeis ver, todo el perro esta constgruido mediante líneas bezier excepto los ojos que son capas círulos. Para mejor manejo he agrupado las capas que representan partes del animal en capas de lienzo pegado:
Con esto vamos a poder animar el orden de las partes del cuerpo en el caso de que sea necesario. Para ello tendríamos que modificar el valor Z de cada uno de los lienzos pegados que tenemos en el ejemplo para poder alterar el orden de las partes del cuerpo.
Otro aspecto que me resulta interesante destacar en este ejemplo es la utilización de las capas de rotar y de encojer. De la capa de rotación he situado el origen de rotación en la base del cuello del perro para que sea lo más realista posible. Además el origen de la capa de encoger la he enlazado al origen de la capa de rotacion al objeto de que las dos apliquen el efecto en el mismo punto y la base del cuello no se separe del cuerpo cuando se haga la rotación y el encojimiento de la cabeza.
También es interesante ver como he colocado una capa encoger adicional encima de todas las capas que forman la cabeza, de forma que ésta me va a permitir hacer el giro de la misma de izquierdas a derechas y viceversa. Su origen de encogimiento también lo he enlazado al origen de rotación. Fijaros como el valor de encogimiento (un vector relativo al origen de encogimeinto) y que vale (60,60) pixels para un encogimiento nulo (es decir no alteración del contexto de aplicación de la capa) – recordad que 60 pixels equivalen a una unudad “synfig”-, lo he convertido a un valor tipo interruptor. Con esto consigo que simplemente animando un valor booleano el efecto de encoger se produzca de manera brusca, en forma de escalón, produciendo el giro rápido de izquierda a derecha como es deseado.
El resto de la animación es sencillo. Tened en cuenta como he ido añadiendo fotogramas clave en los puntos que he considerado que la animación debe ser fija y que en esas poses se marca el ritmo de la animaciLos fotogramas clave de anticipación, giro, post giro  y vuelta al reposo, pueden unirse o separarse en el tiempo, produciendo diferentes efectos.
Aparte de las cuestiones técnicas de construcción del personaje y de los preparativos para su animación hay un par de aspectos interesantes que me gustaría destacar:
1) Aplicación de los principios de animación: Anticipación y Movimientos Secundarios. Fijaros bien como me he asegurado de anticipar el movimiento del giro del perro mediante una leve inclinación de la cabeza hacia abajo antes de hacer el giro rápido. Esta anticipación provoca la creación de los movimientos secundarios. Las orejas se retrasan hacia atrás en este giro hacia abajo y la lengua se eleva ligeramente. Al mismo tiempo el perro mira hacia el lado de giro y cierra levemente los ojos (si os fijais bien, la gran mayoría de las personas y especialmente los animales aprovechan los giros de cabeza para hacer el parapadeo necesario. Es pura cuestión de supervivencia ;). Así pues los movimientos secundarios que aparecen son las orejas (que rebotan ligeramente tras el giro), la lengua que he procurado que siga el movimiento del giro y continue con la inercia propia de un trozo de carne floja, y los ojos, que se anticpian y parpadean durante el giro.

2) Modificación de los métodos de interpolación para el mantenimento de las poses. Cuando un objeto se anima siguiendo la siguiente secuencia: pose 1 – …tiempo… – pose 1- …tiempo… – pose 2 …-tiempo-…pose1  y se dejan las interpolaciones que por defecto se crean (TCB) se produce un efecto “rebote” entre la pose1 primera vez y la pose1 segunda vez. Esto se debe a que el método de interpolación TCB tiene en cuenta los valores vecinos de los puntos de interpolación y por tanto, aún conservando el valor en el punto de interpolación, la curva no es siempre la deseada y se produce ese efecto rebote. Para evitarlo hay varias formas y consisten en añadir nuevos puntso de interpolación donde haya que corregir el rebote o bien modificar el método de interpolación a Suave o Lineal para que el rebote desaparezca. Esta técnica la he tenido que aplicar varias veces en esta animación de ejemplo.

No hay comentarios:

Publicar un comentario