# Animación 3D

Esta lección es una breve introducción a la animación 3D por computador. Se presentan los métodos utilizados para generar secuencias animadas y las técnicas para lograr distintos efectos visuales.

## Introducción

Animación por computador se puede definir como cualquier secuencia temporal donde se aprecien cambios visuales en una imagen.
Estos cambios pueden ser en el tamaño, color, posición, transparencia o textura de los objetos. También se pueden variar parámetros en la posición de la cámara y la iluminación de la escena.
Por otro lado, un objeto tridimensional es una conexión de puntos. Por ejemplo, un cubo tridimensional está compuesto de seis cuadrados de dos dimensiones, cada uno colocado en un cara independiente. El efecto de trazar un objeto 3D en una pantalla de dos dimensiones se logra con trigonometría y manipulación de matrices.
Por tanto, la animación 3D consiste en realizar manipulación sobre objetos tridimensionales en un secuencia temporal de forma tal que se puedan apreciar cambios visuales.
Si bien a nivel técnico, podría definirse como el proceso informático utilizado por los animadores para generar un efecto de movimiento en nuestro cerebro, a través de la creación de secuencias de imágenes 3d fijas, a nivel artístico la definición de animación sería otro. Animar es un término que proviene del latín “Anima” y su traducción es “Alma”. Por lo tanto animar consiste en dar alma a un personaje o un objeto de forma que parezca que este cobre vida, piense y parezca actuar por decisión propia.

## Métodos para generar secuencias animadas
### Tiempo real

Tiempo real es un método que consiste en mostrar cada etapa de la secuencia a medida que se va generando. Es el método utilizado en los simuladores.

#### Método de barrido de doble búfer

Este método se utiliza para generar animaciones en tiempo real utilizando dos búferes. Un búfer de refresco es un área de memoria donde se almacena la definición de la imagen.
Durante este proceso se conmuta entre ambos búferes. En uno se genera una imagen mientras el otro se utiliza para refrescar la pantalla. Esto ocurre durante toda la secuencia de animación.
Por otro lado, la construcción de una imagen tiene que completarse en lo que dura un ciclo de refresco de lo contrario la animación no será fluida.

### Imagen a imagen

El método de imagen a imagen consiste en generar por separado cada imagen de la secuencia para luego mostrarlas de manera consecutiva. Se utiliza para animaciones de escenas con muchos detalles como pueden ser las de una película de dibujos animados en 3D generados por computador.

## Etapas de desarrollo de una secuencia animada

El proceso de desarrollo de una secuencia animada consiste en la creación de un guión, la definición de los objetos, definición de los fotogramas claves y generación de los fotogramas intermedios.

### Storyboard o guión gráfico

Conjunto de dibujos junto a una breve descripción de los movimientos o simplemente una lista donde se describe la secuencia de animación. Aunque la traducción vendría a ser guión gráfico, una definición mas extensa y precisa podría ser la siguiente. El storyboard es la herramienta que nos ayuda a explicar una historia o una acción de forma gráfica. Una primera incursión sobre la acción en un plano de animación, película o spot de publicidad. Esta disciplina del arte cinematográfico se apoya inexorablemente en el manejo de conocimientos sobre composición cinematográfica, narrativa audiovisual, guión, lenguaje cinematográfico y por supuesto dibujo.

### Objetos

En la secuencia de animación es necesario definir que objetos tomarán parte de la acción animada. Además de definirse dichos objetos, deben definirse los movimientos que realizarán durante la secuencia de animación.

### Fotogramas claves

Es un dibujo de la escena en un cierto momento de la secuencia de animación. Los movimientos elaborados requieren más fotogramas claves que los movimientos lentos.

### Fotogramas intermedios

Son los que se encuentran entre un fotograma clave y el siguiente y permiten suavizar la transición entre fotogramas claves.

## Técnicas de animación

Existen varias técnicas para generar secuencias de movimiento como son la deformación de un objeto, temporizar fotogramas, la anticipación y el enfoque de la acción.

### Compresión y expansión

Es una técnica que se utiliza para simular la aceleración de objetos no rígidos. El objeto se expande cuando acelera y se comprime cuando frena.

### Temporizar

Hace referencia a como espaciar los fotogramas en una secuencia. Un objeto que se mueva más lentamente se representa mediante fotogramas con una espaciado menor, mientras que un objeto que se mueva rápidamente se mostrará distribuyendo menos fotogramas a lo largo de todo el trayecto de movimiento.

### Anticipación

Son los movimientos preliminares antes de realizar una acción. También se pueden utilizar movimientos de seguimiento después de haber realizado una acción.

### Enfoque de la acción

Consiste en enfocar la cámara a una parte concreta de la escena.

## Cambios en la morfología

Consiste en deformar un objeto para que adopte una forma distinta para transformaciones complejas de objetos que cambian a lo largo del tiempo como las características faciales.
Se utilizan los fotogramas intermedios para realizar una transición entre las modificaciones de las formas de los polígonos entre dos fotogramas claves.
Los fotogramas intermedios añaden o quitan las aristas necesarias de los polígonos para realizar la transformación de un fotograma clave al siguiente. Este proceso se conoce como ecualizar fotogramas.

## Aceleraciones y especificación

La especificación directa de los movimientos consiste en especificar los ángulos de rotación, los vectores de traslación y aplicar las matrices de transformaciones geométricas.
Para simular aceleraciones se utilizan técnicas de ajustes de curvas para especificar los trayectos entre fotogramas. Los cambios de velocidad se modelan con splines, funciones trigonométricas, funciones temporales parabólicas o cúbicas.
Por lo general, los paquetes de software de animación como Autodesk Maya suelen proporcionar funciones trigonométricas.

## Digital Puppetry

Digital puppetry consiste en generar por computador una secuencia animada utilizando un títere controlado por un titiritero o un humano como fuente de la secuencia animada en tiempo real.

## Autodesk Maya

Existen muchos programas para generar gráficos y animaciones 3D pero Autodesk Maya se considera el más completo y potente. Para hacernos una idea de la calidad de este programa mencionar que es el único software para generar imágenes 3D al que se le ha concedido un Óscar por el enorme impacto que ha tenido en la industria cinematográfica.

## Rigging

Es una técnica de animación por computador que se utiliza cuando se quiere modelar a un humano o animal. El modelo se compone de dos partes. Por un lado el conjunto de polígonos que dan forma al objeto (mesh). Por otro lado se encuentra el esqueleto o rig utilizado para animar. Esta técnica permite un mayor de nivel de abstracción sobre moviemientos donde intervienen algoritmos complejos. La función de la técnica de rigging es facilitarle el trabajo a la persona encargada de realizar la secuencia animada.

## Conclusiones

La animación 3D combina la tecnología con la creatividad para producir efectos visuales asombrosos. Hoy en día, gracias a la gran capacidad de procesamiento que ofrecen los ordenadores, la animación 3D acapara todo el espectro del entretenimiento visual.
Podemos dividir las secuencias animadas como de tiempo real o de imagen a imagen. Para generar secuencias animadas en tiempo real se utiliza el método de doble búfer. Para secuencias imagen a imagen se utilizan los fotogramas.
Por otro lado, existen varias técnicas para generar efectos visuales en secuencias animadas. Están las técnicas clásicas como la compresión y expansión u otras más recientes como digital puppetry que se combinan con software como Autodesk Maya para generar secuencias animadas.

## Lecciones relacionadas

* Imagen generada por ordenador
* Introducción, Formatos y Procesamiento de la Animación
* CuboMultiInte