componentes - collab.upm.es · las cámaras en blender se animan de la misma ... respecto a las...

19
Memoria proyecto final COMPONENTES Javier Fernández Martínez Luis Gascó Sanchez [ZOO WAR]

Upload: phammien

Post on 27-Oct-2018

213 views

Category:

Documents


0 download

TRANSCRIPT

Memoria proyecto

final

COMPONENTES

Javier Fernández Martínez

Luis Gascó Sanchez

[ZOO WAR]

[ZOO WAR] Memoria proyecto final – 2. Componentes

Síntesis y animación de imágenes 2012/2013 Página 1

Contenido

FIGURAS .......................................................................................................................................................... 2

ESCENARIO ...................................................................................................................................................... 4

ANIMACIONES ................................................................................................................................................. 7

CÁMARAS ........................................................................................................................................................ 8

ILUMINACION .................................................................................................................................................. 8

RENDER ........................................................................................................................................................... 8

MONTAJE ......................................................................................................................................................... 9

PROBLEMAS Y CONSEJOS .............................................................................................................................. 10

ANEXOS ......................................................................................................................................................... 13

[ZOO WAR] Memoria proyecto final – 2. Componentes

Síntesis y animación de imágenes 2012/2013 Página 2

En el presente documento se explica la parte técnica de la elaboración del proyecto. Se recogen

explicaciones de las principales novedades introducidas y una explicación de cada fase de diseño

del mismo: modelado de figuras, del escenario, creación de las animaciones, movimientos de

cámara, iluminación, construcción de la película y montaje del resultado final. Además se incluye

el apartado Problemas y consejos, en donde se exponen los principales problemas que se han

tenido durante la elaboración y se recogen una serie de consejos y soluciones con el fin de

ahorrar tiempo y sufrimiento frente al ordenador de los futuros alumnos que desean realizar un

proyecto final de similares características.

FIGURAS Ganso: se ha utilizado este animal como peón de ajedrez. En el momento inicial hay tres

gansos en escena. El cuerpo del animal se ha obtenido de una página de modelos 3D,

posteriormente se ha texturado e introducido el esqueleto para su animación.

Cerdo: representa la torre. Hay uno en escena. El modelo se obtuvo de una página de

internet, que luego se referenciará en el apartado de fuentes, y posteriormente se

texturó y se animó.

Caballo: representa el caballo del ajedrez. Hay uno en escena. El modelo es

integramente elaboración propia.

Oso: representa el rey del ajedrez. Hay dos en escena, uno de cada equipo. Se descargó

de internet un modelo similar, en el que hubo que realizar unos ajustes de tamaño y

escala, texturar y animar.

Las crines del caballo se han realizado mediante sistema de partículas, este apartado aparece

explicado en un videotutorial referenciado en el apartado Fuentes.

[ZOO WAR] Memoria proyecto final – 2. Componentes

Síntesis y animación de imágenes 2012/2013 Página 3

[ZOO WAR] Memoria proyecto final – 2. Componentes

Síntesis y animación de imágenes 2012/2013 Página 4

ESCENARIO El escenario es un tablero de ajedrez de 8x8 celdas en medio de un paisaje montañoso, se ha

hecho así inspirados en los paisajes de Final Fantasy IX, donde las luchas trascurrían en territorio

neutral, alejados de la civilización.

Para las celdas se ha empleado una textura para cada color, de modo que 32 son de piedra y

otras 32 de césped, para el cual en primer momento se utilizó césped a partir del uso de

partículas, pero a la hora de renderizar resultó ser una carga computacional demasiado grande y

se decidió prescindir de él. Se entrega un fichero .blend con el césped que se pretendía utilizar

para que pueda ser usado por futuros alumnos, que dispongan de computadoras más potentes.

A continuación se muestran extractos del césped empleado, del césped en alta definición

descartado y del material rocoso usado para las otras 32 casillas.

[ZOO WAR] Memoria proyecto final – 2. Componentes

Síntesis y animación de imágenes 2012/2013 Página 5

[ZOO WAR] Memoria proyecto final – 2. Componentes

Síntesis y animación de imágenes 2012/2013 Página 6

Las montañas se han generado a partir de un Addon, que es un generador de montañas

