karem merino núñez marcos palomero ilardia - gmrv.esmgarcia/rva/skeletal.pdf · en 3d, entre las...

29
Karem Merino Núñez Marcos Palomero Ilardia

Upload: trandang

Post on 08-Nov-2018

214 views

Category:

Documents


0 download

TRANSCRIPT

Karem Merino Núñez

Marcos Palomero Ilardia

¿Qué es animación?

La animación es una técnica que se utiliza para dar sensación de movimiento a imágenes o dibujos. Se consigue gracias a la ilusión óptica que producen un conjunto de imágenes reproducidas a cierta velocidad.

Personajes en videojuegos y películas

En la animación de personajes se pueden diferenciar dos tipos diferentes de animación:

o Animación de personajes en películas: los personajes tienen un comportamiento prefijado y el espectador no tiene control sobre ellos.

Personajes en videojuegos y películas

o Animación de personajes en videojuegos: el comportamiento de los personajes se debe a la interacción entre la máquina y la persona que la maneja.

Técnicas de animación

Existen diferentes técnicas de animación de personajes en 3D, entre las que se encuentran:

Motion capture (Mocap)

Morph target

Skeletal animation

Motion capture (Mocap)

Es una técnica en la que se emplean actores y objetos de la realidad equipados con sensores a los que se graba , y esos datos recogidos son los usados luego para hacer la animación 3D.

Morph target

En esta técnica lo que se hace es almacenar una versión deformada de la malla como una serie de posiciones de los vértices.

Entre cada fotograma clave las posiciones de los vértices se interpolan produciendo el movimiento.

Skeletal animation

Consiste en animar a un personaje construyendo su esqueleto añadiendo huesos de manera jerárquica. De esta forma se puede animar cada uno de los huesos teniendo en cuenta que al estar unidos de forma jerárquica el movimiento de uno de ellos puede afectar a los demás.

Ventajas y desventajas

Las ventajas más destacables de utilizar Skeletal Animation son:

o Los huesos pueden moverse de forma independiente.

oCon este tipo de animación se puede ahorrar tiempo y coste computacional.

o El animador puede enfocarse en animaciones más importantes y de mayor tamaño.

La principal desventaja de utilizar Skeletal Animation es:

o En algunos casos no se genera un movimiento realista de la piel o músculo.

Usos

En la industria del cine.

En los videojuegos.

También se suelen utilizar en el ámbito militar para propósitos de entrenamiento, ingeniería virtual y pruebas de equipamiento.

Proceso

Para animar un personaje se siguen los siguientes pasos:

o Creación del esqueleto (Rigging).

o Asociación del esqueleto con la malla (Skinning).

o Animación del esqueleto.

Rigging

1. Posición adecuada de la malla.

• Servirá como postura de referencia.

2. Definir un punto de control.

• Punto raíz de la jerarquía.

3. Creación de uniones o joints de manera jerárquica.

4. Definir las restricciones.

• Prevenir movimientos poco realistas.

Skinning

5. Asociar los vértices de la malla con los huesos del esqueleto.

• Se puede realizar de manera manual o automática mediante algoritmos.

Animación del esqueleto

6. Elegir una técnica de animación.

• Forward kinematics: con esta técnica la posición y rotación de cada hueso del esqueleto se calcula de manera explícita. o Herencia de rotaciones, pero hay que especificar la

posición.

o La posición final del hueso que se mueve (efector) se obtiene a partir de la concatenación de las rotaciones de cada hueso.

Animación del esqueleto

• Inverse kinematics: con esta técnica se indica la posición final del movimiento que se quiere realizar, y todas las rotaciones y posiciones intermedias son calculadas automáticamente. o Esta técnica se suele utilizar para modelar el movimiento

de los pies en los personajes.

7. Definir los keyframes.

Blending

Existen varias técnicas para calcular la deformación que se produce en la malla del personaje al realizar un movimiento de su esqueleto:

o Linear Blending

o Spherical Blending

o Log-matrix Blending

oDual Quaternions

Linear blending

Cada vértice de la malla está unido al esqueleto de tal forma que puede tener uno o varios joints que influyen en su movimiento.

Cada vértice tiene un peso asignado indicando cuánto le afecta el movimiento de un determinado joint cuando se mueve para su deformación.

Los pesos son un valor numérico entre 0 y 1, y la suma de todos los pesos que influyen en un vértice será 1.

Linear blending: Ventajas y desventajas

Las ventajas de utilizar linear blending son:

o Tiene un bajo coste computacional, por lo que es ideal para la animación en tiempo real.

o Es simple de implementar.

La principal desventajas es:

o candy-wrapper o elbow-twist: Este problema afecta a la malla cuando se producen rotaciones en una de las uniones o joints cercanas a 180 grados. El efecto que se produce es que la malla pierde volumen en ese punto.

Linear blending

Soluciones alternativas

Añadir nuevas uniones auxiliares, con los huesos entre dichas uniones de longitud 0.

Para calcular las rotaciones de las uniones auxiliares se utiliza la técnica SLERP (Spherical Linear intERPpolation).

Spherical blending

Esta técnica consiste en trazar un arco entre el punto origen y el punto destino para calcular la posición del vértice en cada instante de la animación.

Se debe tener en cuenta que es importante elegir correctamente el centro de rotación para evitar movimientos poco realistas.

Spherical blending

Log-matrix blending

Otra alternativa a la técnica de linear blending es utilizar log-matrix blending.

Soluciona el problema de candy-wrapper.

Presenta los siguientes problemas:

o Elementos extraños en la deformación de la malla debido a que calcula una trayectoria más larga de lo necesario al interpolar rotaciones.

o Además esta técnica tiene más coste computacional, especialmente por el cálculo del logaritmo que introduce.

Log-matrix blending

Quaternions

Otra alternativa al problema de los candy-wrappers es cambiar el método de las rotaciones utilizando quaternions.

Los quaternions son una extensión de los números complejos que representan dos cosas:

o Por un lado tiene tres componentes x,y,z que representan el eje sobre el que se va a realizar la rotación.

o Un último componente w que representa cuanto se va a rotar sobre ese eje.

Problema: Los quaternions sirven para representar rotaciones y no translaciones.

Dual quaternions

Una solución al problema anterior es trabajar con dual quaternions para representar las translaciones.

o Este método resuelve el problema mencionado anteriormente que se produce utilizando la técnica de linear blending (candy-wrappers) con un coste computacional similar.

Dual quaternions

Comparativa de todos los métodos

Linear Spherical Log-matrix

Dual-Quaternion

Preserva volumen

No Si Si Si

Coste computacional

Bajo Alto Alto Bajo

Camino más corto

No Si No Si

Comparativa de todos los métodos

Video de ejemplo:

http://www.youtube.com/watch?v=4e_ToPH-I5o