aleatorio, incluido en el propio Blender, que ha resultado ser una herramienta muy útil y sencilla

de manejar con la que crear un paisaje montañoso muy real y que no supone un excesivo

tiempo de rendering. Funciona de la siguiente manera: se activa como se muestra en la figura, y

una vez hecho esto ya se pueden crean montañas en el menú Mayus+D, como si te una figura

normal se tratase.

[ZOO WAR] Memoria proyecto final – 2. Componentes

Síntesis y animación de imágenes 2012/2013 Página 7

Para crear el cielo se ha optado por la generación de una semiesfera gigante que envuelve todo

el escenario y se ha texturado mediante UVMap con una foto de un cielo, descargada de una

página muy interesante en este aspecto, ya que contiene multitud de fotos de cielos,

panorámicas en las que se permite modificar ciertas características como la exposición o el

contraste. En el apartado Fuentes se incluye el link.

ANIMACIONES Ha sido necesario diseñar tres animaciones básicas para cada animal, que son las de andar,

atacar y sufrir ataque. En el oso no ha sido necesaria implementar esta última ya que no es

atacado por nadie.

Un vez creadas las animaciones en el Action Editor, para combinarlas y formar la película se ha

empleado el NLA Editor, Non Linear Animation Editor. Desde esta herramienta a parte de crear

la secuencia se pueden cambiar las propiedades de la animación, como en qué frame empieza o

termina, que no se realice entera, o incluso escalarla para que dure más o menos tiempo que el

que habíamos establecido en el Action Editor, con la consecuente variación de velocidad.

Además desde este editor se pueden combinar varias animaciones de forma que si se tiene una

[ZOO WAR] Memoria proyecto final – 2. Componentes

Síntesis y animación de imágenes 2012/2013 Página 8

animación de moverse y otra de andar pueden combinarse para que ocurran a la vez mediante

un control de influencia.

CÁMARAS Las cámaras en Blender se animan de la misma manera que cualquier objeto. Se ha optado por

emplear keyframes y el Curve Editor, ya que es un mecanismo sencillo con el que se consiguen

unos resultados muy satisfactorios.

Blender incorpora multitud de presets de cámaras comerciales Nikon, Canon y otras marcas. En

el proyecto se ha empleado el preset de cámara estándar de Blender, que presenta una buena

combinación de colores y un contraste idóneo a lo que se quiere representar.

Se han empleado dos cámaras, una para sacar un plano inicial de todo el entorno del escenario y

otra para cubrir la lucha entre las piezas.

ILUMINACION En la iluminación puede estar la clave del éxito de la película. Es complicado conseguir una

iluminación realista, pero debe ser entendida como un mecanismo con el que resaltar las

virtudes del proyecto y disimular los defectos.

En este proyecto se han empleado dos fuentes de iluminación tipo Sun con las que dar una

iluminación uniforme a la escena, y una fuente tipo Spot que va colocada detrás de la cámara,

con la que se resaltan los objetos que están dentro de plano.

RENDER Los parámetros del renderizado han sido un aspecto delicado debido a las limitaciones que se

habían mostrado en la pruebas hechas a lo largo del proyecto, había que conseguir una calidad

óptima en un tiempo de render razonable. Desgraciadamente esto no se ha conseguido porque

con una máquina standart (Intel Pentium i3, 4GB RAM y tarjeta gráfica no muy potente (coste 80

euros)) el tiempo de render fue de 27 horas. Utilizando la siguiente configuración:

[ZOO WAR] Memoria proyecto final – 2. Componentes

Síntesis y animación de imágenes 2012/2013 Página 9

Probablemente se pudo prescindir de ese nivel de antialiasing y seleccionar solo 8.

Una nota para futuros estudiantes es que existen unos drivers en fase beta que pueden ser

utilizadas para ciertos modelos de tarjetas gráficas de forma que una vez instalados la

renderización la realicen los núcleos de la tarjeta gráfica y no el procesador de la placa base.

MONTAJE Debido a que el secuenciador de audio de Blender no está muy desarrollado actualmente se

recurrió a hacer el montaje con el programa Adobe Premiere Pro CS6, desde el cual se

añadieron los rótulos, se juntaron las dos tomas de la cámara, se añadieron transiciones entre

las secuencias de video y se añadió y sincronizó el audio.

Este programa se puede utilizar gratuitamente en una demo de 30 días y en un nivel básico es

muy sencillo de usar, por ello lo recomendamos para futuros estudiantes ya que es una forma

de ahorrarse quebraderos de cabeza con el secuenciador de audio de Blender y con el añadido

de rótulos en el propio Blender.

A continuación se muestra una captura del programa cuando se utilizó.

[ZOO WAR] Memoria proyecto final – 2. Componentes

Síntesis y animación de imágenes 2012/2013 Página 10

PROBLEMAS Y CONSEJOS A lo largo del proyecto se han presentado multitud de problemas que han requerido la

búsqueda de información por la web para subsanarlos o incluso variar algunas de las ideas

iniciales sobre el resultado final. Aquí se exponen los más importantes, así como algunos

consejos para aquellos futuros alumnos que quieran realizar un proyecto de animación con

Blender Render.

En cuanto a las figuras cabe destacar la complicación de animar los animales de 4 patas,

como el cerdo y el caballo. El que más problemas causó fue el caballo, se cree que

porque a la hora de modelarlo no se usó la herramienta mirror, por lo que se

recomienda encarecidamente su uso para modelar figuras que posean simetría

longitudinal (la más común).

También ha sido complicado texturar las figuras con fotografías reales, porque hay que

tener en cuenta la geometría del modelo y hacer una selección muy precisa de las caras

a las que aplicar la textura. Aunque ciertamente merece la pena invertir tiempo en este

proceso porque los resultados pueden ser muy reales.

Respecto a las partículas empleadas para la realización del pelo del caballo surgió un

problema que consistía en que dichas partículas se quedaban ancladas en el espacio,

pese a estar emparentadas a la malla del animal y por tanto al desplazar el animal, el

[ZOO WAR] Memoria proyecto final – 2. Componentes

Síntesis y animación de imágenes 2012/2013 Página 11

pelo que quedaba en su posición original. La causa era una incorrecta jerarquía de los

modificadores.

La solución es subir a las primeras posiciones de jerarquía de modificadores el esqueleto

del caballo.

La cámara ya se ha dicho que tiene una animación muy intuitiva y un fácil manejo. Cabe

resaltar el parámetro Clipping con el que se regula la profundidad de campo, es decir, la

profundidad espacial que recoge la cámara.

Para el Skinning (asociación de esqueleto y malla) dependiendo de la complejidad del

animal se han empleado dos técnicas, por Envelops y por Vertex Groups.

La técnica de los Envelops consiste en que asignar a cada hueso un trozo de malla de

forma semiautomática. Esto es, cada hueso posee un “envoltura” cuyo tamaño es

ajustable por el usuario de forma fácil en Modo Edición, menú N, Envelope. El problema

de esta herramienta es que las envolturas tienen forma cilíndrica o como mucho cónica,

por lo que si se trata de emparentar un modelo con muchas curvas o mucho detalle esta

herramienta puede resultar muy problemática ya que no conseguiremos asignar el trozo

de malla exacto al hueso correspondiente.

La técnica de los Vertex Groups, aunque más laboriosa, garantiza la asociación de la

parte exacta de la malla al hueso correspondiente. Esta técnica está perfectamente

explicada en el tutorial de clase 05_Animacion_Basica.pdf . Cabe destacar que Blender

posee unos comandos de selección muy sencillos y efectivos, que permiten seleccionar

la parte de la malla que nos interesa (ya sea en forma de vértices, caras o aristas) de

forma eficaz; los principales son:

[ZOO WAR] Memoria proyecto final – 2. Componentes

Síntesis y animación de imágenes 2012/2013 Página 12

L sobre un trozo de la malla: Blender identifica automáticamente in trozo de la

malla que comparta unas características geométricas y lo selecciona.

B + click izquierdo y arrastrar: permite hacer una selección cuadrada de un trozo

de la malla.

C: esta es sin duda la herramienta más útil y eficaz, permite seleccionar trozos

de la malla a partir de un círculo de selección, cuyo tamaño se ajusta con la

rueda del ratón. La selección se puede hacer por pasos, de modo que se van

sumando trozos de malla a la selección hasta que se pulse la tecla Escape.

Además pulsando al botón de la rueda central (presionando la rueda hacia

abajo) permita “restar” trozos de malla a la selección.

Ctrl + I: selección inversa: se seleccionan los trozos de la malla que no estuvieran

seleccionados (resaltados en color naranja) en ese momento.

Esta técnica de skinning es la predominante en el proyecto, ya que pese a necesitar más

tiempo para su realización garantiza un correcto emparentado y que no aparezcan

problemas de trozos de malla asociados a varios huesos que provocan curvas

indeseadas, o trozos directamente no emparentados, lo que provoca que queden

anclados en el espacio y no se mueva toda la malla uniformemente.

Blender permite asignar unos pesos a cada vertex groups, con lo que se varía su

ponderación. En nuestro caso se ha mantenido el peso estándar para todos los grupos

de vértices, 1, esto es porque al asignar la malla al esqueleto se ha tenido un cuidado

extraordinario de no asignar un mismo vértice a varios grupos de vértices.

En el documento Fuentes se adjuntan dos tutoriales que profundizan en el uso de Vertex

Groups y del modificador de pesos de los vértices.

Como se ha dicho, para la formación de la película se ha empleado el Non Linear

Animation Editor, una herramienta con un enorme potencial que permite elaborar las

secuencias de animación de acuerdo al criterio y a los gustos del animador. Así mismo se

ha comprobado su complejidad y la falta de información e instrucciones de uso de la

misma tanto en los tutoriales disponibles en la asignatura como en internet. Por ello

sería interesante contar con una bibliografía en este respecto en la que basarse y

aprender a manejar el NLA ya que es el corazón de la película de animación - no se ha

encontrado otra herramienta de Blender con la que se pueda hacer una secuencia de

acciones.

Un problema destacable relacionado con el NLA ha sido conseguir que los animales

anden, el mecanismo para conseguir esto es combinar la animación de andar

(movimientos de piernas y brazos) con un movimiento horizontal. El problema que ha

surgido es que esa combinación se realiza mediante influencias de animaciones, pero al

dar más influencia a andar el movimiento horizontal se reduce, por su influencia menor,

de manera que es muy complicado conseguir ajustar todos los movimientos.

La principal limitación del proyecto y en función de la cual se ha tenido que ajustar el

contenido y el nivel de detalle del mismo es el tiempo de rendering.

[ZOO WAR] Memoria proyecto final – 2. Componentes

Síntesis y animación de imágenes 2012/2013 Página 13

Toda herramienta o diseño que se introduzca el .blend hace que el rendering del

proyecto final se incremente. Hay que ser muy conservador en este aspecto, sobre todo

si no se dispone de un ordenador con un megaprocesador, una memoria RAM de

tamaño anormal o una tarjeta gráfica de extraordinaria potencia.

Por este aspecto se ha tenido que recortar el tiempo del corto inicialmente previsto, así

como el número de piezas en el tablero, o el nivel de detalle del escenario, como por

ejemplo el césped, que tras conseguir una textura que se asemejaba con enorme

fidelidad a un césped real, se ha renunciado a su inclusión en la escena tras comprobar

que en los ordenadores donde se ha trabajado, un sola celda de césped tardaba del

orden de 5 minutos en reenderizarse.

Tras esto se aconseja a los futuros alumnos que sean muy conservadores en su proyecto

si no quieren tener que modificarlo y eliminar cosas en las que hayan empleado muchas

horas de trabajo por unas limitaciones impuestas por el ordenador y los requerimientos

computacionales de Blender.

ANEXOS A continuación se van a mostrar dos breves tutoriales sobre el funcionamiento básico

del addon Landscape y el NLA Editor que anteriormente se mencionaron:

Addon Landscape: Aunque en el proyecto se han utilizado los parámetros básicos, este

addon tiene muchísimas posibilidades para la creación de escenario. Sólo se podrá tener

acceso a esos parámetros si una vez añadida la malla del Landscpape esta no se ha

escalado, rotado o movido.

El acceso a esos parámetros se hace desde la ventana en 3D pulsando la letra T, donde

saldrá el menú desplegable con el siguiente ménu.

Desde este menú se pueden seleccionar distintos parámetros.

Por defecto es recomendable dejar pulsado el cuadro de selección

Mesh update, ya que de esta forma se podrán ver los cambios

realizados en tiempo real.

Si queremos que sea la malla base sea una esfera en vez de un

plano habrá que pulsar el cuadro de selección Sphere.

Si queremos que las esquinas sean redondeadas, para que sean

unas montañas tipo colina es recomendable pulsar Smooth.

El tamaño de la malla y el numero de subdivisiones que se quiere

de esta, se selecciona con los menus Subdivisions y Mesh Size ,

hay que destacar que el numero de subdivisiones que se elijan al

final condicionará el tiempo de rendering ya que implicará más

polígonos.

El tipo de terreno que queremos se puede elegir mediante el el

menú desplegable que aparece en la figura, desde ahí podemos

elegir un terreno montañoso, o por ejemplo un barranco si

elegimos el tipo Shattered_hTerrain, realmente lo que se está

eligiendo es el tipo de ruido utilizado.

[ZOO WAR] Memoria proyecto final – 2. Componentes

Síntesis y animación de imágenes 2012/2013 Página 14

El parámetro Basis nos permite elegir el tipo de base de ruido

que se utiliza para la generación del terreno, y una vez elegido ya

podemos elegir la cantidad de ruido que utilizamos para esa base

( con Noise Size).

Los demás parámetro (Random Seed, Depth, Dimension y

Lacunarity) se utilizan para personalizar nuestro terreno, y lo

mejor es probar distintas combinaciones hasta dar con la que

más nos convenga.

Los últimos parámetros (Height, offset, Plateau, Sealevel) se

utilizan para configurar distintos parámetros respecto a la altura

del terreno.

Por último el menú desplegable Falloff, realiza ajustes respecto a

la caída del terreno, por ejemplo si se elige caída tipo X, se verá

que la montaña se genera en dirección del eje Y, es decir que

existe mucha mayor caída en el eje X. En las figuras de abajo se

pueden ver dos capturas con las caídas en el eje X e Y.

Aunque en el proyecto no se ha utilizado esta herramienta utilizando todos estos

parámetro porque no procedía en ese caso, se ve que utilizando esta herramienta

correcta y precisa y realizando una texturación posterior buena, se pueden conseguir

efectos muy realistas como muestra la imagen siguiente, encontrada en internet.

[ZOO WAR] Memoria proyecto final – 2. Componentes

Síntesis y animación de imágenes 2012/2013 Página 15

NLA Editor: A continuación se muestra un breve tutorial de cómo hacer que se usen dos

animaciones simultaneas en un objeto, utilizando al Ganso usado en el proyecto y

basándonos en los conocimientos adquiridos del Tutorial 10 de

Sandra, que se puede encontrar en el servidor de la asignatura, y los adquiridos de

manera autodidacta en el diseño del proyecto.

Partimos de que tenemos ya hechas las dos animaciones que queremos que se

reproduzcan simultáneamente, en nuestro caso la animación Andar, en la que el ganso

mueve las patas como si estuviera moviéndose y la animación Moverse en la que el

ganso es trasladado de un punto del escenario a otro.

Para la realización de esto hay que entender la definición de :

o Track: Es una pista de animación donde vamos a colocar la sucesión de

animaciones individuales asociadas a un objeto. Se pueden crear varias pistas

por cada objeto.

o Stripe: Es la animación en si misma, que hemos hecho desde el escritorio 3-

Animation.

En primer lugar nos tenemos que situar en el escritorio 6-Actions existente en nuestro

proyecto Blender. A continuación tenemos que pulsar el símbolo de nieve (en la imagen

adjunta hay que pulsar donde pone 2) para que se cree una pista con el stripe que

aparece en el nombre. A continuación hay que crear una nueva pista, esto se hace

pulsando el botón Add del menú inferior( paso 3), y en el desplegable que aparece

pulsamos AddTrack.

[ZOO WAR] Memoria proyecto final – 2. Componentes

Síntesis y animación de imágenes 2012/2013 Página 16

Una vez hecho eso, seleccionando la pista recién creada volvemos a tocar el botón Add,

pero esta vez tocamos en AddActionStrip, en ese momento nos saldrá una ventana con

las animaciones disponibles en el proyecto, en este caso tendremos que añadir un stripe

de la animación Andar, ya que la de moverse ya se añadió anteriormente.

Si en este momento probamos a mover la barra verde a lo largo de las dos pistas,

observaremos que en el ganso sólo se reproduce la animación Andar. Esto se debe a que

en Blender cuando intentamos que se reproduzcan dos animaciones simultáneas existe

un control de jerarquía. En el caso actual las dos animaciones tienen jerarquía 1, por lo

que se reproducirá únicamente la pista que esté en la zona superior del NLA Editor-

Para solventar esto, estando en la pista que contiene el stripe de la animación de andar,

hay que pulsar n, se mostrará un menú de herramientas en el que hay que buscar la

pestaña Evaluation, activar el cuadro de selección Animated Influence, y elegir un valor

menor que 1 como influencia.

En este caso vamos a elegir un valor de influencia de 0.8, aunque habría que probar

distintos valores para ver cual da mejor resultado.

Una vez hecho lo anterior, observamos en la línea de tiempos que la animación de andar

ocupa menos frames que la animación moverse. Es decir que hay que encontrar una

forma que la animación de andar “ocupe” los mismos frames que la animación moverse.

Esto se consigue mediante la configuración de escalado y repetición que tiene el NLA

Editor para cada uno de los stripes.

Se podría pensar que escalando la animación andar al doble se solventaría este

problema, pero lo único que se conseguiría es que pareciera que el ganso da pasos muy

grandes, algo que no es nada realista. Por ello lo que vamos a hacer es repetir la

animación dos veces (mediante Repeat), veremos que aún así el ganso parece que da

pasos muy grandes, por lo que habría que ajustar esos dos parámetros hasta dar con

una configuración a nuestro gusto. En este caso optamos por un escalado de 0.5, y

repetir la animación 4 veces.

[ZOO WAR] Memoria proyecto final – 2. Componentes

Síntesis y animación de imágenes 2012/2013 Página 17

De esta forma se conseguiría la combinación de los dos movimientos y aunque no se han

explicado todos los parámetros del NLA Editor puede servir como una introducción

básica.

Los verdaderos problemas del NLA Editor aparecen cuando se quieren combinar varios

movimientos de forma encadenada, ya que el problema existente en Blender es que

cuando creas una animación la creas en una posición absoluta, de forma que no valdría

con una animación de moverse únicamente, se necesitaría una animación de moverse

para cada movimiento en cada punto del escenario que se va a realizar, por lo que se

recomienda para futuros estudiantes que si optan por utilizar NLA Editor, tengan desde

un primer momento completamente claro cuales van a ser los movimientos de sus

personajes, para evitar el tener que realizar nuevas animaciones mediante keyframes

cuando se está en otro punto del proyecto.

También se recomienda tener en cuenta que al usar influencias y tener unos stripes más

peso que otros, habrá animaciones que parezca que no se realizan al 100% , sobre todo

las relativas a movimientos en el espacio como pueden ser moverse por un plano.

[ZOO WAR] Memoria proyecto final – 2. Componentes

Síntesis y animación de imágenes 2012/2013 Página 18

Moverse por la interfaz:

En el caso de que existan dificultades para moverse a tiempo real por el proyecto de

ZooWar se recomienda lo siguiente:

o Visualizar los objetos de forma sólida o mediante WireFrames para que la carga

del procesador sea menor.

o Desde el escritorio 1-Model hacer que no se muestren los objetos que no nos

interese visualizar en un momento dado, como pueden ser las montañas o la

cúpula celeste.

En nuestro caso, no tuvimos grandes problemas para la visualización en tiempo real de

las animaciones. Lo único que tuvimos que hacer fue poner vista sólida de los objetos

cuando los estábamos animando para que fuera a una velocidad aceptable. Y por

comodidad pusimos en ocultos las montañas y la cúpula celeste cuando no estábamos

utilizándolas.

Para que los futuros usuarios de nuestro proyecto puedan acceder desde cualquier

ordenador, se ha guardado el proyecto final con todas las visualizaciones en wireframe,

y sin que se vea el cielo.