35

Dise ño G ráfico 3 D So ftw are L ibre co n · ( Una Intro du cció n Práctica a B le nde r ) Actualizado a V. 2.33 Blender 2.33 Yafray 0.0.6 Wings3D 0.98 GIMP 1.2.4. ste manual

  • Upload
    others

  • View
    3

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Dise ño G ráfico 3 D So ftw are L ibre co n · ( Una Intro du cció n Práctica a B le nde r ) Actualizado a V. 2.33 Blender 2.33 Yafray 0.0.6 Wings3D 0.98 GIMP 1.2.4. ste manual

Carlos González MorcilloEscuela Superior de Informática de Ciudad Real

Universidad de Castilla-La [email protected]://www.nicodigital.com

Diseño Gráfico 3Dcon Software Libre

( Una Introducción Práctica a Blender )

Actualizado a V. 2.33Blender 2.33 Yafray 0.0.6 Wings3D 0.98 GIMP 1.2.4

Page 2: Dise ño G ráfico 3 D So ftw are L ibre co n · ( Una Intro du cció n Práctica a B le nde r ) Actualizado a V. 2.33 Blender 2.33 Yafray 0.0.6 Wings3D 0.98 GIMP 1.2.4. ste manual

ste manual que tienes en tus manos (o en tupantalla) es una recopilación de los guionesde prácticas de la asignatura "Animación para

la Comunicación", impartida en la Escuela Superiorde Informática de Ciudad Real (Universidad de Cas-tilla-La Mancha). Por esta razón, encontrarás en eltexto referencias a conceptos que fueron explicadosen clases de teoría, o se completaron en la misma se-sión de prácticas.

E

Esta nueva versión de los apuntes, del curso 2003-2004, incluyen algunas sesiones totalmente nuevas(como la práctica de Render Realista empleando Ya-fray), y en general, han sido revisados y ampliadosutilizando las últimas versiones de Blender.

Este documento no pretende ser un manual exhaus-tivo de Blender, ni explicar toda la funcionalidad dela herramienta. Simplemente trata de facilitar latoma de contacto (habitualmente dolorosa) con unaherramienta de diseño 3D de características profe-sionales. El planteamiento es tratar de obtener, en 30horas de prácticas, una visión general del ciclo de de-sarrollo en un proyecto de síntesis de imágenes tridi-mensionales por computador, incluyendo modelado,texturizado, animación, render y composición de ví-deo.

¿Y por qué utilizar Software Libre?. Buena pregun-ta... Responderé con otra: ¿Y por qué utilizar Softwa-re Propietario (o Privativo)?. No hay, en principio,diferencias notables de calidad en los resultados ob-tenidos por artistas profesionales utilizando Blender,Gimp, etc... con sus equivalentes en software comer-cial. El uso de software libre nos da, precisamente, lalibertad de utilizar el software en cualquier ámbito,en multitud de sistemas operativos, e incluso de rea-lizar adaptaciones del programa a nuestras necesida-des; dejando la puerta abierta a futuras ramas de de-sarrollo. Por otro lado, podemos tener la seguridadde que el programa siempre va a seguir vivo y actua-

lizado con las necesidades de los usuarios (al menos,mientras exista la comunidad de desarrolladores delsoftware que, difícilmente puede desaparecer). La ve-locidad de crecimiento de Blender y de los progra-mas y plugins que hay alrededor es impresionante.Casi mensualmente aparece una nueva versión conuna enorme lista de mejoras importantes. Es, sinduda, un fenómeno imparable. Por estas y otras razo-nes estoy cada día más convencido que la apuestarealizada por el Software Libre es la acertada. En estedocumento se hace referencia a varios programas (lamayoría libres o, en su defecto, totalmente gratuitos-Como ZweiStein o Teddy-).

Será bienvenida cualquier sugerencia sobre estosapuntes, así como notificaciones de errores encontra-dos en la dirección [email protected].

Finalmente, quiero agradecer a todos los compañe-ros de Nicodigital la ayuda prestada; la lista de nom-bres sería muy, muy larga. Como no podía ser deotra forma, a los alumnos de Animación de la ESI deCiudad Real, por el interés mostrado en la asignatu-ra; todo el esfuerzo por mi parte merece la pena. Ypor último, y no menos importante, a Nines y a mifamilia, por apoyarme en todos los berenjenales enlos que me meto :-)

En definitiva: espero que este documento te sirvapara comenzar en este mundillo de la síntesis deimágenes tridimensionales por computador. Creoacertado incluir en este punto un refrán que resumea la perfección el ciclo de aprendizaje en diseño 3D:

"Díjole el perro al hueso, Si tú eres duro, yo tengo tiempo"

Ánimo y... Happy Blending!

Carlos González Morcillo28 de Mayo de 2004

Introducción¿Qué es este documento? ¿Por qué Software Libre?

Algo sobre Blender, Yafray, Gimp, Wings...

Page 3: Dise ño G ráfico 3 D So ftw are L ibre co n · ( Una Intro du cció n Práctica a B le nde r ) Actualizado a V. 2.33 Blender 2.33 Yafray 0.0.6 Wings3D 0.98 GIMP 1.2.4. ste manual

l interfaz que presenta Blenderal arrancar es el mostrado enla Figura 1. Todas las ventanas

de Blender son personalizables, en elsentido de que podemos dividir lapantalla como nos resulte más cómo-do y situar en cada porción el tipo de

ventana que queramos. Por defectoBlender arranca la pantalla con dosdivisiones; la ventana superior detipo 3D View y la inferior de tipoButtons Window . Podemos cam-biar el tipo de ventana pinchando enel botón y seleccionando alguno delos tipos que se muestran en la si-guiente imagen:

E

La vista 3D nos muestra un cuadradode color rosa. Este cuadrado es uncubo que crea Blender al comenzar atrabajar. El color rosa indica que estáseleccionado. El punto inferior de co-lor amarillo es el foco por defecto, yla pirámide negra de la derecha re-presenta la cámara. El resto de cua-drados de la escena forman lacuadrícula que nos servirá para co-locar los objetos de la escena conprecisión.

El círculo de color rojo situado en elcentro de la ventana es el puntero3D. Todos los elementos que se aña-dan a la escena lo harán donde seencuentre el puntero 3D.

Antes de empezar a trabajar, perso-

nalizaremos un poco el entorno deBlender. Dividiremos la ventana 3Dcon la distribución que se muestra enla Figura 2. Para ello, nos situaremoscon el ratón en la zona de división dedos ventanas (por ejemplo, entre lazona de división entre la ventana 3Dy la ventana de Botones) y con la

ventana 3D iluminada (seleccionada),haremos y elegiremos Split Area.Partiremos la pantalla hasta conse-guir una disposición del área de tra-bajo como semuestra en laFigura 2. Pode-mos eliminarlas cabeceras,así como si-tuarlas en laparte superiorde las ventanashaciendo so-bre ellas y se-leccionando NoHeader.

Para rotar el punto de vista de unaventana 3D, arrastraremos con pinchado. En ratones de dos botones,con ¥ pulsada, arrastraremos elratón con . Podemos hacer zoomen cualquier ventana (vista 3D, ven-tanas de botones, etc...) mantenien-do ¦ pulsado, y arrastrando . En

ratones de dos botones, mediante¦ ¥ . Para desplazar el punto devista (horizontal y verticalmente),utilizaremos § . De igual forma,

con ratones de dosbotones utilizaremos¥ § .

Cambiaremos elmodo de vista decada vista 3D me-diante atajos de te-clado o los botonesdestinados a tal efec-to. Pulsando 5 en elteclado numérico,cambiaremos entre

Animación para la Comunicación Escuela Superior de Informática Ciudad Real (UCLM) Práctica 1 [Página 1]

© 2004 Carlos González Morcillo. Se permite la copia, distribución y/o modificación de este documento bajo los términos de la licencia de documentaciónlibre GNU, versión 1.1 o cualquier versión posterior publicada por la Free Software Foundation; sin secciones invariantes. Puede consultar esta licenciaen http://www.gnu.org

Práctica 1: Introducción a BlenderAnimación para la Comunicación ::: ESI-CR ::: UCLMCarlos González Morcillo :: [email protected] :: http://www.inf-cr.uclm.es/www/cglez

Esta primera práctica nos servirá como toma de contacto con la herramien-ta. Personalizaremos el entorno, añadiremos algunos objetos básicos y, fi-nalmente, renderizaremos una escena sencilla.

Software: Blender 2.32. Fecha: 04/Marzo/2004

Figura 1

Figura 3

Figura 2

Page 4: Dise ño G ráfico 3 D So ftw are L ibre co n · ( Una Intro du cció n Práctica a B le nde r ) Actualizado a V. 2.33 Blender 2.33 Yafray 0.0.6 Wings3D 0.98 GIMP 1.2.4. ste manual

proyección ortográfica y perspectiva.Con 0 tendremos la vista de la cáma-ra. 1, 3, 7 nos darán las vistas de laescena superior, frente, y perfil res-pectivamente.

Una vez configuradas las vistas comose muestra en la Figura 2, vamos apersonalizar nuestra escena. Con elcubo por defecto seleccionado (selec-cionamos objetos con sobre ellos),en color rosa, pulsaremos  y lo qui-taremos de la escena. Realizaremosla misma acción con la lámpara de laescena. Añadiremos un objeto básicode Blender; por ejemplo, la cabezade Suzanne. Para insertar nuevoselementos a la escena, pulsaremosÎ, y elegiremos Add, Mesh, Mon-key. Cuando insertamos un objetoen la escena, lo hará en modo deedición de vértices. Para volver almodo de edición de objeto, pulsare-mos º.

Algunas operaciones que podemosrealizar con el objeto es rotarlo; conél seleccionado pulsamos R y despla-zamos el ratón. Si pulsamos ahora X,Y o Z, delimitaremos la rotación aese eje. Si rotamos con la tecla §pulsada, lo haremos en modo de pre-cisión. Si tenemos la tecla ¦, lo ha-remos de 5 en 5 unidades. La infor-mación sobre las unidades en que seestá realizando la operación apareceen la cabecera de la ventana 3D detrabajo.

Otra operación básica es el desplaza-miento (tecla G del inglés Grabber).Si desplazamos con la tecla ¦ pulsa-da, lo haremos ajustándonos a la re-jilla. Al igual que con la rotación, latecla § se corresponde con elmodo de precisión.

El escalado se realiza con la tecla S.Para restringir el escalado en algunadimensión, pulsaremos S, despuéslas letras correspondientes a los ejescartesianos X, Y, Z. Las restriccionesse realizan sobre el sistema de coor-denadas local del objeto.

Todas las operaciones anteriorespueden realizarse de forma numéri-ca, si con el objeto seleccionado pul-samos N. Aparecerá una ventanacomo la que se muestra en la Figura3. Los valores numéricos pueden in-

troducirse por teclado si hacemosclick con sobre una entrada detexto mientras mantenemos pulsadala tecla §.

Ayudándonos de las vistas de frente,perfil y superior, situaremos el pun-tero 3D debajo de la cabeza del mo-no. Recordemos que la posición delpuntero 3D se cambia pinchando con

sobre la vista.

Una vez situado correctamente elpuntero, añadiremos un plano a laescena que servirá de "suelo" al ob-jeto anterior. Para ello, y con el pun-tero del ratón situado en la vista su-perior, pulsaremos Î, Add, Mesh,Plane. Saldremos del modo de edi-ción de vértices del objeto con º, ylo escalaremos para que cubra elsuelo de la escena. Deberemos obte-ner una configuración similar a la Fi-gura 4.

El Render se realiza a través delbotón del grupo de Escena (tam-bién mediante la tecla µ), Render

Buttons , y pinchando en el botónmarrón de RENDER o bien con elatajo de teclado ·. ¿Por qué no salenada?. No hemos iluminado la esce-na. Ocultaremos la ventana de ren-der pulsando ¶. Añadiremos una luzde tipo Hemi en la posición quemuestra la Figura5.

Para ello, situaremos el cursor 3D enla posición adecuada. Añadiremos laluz mediante Î Add, Lamp. Cam-biaremos el tipo de lámpara con elbotón de gestión de lámparas delgrupo de sombreado (o pulsando°). Seleccionamos el tipo de focoHemi. Habrá que orientar el focopara que apunte al objeto (utilizandola rotación R).

Realizaremos un render y comproba-remos que el resultado es similar almostrado en la Figura 6. Podemossalvar el render, pulsando ®. El for-mato de la imagen que salvaremos

se selecciona en el apartado delbotón de render , dentro de la pes-taña Format.

Elegiremos, por ejemplo, JPG conser-vando la calidad de la imagen en unvalor alto (Quality entre 80-95).

Es necesario indicar la extensión deforma implícita en la imagen queguardemos desde Blender. De estaforma, en nuestra primera prácticadebemos indicar que el fichero resul-tado se va a llamar "resultado.jpg".

Animación para la Comunicación Escuela Superior de Informática Ciudad Real (UCLM) Práctica 1 [Página 2]

Figura 6

Figura 5

Figura 4

Page 5: Dise ño G ráfico 3 D So ftw are L ibre co n · ( Una Intro du cció n Práctica a B le nde r ) Actualizado a V. 2.33 Blender 2.33 Yafray 0.0.6 Wings3D 0.98 GIMP 1.2.4. ste manual

rrancamos Blender y elimina-mos el cubo y la lámparacreados por defecto. Pincha-

mos en View (en la cabecera de lavista 3D) y elegimos BackgroundImage. Pinchamos luego en UseBackground Image. La ventana quenos aparece (ver Figura 1) nos per-mite cambiar la imagen de fondo, va-

riar su situación (X Offset e Y Offset)y el nivel de transparencia (Blend).Cargamos como fondo la imagen lo-gouclm.jpg. Hecho esto, cerramos laventana Background Image.

A

Vamos a trazar el contorno del logo-tipo por medio de una curva. Paraello, añadiremos una a la escena.Pulsamos Î Add, Curve, BezierCurve. Con la curva añadida, y sinsalir del modo de edición (sin pulsarº), vamos a los botones de edición (

o ´) y convertimos la curva a polí-gono, pinchando en el botón Poly delgrupo Convert. Esto nos permitirá

trabajar de forma más cómoda.Cuando hayamos ajustado los puntosde control al logotipo, convertiremosde nuevo a cuva de Bezier, ajustandola tensión en los tramos que lo re-quieran.

Por defecto, tenemos todos los vérti-ces seleccionados (todos en color

amarillo). Pulsamos la teclaA y los deseleccionamos to-dos (aparecen en rosa).Ahora desplazaremos losvértices al contorno exte-rior del logotipo (seleccio-namos cada vértice de for-ma individual con , y des-plazamos pinchando unavez la tecla G). La curvaoriginal está formada por 6vértices. Los situaremos enlas posiciones 1 .. 6 tal ycomo muestra la figura 2.Podemos realizar zoom enla vista 3D (¦ + ) para

tener una mayor precisión a la horade situar los vértices.

Para añadir vértices: manteniendopulsado ¦, haremos . De esta for-ma, añadiremos los vértices 7 y 8.Para cerrar la figura (es decir, añadirla arista que une 8 con 1), pulsare-mos la tecla C. Podríamos pensarque hacen falta más vértices, porejemplo, entre 6 y 7. Sin embargo,no es necesario ajustar mejor la su-perficie en las secciones curvas, yaque lo haremos por medio de la ten-sión en la curva tipo Bezier.

Seleccionamos de nuevo todos losvértices , pulsando la tecla A (debenquedar todos en color amarillo). Vol-vemos a los botones de edición º yconvertimos la curva a tipo Bezier.Deben aparecer unos segmentos decolor verde. Estos son los segmentosde tangente, que especifican el gradode tensión en la pendiente de cadasección de curva. Deseleccionamostodos los vértices y elegimos uno delos que requieren curvatura (por

ejemplo el 6). Podemos alinear losmanejadores de tensión de la curvapulsando H si en algún momento esnecesario. tura en cada sección de lamisma.

Ajustaremos los puntos de tangentehasta obtener la geometría que seajuste bien a la imagen de fondo.Cuando hayamos terminado, volvere-mos al modo de edición de objeto º,y pulsaremos la tecla Z para obtenerla representación sombreada, tal ycomo muestra la figura 3. Volvemosa la representación con líneas pul-sando de nuevo la tecla Z.

Añadiremos otras curvas de Bezier ala escena y procederemos de formasimilar, convirtiendo a polígono,ajustando puntos y volviendo a con-vertir a Bezier para modelar las otrastres secciones que definen el logoti-po. Cuando hayamos terminado, po-demos quitar la imagen de fondo pul-sando de nuevo View, BackgroundImage...

Cada curva creada es un objeto inde-pendiente; podemos unirlas creandouna única entidad si las selecciona-mos todas con (manteniendo §pulsada), y después pulsando ¦JJoin Selected Curves.

Pasaremos a extrusionar la curvapara obtener el modelo 3D. Rotare-mos la vista para tener un ángulomejor a la hora de ver la operaciónrealizada. Elegimos en modo de se-

Animación para la Comunicación Escuela Superior de Informática Ciudad Real (UCLM) Práctica 2 [Página 1]

© 2004 Carlos González Morcillo. Se permite la copia, distribución y/o modificación de este documento bajo los términos de la licencia de documentaciónlibre GNU, versión 1.1 o cualquier versión posterior publicada por la Free Software Foundation; sin secciones invariantes. Puede consultar esta licenciaen http://www.gnu.org

Práctica 2: Modelado y ComposiciónAnimación para la Comunicación ::: ESI-CR ::: UCLMCarlos González Morcillo :: [email protected] :: http://www.inf-cr.uclm.es/www/cglez

Como continuación de la práctica anterior, aprenderemos a crear en Blenderobjetos más complejos, partiendo de un diseño 2D. Veremos cómo trabajarcon curvas y, finalmente, compondremos el resultado con GIMP.

Software: Blender 2.32. + GIMP 1.2.4. Fecha: 11/Marzo/2004

Figura 1

Figura 2

Figura 3

Page 6: Dise ño G ráfico 3 D So ftw are L ibre co n · ( Una Intro du cció n Práctica a B le nde r ) Actualizado a V. 2.33 Blender 2.33 Yafray 0.0.6 Wings3D 0.98 GIMP 1.2.4. ste manual

lección de objeto,cambiamos los valoresde extrusión y redon-deado tal y como semuestra en la figura 4.Podemos cambiar losvalores en los botonesde inserción, pinchan-do y arrastrando sobreellos, o bien mantien-do pulsada la tecla §y haciendo sobreellos.

Vamos a aplicarle unmaterial sencillo almodelo. Selecciona-mos una de las partesy pinchamos en elbotón de materiales,tal como muestra la fi-gura 5 (o bien pulsa-mos °). Como no hayningún material en laescena, tendremosque añadir uno nuevo,que luego aplicaremos al logotipo. Sepueden crear tantos materiales comosean necesarios, pero en este ejem-plo utilizaremos sólo uno. Para crearun nuevo material, pincharemos en

el botón Add New. De todas las pro-piedades que pueden tener los mate-riales, únicamente vamos a definir elcolor. Ajustaremos los valores del co-lor tal y como se indica en la figura6. En próximas sesiones de prácticas,veremos con más profundidad lasopciones de materiales y texturas enBlender.

Daremos un nombre al material quehemos creado; en el botón que he-mos pinchado para añadir el mate-rial, tendremos una caja de texto.Manteniendo pulsado §, pinchamoscon y tecleamos un nombre parael material ,por ejemplo, UCLMRojo. Aplicaremos el material que hemoscreado a las piezas del logotipo. Paraello, lo seleccionamos y, elegimos elmaterial en la lista desplegable demateriales. Podemos activar el modode visualización sólida pulsando Z.

Vamos a renderizarla escena. Situare-mos la cámara paraobtener una vistacomo la que semuestra en la figura7. Añadiremos un

foco de iluminación de tipo Spot.Para ello, insertamos un objeto detipo Lamp a la escena y lo cambia-mos a tipo Spot. Orientamos el focopara que apunte al logo 3D, rotándo-

lo con ayuda de las vistas su-perior, frontal y lateral. La si-tuación del foco deberá ser si-milar a la mostrada en la figu-ra 7. Probamos a renderizarla escena ·. Si el objeto salemuy oscuro, podemos ajustarla intensidad del focoen los botones de foco¯, en el campo Energy

a un valor superior. Ajustare-mos las opciones de renderi-zado como se indica en la fi-gura 8.

Activamos el botón de Sha-dows para que el motor derenderizado calcule las som-bras de la escena. OSA(OverSAmpling) con valor 16hace que el antialiasing seaplique con la mayor intensi-dad. Seleccionamos uno delos tamaños predefinidos pin-chando en PC (640x480). Con 100%indicamos que el renderizado se hagaal tamaño total elegido.

Cuando hacemos pruebas es intere-sante poner este valor al 50% o al25% para que la generación de laimagen lleve menos tiempo. Con

RGBA, indicamos que la imagen re-sultado debe tener canal Alpha detransparencia. Así, tendremos queseleccionar un formato que soportecanal Alpha (como Targa; *.TGA). Elcanal Alpha codifica, en tonos de gri-ses, qué parte de la imagen es deobjeto y qué parte es el fondo. Unvalor de negro indica que es fondo,mientras que blanco indica objeto só-lido. Los tonos de gris indican obje-tos semitransparentes. El resultadode renderizar la escena debe ser si-milar al mostrado en la figura 9. Lafigura 10 se corresponde con el canalAlpha de la imagen resultado. Pode-mos cambiar el color de fondo acce-diendo a las propiedades del mundoy cambiando el color zenith (figura11).

Guardamos la imagen como solido.t-ga. Salvamos también el fichero deblender y cambiamos el material.Nos vamos al menú de materiales yasegurándonos que estamos traba-jando con MA:UCLMRojo, cambiamosel color del material en las tres com-ponentes (R,G,B) a 0.300. Además,

Animación para la Comunicación Escuela Superior de Informática Ciudad Real (UCLM) Práctica 2 [Página 2]

Figura 4

Figura 8

Figura 7

Figura 5

Figura 6

Page 7: Dise ño G ráfico 3 D So ftw are L ibre co n · ( Una Intro du cció n Práctica a B le nde r ) Actualizado a V. 2.33 Blender 2.33 Yafray 0.0.6 Wings3D 0.98 GIMP 1.2.4. ste manual

activamos el botón de Wire (situadoen el centro). Renderizamos de nuevo la escena;debemos obtener un resultado similaral de la figura 12. Sin haber cambia-do ninguna opción de renderizado,guardamos la imagen resultantecomo alambre.tga.

Salvamos el proyecto de blender yabrimos GIMP, el programa de com-posición y retoque fotográfico GNU.Cargamos las imágenes solido.tga yalambre.tga. Comprobamos que elfondo de la imagen no es negro; estáformado por "cuadritos". Esto indicaque GIMP ha importado las imágenescon el canal de transparencia correc-tamente.

Recordemos que las capas actúancomo "acetatos". El orden de las ca-pas importa (al igual que si coloca-mos una transparencia delante deotra). Renombraremos la capa de laimagen sólida. Para ello, nos situa-mos sobre la capa y haciendo Edi-tar atributos de capa, le pondremoscomo nombre "solido". Añadiremosuna capa nueva, que esté rellena decolor blanco. Para ello, pincharemosen el botón , y le pondremos como

nombre Fondo. Lacapa se ha situadodelante del logo. Pin-charemos en la flecha"abajo", como indicala figura 13, para or-denar las capas.

Seleccionamos laventana donde se haabierto el ficheroalambre.tga. Hace-mos sobre laimagen y seleccio-namos editar, co-piar (o bien pulsa-mos ¦C). Después,nos vamos a la ima-gen solido, y pega-remos el logo dealambre como unanueva capa. Paraello, editar, pe-gar (o ¦V). Vemosque aparece en laventana de capascomo una selecciónflotante. Para gene-rar una capa nuevacon la imagen, pincharemos de nue-vo en el botón de nueva capa .Renombramos la capa como "alam-bre".

Situamos la capa alambre entre lacapa solido y la capa fondo. En laventana de Selección de brocha, se-leccionamos una redonda y pincha-mos en Nuevo. Con esto, haremosuna brocha personalizada partiendode la que hemos seleccionado.

Ajustamos los parámetros a: radio= 44.8, dureza = 0.2 aprox.. Ángu-lo y razón de aspecto los dejamoscomo están. Damos el nombreque queramos a la brocha. Se-leccionamos la brocha, la he-rramienta de borrado , ynos vamos a la capa so-lido. Ajustamos la opa-cidad de la goma (enla ventana de op-ciones de herra-mienta) a 25aprox. Hechoesto, borra-mos unaparte de lacapa sólido(la derecha,por ejemplo).Hacemos otrapasada consi-guiendo unefecto de degra-dado, como semuestra en el re-sultado final.

Para terminar,añadimos un efec-to de sombra a la

capa alambre. Seleccionamos la capa,nos vamos a la imagen y hacemos Script-Fu, Sombra, Sombra Arrojada.Podemos dejar los parámetros tal ycomo están y aceptamos.

Vemos que, debajo de la capa alam-bre se ha creado una capa llamadaDrop-Shadow. Si no nos gusta el re-sultado, eliminamos la capa (pinchan-do en el botón del cubo de basura), yprobamos a cambiar los parámetrosdel script. Para terminar, pinchamoscon sobre la imagen, y guardamos

el fichero con formato XCF (elformato nativo de GIMP),

que permite almacenar elfichero tal y como esta-

mos trabajando (capas,canales, etc...).

Si queremos utili-zar la imagen

desde otrasaplicaciones,

tendríamosque salvar-

lo en unformato

comoJPG.

En estecaso GIMP

nos advierteque perderemos

la informaciónacerca de las capas,

canales, etc....

El formato de GIMP está pen-sado para ser utilizado únicamen-

te desde esta herramienta y no esportable. Un formato ampliamenteusado es PSD de Adobe Photoshop.

Animación para la Comunicación Escuela Superior de Informática Ciudad Real (UCLM) Práctica 2 [Página 3]

Figura 9

Figura 11

Figura 12

Figura 10

Figura 13 Figura 14

Page 8: Dise ño G ráfico 3 D So ftw are L ibre co n · ( Una Intro du cció n Práctica a B le nde r ) Actualizado a V. 2.33 Blender 2.33 Yafray 0.0.6 Wings3D 0.98 GIMP 1.2.4. ste manual

n esta práctica no debemoscentrarnos en obtener un re-sultado exactamente igual al

mostrado en las imágenes, sino endescubrir las posibilidades que nosbrindan Wings3D y Teddy. En próxi-mas sesiones veremos algunas de lascapacidades de modelado de Blender(como superficies de subdivisión).

E

Comenzaremos modelando un cochecon Wings 3D. En esta herramienta,partimos de una forma básica (primi-tiva 3D) y aplicando una serie deoperaciones a nivel de vértice, arista,cara o al objeto global, iremos modi-ficándola hasta obtener el modelo fi-nal. Antes de empezar a trabajar,personalizaremos el modo de despla-zar la cámara por la escena comoBlender ( para rotar, ¦ para ha-cer Zoom...). En el menu superior;Edit, Camera Mode, Camera Mode[Blender].

Añadimos un cubo a la escena con Cube. En la parte superior de la pan-talla aparece una barra de herra-mientas. Las dos pirámides de la iz-quierda nos permiten seleccionar laforma en que se mostrará el objeto(caras o sombreado suave). La partecentral nos permite seleccionar enqué nivel queremos trabajar (vértice,arista, cara u objeto). Cuando un ele-mento está seleccionado (vértice,arista, cara u objeto), aparece en co-lor rojo. Podemos seleccionar de for-ma incremental elementos de la es-cena. En cualquier modo de selección

que nos encontremos, podemos utili-zar las teclas + y - para extender ocontraer la selección realizada a loselementos vecinos [realizar la pruebaseleccionando un vértice del cubo ypulsar + dos veces y luego -]. Pode-mos deseleccionar todos los elemen-tos pulsando Î. Wings 3D imple-menta múltiples niveles de"undo/redo", que podemos recuperarcon ¦¥Z y ¦§Z. Con obtene-mos el conjunto de operaciones quepodemos aplicar a los elementos se-leccionados. Por ejemplo, partiendodel cubo que hemos insertado y se-leccionando las dos aristas verticalesde la cara frontal, haremos Con-nect. Con esto, obtenemos una nue-va arista que conecta las dos anterio-res, tal y como se muestra en la figu-ra 1.

Moveremos la arista recién creada li-geramente hacia abajo (en el eje y),haciendo Move, Y. En la cara pos-terior del cubo, añadiremos otra aris-tas y la moveremos ligeramente arri-ba. Seleccionando las caras inferio-res, extrusionaremos en la direccióndel vector normal de cada cara: Extrude, Normal. Ajustaremos lasaristas de las caras extrusionadas(desplazamientos en el eje Z), hastaobtener algo similar a la figura 2.

Seleccionaremos las dos aristas lon-gitudinales que forman el capó delcoche, y las conectaremos (obtenien-do una arista central). Esta nuevaarista, la levantaremos ligeramente

para comenzar a darle forma. Selec-cionaremos las tres aristas, y aplica-remos Cut, 3. Con esto, obtene-mos dos nuevos vértices por arista(las hemos cortado en 3 partes). Uti-lizaremos ahora (trabajando a nivelde vértice) la orden de Connect.Con esto, obtenemos cuatro nuevasaristas que unen los seis vérticescreados con la orden anterior. Proce-deremos de forma similar para mo-delar el hueco de los faros y el para-choques. Desplazando las aristas ob-tenidas, deberemos obtener un resul-tado similar a la figura 3.

Seleccionaremos las caras que for-man la luna delantera y los faros.Aplicaremos Inset y a continua-ción Extrude, Normal (hacia el in-terior). Realizaremos el triángulo dela zona central del capó seleccionan-do el vértice Bevel. El resultado deestas operaciones es el mostrado enla figura 4. Continuaremos dividiendolas caras laterales del coche, ajustan-

Animación para la Comunicación Escuela Superior de Informática Ciudad Real (UCLM) Práctica 3 [Página 1]

© 2004 Carlos González Morcillo. Se permite la copia, distribución y/o modificación de este documento bajo los términos de la licencia de documentaciónlibre GNU, versión 1.1 o cualquier versión posterior publicada por la Free Software Foundation; sin secciones invariantes. Puede consultar esta licenciaen http://www.gnu.org

Práctica 3: Modelado con Wings3DAnimación para la Comunicación ::: ESI-CR ::: UCLMCarlos González Morcillo :: [email protected] :: http://www.inf-cr.uclm.es/www/cglez

El objetivo de esta sesión es aprender a utilizar dos herramientas de mode-lado que destacan por su facilidad de uso y potencia: Wings 3D y Teddy.Estudiaremos Wings3D con más detalle por ser mucho más versátil.

Software: Wings3D 0.98 + Teddy 1.0 + Blender 2.32 + IOSuite 0.6 Fecha: 18/Marzo/2004

Figura 1

Figura 2

Figura 3

Figura 4

Page 9: Dise ño G ráfico 3 D So ftw are L ibre co n · ( Una Intro du cció n Práctica a B le nde r ) Actualizado a V. 2.33 Blender 2.33 Yafray 0.0.6 Wings3D 0.98 GIMP 1.2.4. ste manual

do las aristas y vértices resultantestal y como se muestra en las figuras5 y 6. En este caso, además, se haajustado la altura del techo.

Resulta muy útil la herramientaTweak (Menú, Tools, Tweak). Nospermite desplazar los vértices del ob-jeto libremente (cambiando el puntode vista y pinchando-arrastrando con

). Saldremos de este modo de edi-ción cuando hagamos . Podemosutilizar el modo "magnet" (pulsando1), en el que desplazaremos gruposde vértices según el radio de magne-tización (se puede variar pulsando +y -). Debe quedarnos claro que eldesplazamiento en este modo es de-pendiente del punto de vista de laescena. Por tanto, para obtener elresultado esperado, tendremos querealizar multitud de rotaciones de cá-mara. La figura 7 muestra una captu-ra de edición en este modo.

Para modelar las ruedas, primeroañadiremos un cilindro a la escena,escalándolo respecto del eje Y. Se-leccionaremos las caras superior einferior, y después Intrude. Conesto, obtendremos una especie de"canuto" (ver figura 8). Insertamosotro cilindro, que escalamos para quequede en el interior del anterior, ycon la misma altura. Seleccionamosalternativamente las caras laterales yaplicamos extrusión (sin salirnos delcilindro exterior). Para terminar, se-leccionamos las caras superior e infe-rior del cilindro interior, y las despla-zamos en dirección a la normal, haciael centro. El resultado final de la rue-da es el mostrado en la figura 8.

Seleccionaremos las dos partes queforman la rueda y Combine. De

ahora en ade-lante, Wings 3Dtomará la rue-da como unúnico objeto.Hacemos 3 co-pias más de larueda ( Du-plicate) y la si-tuamos en el modelo del coche. Elmodelo del coche finalizado es el quese muestra en la figura 9. Podemos guardar el modelo paracargarlo desde Blender, en formatoWings3D. Utilizaremos el conjunto descripts IOSuite para importar mode-los en formato .wings. Para ello, des-

comprimimos el archivo IOSuite2.zip,dentro del directorio de scripts deblender (este directorio se encuentradentro del directorio .blender en eldirectorio donde se instaló Blender).En sistemas windows, con la instala-ción por defecto, podemos encontrarel directorio en "C:\Archivos de pro-grama\ Blender Foundation\ Blender\.blender\ scripts".

Hecho esto, abrimos blender, dividi-mos la pantalla y cargamos una ven-tana de tipo Text Editor . Comoqueremos importar el modelo realiza-do, cargaremos el fichero Import.py(que se encuentra comprimido enIOSuite1.zip), y lo ejecutamos con¥P.

En el navegador de archivos queaparece, seleccionaremos el ficherode Wings3D. El Script identifica eltipo de archivo mediante la exten-sión. Por tanto, es necesario que laextensión del archivo sea .wings. En-tre otros, el Script permite leer y es-cribir ficheros en formato .mesh (de

LightFlow), .cob (de Caligari Truespa-ce), .lwo (de LightWave), .raw (mallade triángulos en formato crudo)...

Vamos a modelar el dinosaurio. Abri-mos Teddy. Después de leernos eltutorial que acompaña la distribución,haremos un personaje que importa-remos en Wings 3D (en formato obj),para salvarlo como .wings (que car-garemos en Blender). Podemos obte-ner un dinosaurio como el que semuestra en la figura 10. Aplicaremosmateriales simples a los objetos y,añadiendo un plano como suelo de laescena, renderizaremos la escena enBlender · obteniendo un resultadosimilar al que se muestra en la figura11.

Podemos mejorar el aspecto final deldinosaurio asignando un sombreadosuavizado (y no plano), pinchando enel botón set smooth del apartado deedición ´. Además, podemos variarlas propiedades de la lámpara paraque arroje sombra (cambiando eltipo del foco por defecto a uno detipo Spot. En la siguiente sesiónaprenderemos a asignar texturasmediante UVMapping en Blender.

Animación para la Comunicación Escuela Superior de Informática Ciudad Real (UCLM) Práctica 3 [Página 2]

Figura 5

Figura 6

Figura 7

Figura 8

Figura 9

Figura 10

Figura 11

Page 10: Dise ño G ráfico 3 D So ftw are L ibre co n · ( Una Intro du cció n Práctica a B le nde r ) Actualizado a V. 2.33 Blender 2.33 Yafray 0.0.6 Wings3D 0.98 GIMP 1.2.4. ste manual

l mapeado mediante coorde-nadas UV permite un posicio-namiento de "la piel del obje-

to" muy preciso. El objetivo es textu-rizar un modelo complejo creado concualquier técnica de modelado.

EPartimos del modelo creado en Teddymostrado en la figura 1. Sólo nos he-mos ocupado de construir la mitaddel personaje. La otra mitad la con-seguiremos por "espejo" del estemodelo en Wings 3D. Podéis encon-trar el modelo en el fichero dino.obj,no obstante es aconsejable que in-tentéis construir vuestro propio per-sonaje similar al mostrado en la figu-ra 1.

Importamos el modelo en Wings. Ac-tivamos la vista de los ejes y elmodo ortogonal en la parte supe-rior derecha de la ventana. El modoortogonal nos elimina el efecto deperspectiva. Esto nos permite selec-cionar de forma más precisa conjun-tos de caras y trabajar sin distorsio-nes en la vista 3D.

Pulsando las teclas X, Y, Z veremosel modelo desde estos ejes. Rotare-mos y desplazaremos el modelo paraque se quede perfectamente centra-do respecto del plano YZ, tal y comose muestra en las figuras 2 y 3. Esimportante situar correctamente elmodelo en la operación anterior por-que nos facilitará la siguiente selec-ción de caras.

Con la vista desdeel eje Z, y elmodo de selec-ción a nivel decara, selecciona-remos la mitad iz-quierda del mo-delo pinchando yarrastrando desdela posición A de lafigura 4, a la po-sición B. Obten-dremos una se-

lección de carasbastante precisa,pero habrá que ro-tar la cámara yajustar la selecciónmanualmente, so-bre todo en la zonade las escamas dela espalda y en la

cola. Eliminaremos las caras sobran-tes y borraremos (tecla Â) la selec-ción. El modelo debe quedarnoscomo muestra la figura 5. Para evi-tarnos efectos indeseables con la he-rramienta de espejo, aplanaremosprimero la cara resultante (aún se-leccionada en color rojo) mediante Flatten, Normal (alisar la cara res-pecto de su vector normal). Hechoesto, utilizamos la herramienta deespejo con Mirror para obtener elmodelo del dinosaurio simétrico.Guardamos el modelo como .wings ylo importamos en blender siguiendolos pasos explicados en la prácticaanterior.

Configuramos Blender para obteneruna división de ventanas como semuestra en la figura 6. La ventanade la derecha la cambiamos a tipoImageWindow (§ µ, o seleccionan-do el icono ). Antes de continuar,

veamos algunas opciones del entornoque nos van a ser útiles en estapráctica. En la cabecera de la venta-na 3D, distinguimos los iconos que semuestran en la figura 7 y algunas te-clas útiles. Pulsando la tecla 5 del te-clado numérico, podemos seleccionarel modo de visualización, en perspec-tiva o vista ortográfica. La vista or-

Animación para la Comunicación Escuela Superior de Informática Ciudad Real (UCLM) Práctica 4 [Página 1]

© 2004 Carlos González Morcillo. Se permite la copia, distribución y/o modificación de este documento bajo los términos de la licencia de documentaciónlibre GNU, versión 1.1 o cualquier versión posterior publicada por la Free Software Foundation; sin secciones invariantes. Puede consultar esta licenciaen http://www.gnu.org

Práctica 4: UV-Mapping en BlenderAnimación para la Comunicación ::: ESI-CR ::: UCLMCarlos González Morcillo :: [email protected] :: http://www.inf-cr.uclm.es/www/cglez

En esta sesión aprenderemos a texturizar objetos mediante UV-Mapping enBlender, para poder crear personajes completos y utilizarlos en nuestrosproyectos de animación.

Software: Wings3D 0.98 + Teddy 1.0 + Blender 2.32 + IOSuite 0.6 Fecha: 25/Marzo/2004

Figura 1

Figura 2

Figura 3

Figura 4 Figura 5

Page 11: Dise ño G ráfico 3 D So ftw are L ibre co n · ( Una Intro du cció n Práctica a B le nde r ) Actualizado a V. 2.33 Blender 2.33 Yafray 0.0.6 Wings3D 0.98 GIMP 1.2.4. ste manual

tográfica no agranda los objetoscuanto más cerca están de la cáma-ra. La lista desplegable de iconos dela derecha de la figura 7, nos permiteseleccionar el modo de sombreadodel objeto mientras trabajamos conél. Nos interesará el modo Textured,que nos muestra la textura aplicadaal modelo, y el modo Wireframe (larepresentación de alambre que he-mos utilizado en prácticasanteriores). El conjunto de iconos dela izquierda nos permite especificar

el modo de trabajo con el modelo. Elmodo de trabajo con caras (UV FaceSelect) se puede alcanzar tambiénpulsando la tecla F. El modo de edi-ción de vértices, como hemos vistoen prácticas anteriores, se consiguepulsando la tecla º. Con VertexPaint pasamos al modo de pintado devértices y Texture Paint nos permitepintar la textura directamente sobreel modelo. Por último, el botón si-tado en la cabecera de la vista 3D(no confundir con un botón similar dela ventana de botones) sirve pararenderizar la vista actual. Con ® po-dremos salvarla en el formato quehayamos seleccionado en el menú devisualización µ.

Pasamos al modo de selección de ca-ras (pulsando la tecla F). Vemos queel modelo se ha puesto de color blan-co, y el icono correspondiente de lafigura 7 aparece seleccionado. Selec-cionaremos las caras que forman elcuerpo del dinosaurio, dejando lasextremidades para más adelante.Para realizar la selección de una for-ma más sencilla, y sin salir del modode selección de caras, pulsaremos º.Todos los vértices aparecerán selec-cionados (en color amarillo), y de

igual forma las caras asociadas. Pulsando dos veces la tecla B, activa-remos el modo de selección de vérti-ces mediante un "pincel". El cursoraparecerá delimitado por una circun-ferencia. Podremos añadir caras a la

selección pinchando y arrastrando .Para quitar caras a la selección, pin-char y arrastrar con y ¥ pulsado.Podemos aumentar el radio del pincelcon la tecla +, y disminuirlo con latecla -. Abandonaremos el modo deselección con esta técnica haciendo

. Teniendo en cuenta que la selec-ción de caras "atraviesa" el modelo,seleccionaremos las vistas que noshagan falta para dejar inactivas lascaras de las extremidades del dino-saurio. Podemos volver al modo deedición de caras, pulsando º. El re-sultado de la selección, debe ser elmostrado en la figura 8.

Las extremidades se quedan total-mente blancas porque no hay selec-ción de caras. No pasa nada si no he-mos seleccionado perfectamente elrecorte de las extremidades, ya quelas podremos seleccionar cuando

"pintemos" las extremidades. Rotamos el modelo en la vista 3Dhasta obtener una posición totalmen-te lateral, de forma que coincidan lasaristas de forma simétrica (tal ycomo muestra la figura 8). Para ello,tendremos que activar la vista orto-gonal. Hecho esto, renderizamos lavista con el botón de la ventana 3D y

salvamos con el nombre de late-ral.jpg. Cargamos el fichero en GIMPy creamos una nueva capa. Pintare-mos sobre esta capa, con un colorverde la piel del dinosaurio.

Nos "saldremos" a propósito fueradel área a colorear, ya que esto nosfacilitará el situar la textura más ade-lante. Crearemos una nueva capadonde dibujaremos de color amarillolos huesos que salen de la espalda.Añadiremos detalles más oscuros ju-gando con la transparencia del pin-cel. Puede resultar útil variar latransparencia de la capa para teneruna visión general de la zona del di-nosaurio sobre la que estamos pin-tando. Cuando hayamos obtenidoalgo similar a la figura 9, salvaremosel fichero como lateral_pintado.jpg.

Cargamos este fichero en la ventanade imágenes de Blender. Pinchamosen el menú Image, Open de la venta-na de imagen. La imagen aparecerácomo fondo de la ventana. Podemosmaximizar esta vista (y volver a suestado original) mediante View, Ma-ximize Window y View, Tile Window,o pulsando ¦È.

Importante: Cuando trabajemoscon ficheros añadidos a Blender(como imágenes, sonidos, etc...),hay que indicar a Blender que guar-de estos datos dentro del fichero .blend. De otra forma, cuando abra-mos el fichero en otro ordenador,las texturas no estarán. Esto serealiza en el menú File, Pack data.Hecho esto, aparecerá un icono en la barra de menús superior (allado de la opción Help). Esta opera-ción sólo hay que realizarla unavez. De ahora en adelante, cuandoguardemos el fichero .blend, seguardarán también las imágenesasociadas.

En la ventana 3D, con las caras delcuerpo seleccionadas, y la vista quese indicó en la figura 8, pulsamos latecla U, y seleccionamos UV Calcula-tion, From Window. Vemos que elconjunto de caras seleccionadas sehan "copiado" en la ventana de laimagen. Tendremos que ajustar losvértices para que se cuadren bien ala textura. Pero antes, activaremos lavista detallada (Textured pinchandoen el icono correspondiente visto enla figura 7). El modelo muestra unarepresentación con la textura aplica-da, como se muestra en la figura 10.

Maximizamos la ventana derecha, yajustamos los vértices. Para ello, losseleccionamos todos A. Podemos es-calar el modelo con S. Recordemosque para limitar el escalado en algúneje, pulsaremos ¥ cuando proceda-

Animación para la Comunicación Escuela Superior de Informática Ciudad Real (UCLM) Práctica 4 [Página 2]

Figura 6

Figura 7

Figura 8

Figura 9

Page 12: Dise ño G ráfico 3 D So ftw are L ibre co n · ( Una Intro du cció n Práctica a B le nde r ) Actualizado a V. 2.33 Blender 2.33 Yafray 0.0.6 Wings3D 0.98 GIMP 1.2.4. ste manual

mos al escalado. También podemosrotar los vértices con R. Cuando losvértices se ajusten perfectamente ala textura, minimizaremos de nuevola ventana de imagen y deberíamosobtener una representación similar ala figura 11.

Procedemos de forma similar con lasextremidades. Nos aseguraremos deque, al seleccionar las caras, no nosdejemos ninguna que no seleccioná-ramos en el paso anterior. Situamosel modelo frontalmente y renderiza-mos la vista. Coloreamos en GIMPobteniendo una texturasimilar a la figura 12.Aplicamos la tex-tura frontal-mente.

Añadimosuna esferapara crearun ojo. Ajusta-mos el tamaño,la situamos y leaplicamos unmaterial °. Elajuste de mate-riales en Blen-der será visto endetalle en próxi-mas sesiones.De cualquierforma, y paraterminar estemodelo, dare-mos el receta-rio para textu-rizar el ojo. Aeste material leasociaremosuna textura (±Add New,Image, PestañaImage, Load Ima-ge). Activamos las opciones deTexturas y Material, tal y como semuestra en las figuras 13 y 14.

Para situar con más exactitud el ojo

con la textura aplicada, acti-varemos la vista detallada ylo rotaremos hasta conse-guir la posición deseada. Para terminar, añadiremosun material genérico al mo-delo del dinosaurio, activan-do el botón de TexFace.También activaremos elbotón de VcolPaint y Vco-lLight. Si entramos en elmodo de pintado de vérti-ces, en el menú "Paint But-tons" , podremos añadirsombras adicionales al mo-delo (como en los dedos delmodelo, y en las caras de

unión entre las extre-midades y el cuer-

po...). Para ello, de-beremos activarel icono (g) y elmodo de som-

breado detalla-do. En el menú

de

VertexPaint,dentrode losbotonesde edi-ción ´,

podremoselegir el

color con elque pintare-

mos los vérti-ces del modelo

(dentro de la pes-taña Paint). En zo-nas donde quere-mos que el som-

breado sea suave,es aconsejable utili-

zar el pincel de pinta-do de vértices con el

botón Soft activado.Mediante el parámetro

Size especificamos el gro-sor del pincel, y con Opa-

city la cantidad de color a aplicar encada pasada.

Concluiremos la práctica realizandoun render sencillo del modelo. Podéisencontrar un entorno donde probar elmodelo en el fichero "escenarioren-der.blend". En este escenario estádefinido un plano (que servirá de sue-lo) y un par de focos con una configu-ración básica.

Animación para la Comunicación Escuela Superior de Informática Ciudad Real (UCLM) Práctica 4 [Página 3]

Figura 10

Figura 11

Figura 12

Figura 13

Figura 14

Page 13: Dise ño G ráfico 3 D So ftw are L ibre co n · ( Una Intro du cció n Práctica a B le nde r ) Actualizado a V. 2.33 Blender 2.33 Yafray 0.0.6 Wings3D 0.98 GIMP 1.2.4. ste manual

amos a comenzar realizandouna animación muy sencilla,manipulando directamente las

curvas de animación. Cargamos enBlender el fichero "dino.blend" . Se-leccionamos el modelo del dinosaurioy vamos a intentar rotarlo respectodel eje Z. Como se puede apreciar,hay un problema con los ojos y lospárpados, que no siguen el movi-miento del cuerpo. Hay que indicar aBlender la jerarquía existente entreestos objetos; el cuerpo del dinosau-rio será el "objeto padre" de los ojosy los párpados. Para indicar esto, se-leccionamos primero un elementohijo (por ejemplo, un párpado), y con§ pulsado, seleccionamos despuésel cuerpo. Hecho esto, hacemos ¦P,Make Parent. Aparece una líneapunteada indicando la jerarquía, tal ycomo se ve en la figura 1. Procede-mos de igual forma con el otro pár-pado y las esferas de los ojos.

V

Ahora, si rotamos el cuerpo del dino-saurio, se rotarán con él los ojos ylos párpados, pero no al contrario(los padres no heredan posición delos hijos). Vamos a realizar la ani-mación que se puede ver en el fi-chero "anim_dino.mpg".

Rotaremos el dinosaurio respecto deleje Z 360º, intentando que el vídeopueda repetirse indefinidamente (sin

cambios de velocidad alempezar y al finalizar laanimación).

Las curvas de movimientoen Blender nos permitenrepresentar la posición,rotación y tamaño de cadacomponente (X,Y,Z) de unobjeto a lo largo del tiem-po. Recordemos que, enanimación, el tiempo lomedimos en frames porsegundo. El número deframe actual en Blender serepresenta con un botón,en la parte central de la

cabecera principal,como se muestra en lafigura 2. Podemosavanzar el número deframe de 1 en 1 con Éy Ç de los cursores ycon È y Ê, de 10 en 10frames. Nos situamos en el pri-mer frame de la anima-ción. Cambiamos unaventana al tipo "Editorde curvas IPO" . Apa-rece una imagen comola mostrada en la figura3. En el eje de abcisasse representan los fra-mes, y en el de orde-

nadas los valores que pueden tomarlos objetos respecto de las magnitu-des indicadas en la columna de la de-recha (Localización, Rotaciones...).La línea verde vertical (que podemosarrastrar para ver la evolución denuestra animación), representa elframe actual. Volveremos a trabajarsobre las curvas IPO en próximas se-siones.

Con el cuerpo del dinosaurio selec-cionado, definiremos el frame 1

Animación para la Comunicación Escuela Superior de Informática Ciudad Real (UCLM) Práctica 5 [Página 1]

© 2004 Carlos González Morcillo. Se permite la copia, distribución y/o modificación de este documento bajo los términos de la licencia de documentaciónlibre GNU, versión 1.1 o cualquier versión posterior publicada por la Free Software Foundation; sin secciones invariantes. Puede consultar esta licenciaen http://www.gnu.org

Práctica 5: Animación BásicaAnimación para la Comunicación ::: ESI-CR ::: UCLMCarlos González Morcillo :: [email protected] :: http://www.inf-cr.uclm.es/www/cglez

En esta sesión utilizaremos las curvas IPO en Blender. Este tipo de curvas,basadas en representación de Bezier es la empleada por Blender para elmanejo de trayectorias en animación.

Software: Blender 2.32. Fecha: 01/Abril/2004

Figura 1

Figura 2

Figura 3

Figura 4

Figura 5

Page 14: Dise ño G ráfico 3 D So ftw are L ibre co n · ( Una Intro du cció n Práctica a B le nde r ) Actualizado a V. 2.33 Blender 2.33 Yafray 0.0.6 Wings3D 0.98 GIMP 1.2.4. ste manual

como clave (pulsando la tecla I).Aparece un menú preguntándonosqué tipo de información vamos a ma-nejar en nuestro frame clave. Indica-remos que sólo vamos a variar la ro-tación (Rot).

Como queremos que la animacióndure 3 segundos (a 25 fps), definire-mos otro frame clave en el 75. Aligual que antes, también de tipo Rot.Obtendremos una imagen como semuestra en la figura 4. En este tipode ventana podemos hacer zoom ydesplazarla de igual forma que enuna ventana 3D. Si al hacer zoom odesplazar nos "perdemos", podemosdejar que Blender ajuste la vista pul-sando la tecla Ã. Seleccionamos la curva IPO llamadaRotY, pasamos al modo de edición deobjeto º y ajustamos los puntos decontrol para obtener una curva simi-lar a la mostrada en la figura 5. Na-turalmente, en el eje Y tenemos quellegar al valor 360 (giro completo enel eje Y). Nos ayudaremos del Zoompara situar el valor exactamente en360.Podemos ver una previsualización dela animación, si nos situamos en elframe 1 y pulsamos ¥A en cualquiervista 3D. Paramos la animación con¹. Al principio y al final de la anima-ción la rotación es más lenta que enel medio. Como queremos que la ani-mación se pueda repetir en un buclesin que se noten los cortes, ajustare-mos la pendiente de la curva IPO enlos puntos extremos, desplazando lospuntos de tangente. Debemos obte-ner un resultado como el que se

muestra en la figura6.

Si previsualizamos laanimación, compro-bamos que ahora elresultado es el queesperamos. Vamos agenerar el vídeo AVI.Disminuimos la reso-lución de salida a320x240. Elegimoscomo formato de sa-lida AVI Jpeg. Ajus-tamos el rango deframes que quere-mos renderizar conlos botones Sta: 1 yEnd: 75. El directo-rio donde se va a ge-

nerar el vídeo por defecto es /ren-der (indicado en el apartado Out-put, arriba a la izquierda, ver figura7). Hecho esto, pinchamos en ANIMpara iniciar el proceso y esperamosun rato :-).

En la segunda parte de la práctica,también emplearemos curvas IPO,pero no generando el movimiento di-rectamente sobre ellas, sino utilizán-dolas únicamente para dar los ajus-tes finales. Cargamos el fichero "ore-to.blend". Moveremos la cámara por

la escena, insertando frames claveen los puntos donde haya que reali-zar un cambio de dirección. Blenderse encargará de interpolar las posi-ciones intermedias. El vídeo que de-bemos obtener como resultado(anim_oreto.mpg) muestra el proce-so final (con post-producción, queveremos en prácticas sucesivas). De-bemos ocuparnos de obtener un mo-vimiento de cámara similar. Nos cen-traremos en colocar la cámara en lasposiciones clave (respecto de la loca-lización y la rotación). Para facilitarque la cámara apunte siempre al lo-gotipo, añadiremos un objeto de tipoEmpty en el centro del logotipo (Î, Add, Empty). Seleccionamos la cá-mara primero y luego con § pulsa-do, el Empty recién creado. Pulsamos¦T Make Track, Old Track. Corre-gimos el cambio de orientación con¥R Clear Rotation.

En la figura 8 tenemos las curvas IPOasociadas a la cámara. Podemos verlas posiciones donde se han inserta-do frames clave (en el 1, 25, 50, 61,75, ..., 165). Al igual que en la pri-mera parte, obtenemos una previ-sualización de la animación con¥A.Si los resultados son correctos,renderizamos con los parámetros vis-tos anteriormente.

Animación para la Comunicación Escuela Superior de Informática Ciudad Real (UCLM) Práctica 5 [Página 2]

Figura 6

Figura 7

Figura 8

Page 15: Dise ño G ráfico 3 D So ftw are L ibre co n · ( Una Intro du cció n Práctica a B le nde r ) Actualizado a V. 2.33 Blender 2.33 Yafray 0.0.6 Wings3D 0.98 GIMP 1.2.4. ste manual

omenzaremos modelando elobjeto que se muestra en lafigura 1. Todos los componen-

tes del modelo deben ser indepen-dientes (añadiremos a la escena 5 ci-lindros, rotando y escalando hastaconseguir la configuración mostrada).

C

Renombraremos los objetos que for-man la escena, con el fin de poderidentificarlos más fácilmente, tal ycomo se muestra en la figura 2. Paraello, seleccionaremos en el modo deedición de objeto cada uno de ellos,y teclearemos el nombre en la sec-ción OB: de los botones de edición accesibles también con ´.

Podemos indicar a Blender quemuestre el nombre de los objetos siactivamos, con el objeto selec-cionado, el botón Name delgrupo de propiedades del ob-jeto ². También se puede serútil en ciertas ocasiones mos-trar el sistema de coordenadaslocal de cada objeto, accesiblemediante el botón Axis delmismo grupo de botones (verfigura 3).

Establecemos las relaciones dejerarquía entre PistonA1 - Pis-tonA2 y PistonB1 - PistonB2.

Queremos que, cuandomovamos las bases de lospistones (A1 y B1), los ex-tremos tengan el mismomovimiento. Por tanto, enla jerarquía tendremos quePistonA2 es hijo de Pisto-nA1. Para indicar esta je-rarquía a Blender, seleccio-namos primero el elementohijo (PistonA2), y con §pulsado, seleccionamos elpadre (PistonA1). Pulsa-mos ¦P y seleccionamosMake Parent. Ahora, si rotamos Pis-tonA1, el giro también lo sufrirá Pis-tonA2, pero no al revés. Realizamosla misma operación con la otra partedel pistón (B1, B2). Si nos equivoca-mos, podemos eliminar la relación de

parentesco seleccio-nando los elementosemparentados y pul-sando ¥P.

Cambiaremos loscentros de los obje-tos PistonA2 y Pis-tonB2 para que lasrotaciones se haganrespecto del extre-mo (en vez de estarsituado en el centrogeométrico del obje-to). Para ello, situa-remos el puntero 3D(círculo de color rojoque movemos con

), a la posición 3Ddonde queramos si-tuar el nuevo centroy en los botones deedición (´) pin-charemos en Cen-tre Cursor. Coloca-remos los centrosen los puntos rojosque se muestran enla figura 2.

Pasamos a estable-cer una relación dedependencia entre

objetos. Asociaremos el movimientode los dos pistones, haciendo que seapunten mutuamente. Esta técnicaya la hemos utilizado en sesiones an-teriores, cuando incluíamos un objetoEmpty para situar la cámara. El pri-mer objeto que seleccionamos es el"dependiente" (que seguirá el movi-miento del segundo; el "principal").Seleccionamos primero PistonA1 yluego (con § pulsado) PistonB1(en este orden) y creamos el track(¦T) y seleccionamos Old Track.Repetimos la operación, pero ahoraseleccionando primero PistonB1 yluego PistonA1. En caso de que seroten los objetos de forma errónea,pulsamos ¥R y ajustamos de nuevola rotación de las bases: PistonA1 yPistonB1.

Probamos a mover PistonA1. Si tene-mos que el movimiento lo siguenperfectamente el resto de piezas, he-mos terminado este paso. En casocontrario, tendremos que ajustar enlos botones de propiedades del obje-to animación (²) el eje con el quevamos a apuntar al otro objeto (alotro piston). Según la configuraciónde la escena, es posible que tenga-

Animación para la Comunicación Escuela Superior de Informática Ciudad Real (UCLM) Práctica 6 [Página 1]

© 2004 Carlos González Morcillo. Se permite la copia, distribución y/o modificación de este documento bajo los términos de la licencia de documentaciónlibre GNU, versión 1.1 o cualquier versión posterior publicada por la Free Software Foundation; sin secciones invariantes. Puede consultar esta licenciaen http://www.gnu.org

Práctica 6: Animación JerárquicaAnimación para la Comunicación ::: ESI-CR ::: UCLMCarlos González Morcillo :: [email protected] :: http://www.inf-cr.uclm.es/www/cglez

En esta sesión aprenderemos los conceptos básicos de animación jerárqui-ca en Blender, y realizaremos una composición sencilla de video. Para esto,utilizaremos el compositor de vídeo interno de Blender.

Software: Blender 2.32. Fecha: 15/Abril/2004

Figura 1

Figura 2

Figura 3

Figura 4

Page 16: Dise ño G ráfico 3 D So ftw are L ibre co n · ( Una Intro du cció n Práctica a B le nde r ) Actualizado a V. 2.33 Blender 2.33 Yafray 0.0.6 Wings3D 0.98 GIMP 1.2.4. ste manual

mos que cambiar de Track Y aTrack X. Podría hacer falta cambiartambién el eje que apunta "arriba"(vector Up), en un conjunto de boto-nes situados a la derecha del grupode Track. Es muy útil activar la vi-sualización de los ejes locales decada objeto como hemos visto ante-riormente.

Activaremos el botón de Power-Track (en las propiedades de anima-ción ²) al pistón A1, para quitarle larotación (cuando el objeto "Rueda"gire, no se tendrá en cuenta esta ro-tación, sólo la posición).

Añadimos un Empty en el centrogeométrico de PistonA1, y hacemospadre al Empty de de PistonA1. He-cho esto, hacemos hijo al Empty deRueda. Si rotamos Rueda respectodel eje Z, el mecanismo general de-bería funcionar.

Pasamos a hacer una rotación de360º de la rueda. Procederemos deforma similar a como se explicó en lapráctica anterior con el dinosaurio.Insertamos dos frames clave respec-to de la rotación en el frame 1, y enel frame 35. Seleccionamos la gráficaRotZ (queremos rotar el objeto so-

bre el eje Z delsistema de coor-denadas globalen nuestroejemplo), y en-tramos en elmodo de ediciónde vértices pul-sando º.

Seleccionamosel último clave yañadimos 36 alvalor de Ver-texY de la gráfi-ca RotZ, tendre-mos un giro de360º. Podemosespecificar unvalor numéricosi pulsamos la

tecla N (tal y como muestra la figura5). En el ejempo de la figura, el obje-to rueda partía de una rotación de-2.55 grados; así, el valor de rota-ción final es de 34.55.

Tal y como se explicó en la prácticaanterior, ajustaremos latensión de la curva IPO enlos extremos para evitar laaceleración inicial y el frena-do al final del intervalo. Pasamos a renderizar 2 ani-maciones con distintos ma-teriales (resolución de 320 x240). Añadimos un planodebajo de la escena, paraque sirva como "suelo" y re-coja las sombras arrojadas.Por ejemplo, podemos hacerun render utilizando la téc-nica "Toon Shading"; con elaspecto de los dibujos ani-mados. Para ello, en el ma-terial ° activamos la opción shade-less, para que no arroje sombras. Enla ventana de render µ, activamos elbotón Edge, y en Edge Settings alparámetro Eint (Edge Intensity; In-tensidad de la arista), le damos unvalor alto (100).

En definitiva, hemosobtenido distintos ví-deos con la animaciónde nuestro pistón. Pa-samos al siguientepaso; componerla enBlender. Para ello,abrimos una nuevasesión de Blender ydividimos la pantallaen 2 partes. Cambia-mos las dos ventanasa tipo Editor de Se-cuencia de Vídeo .En una de ellas, acti-vamos el botón para mostrar la previ-sualización de la com-posición que estamos

realizando. Debemos obtener una re-presentación como muestra la figura6.

En la parte izquierda de la pantallairemos añadiendo los vídeos, imáge-nes, transiciones y efectos. Para aña-dir un vídeo o imagen (en el vídeo deejemplo se ha utilizado una para eltexto), pulsamos §A. Podemosduplicar cualquier elemento que apa-rezca en esta ventana pulsando ¥D.Pinchando en los triángulos izquierdoy derecho de un vídeo, se puede "es-calar". Añadimos los 2 vídeos quehemos realizado, los colocamos unoencima del otro, tal y como muestrala figura 7.

Con los dos videos seleccionados(pinchamos con sobre uno y luegocon § seleccionamos el otro), po-demos añadir un efecto (de nuevo,haciendo §A). Podemos experi-mentar con todas las transicionesque incorpora blender, e incluso des-cargar plugins para añadir nuevasfuncionalidades a la aplicación.

Con un efecto seleccionado, si pulsa-mos C podemos cambiar el tipo deefecto, o el sentido de aplicación delefecto (AB o BA). En algunosefectos, como las transiciones Cross,GammaCross, etc... el orden impor-ta. Con lN podemos renombrar loselementos de nuestra composición.Una vez que tenemos un bloque denuestra animación definido, si selec-cionamos todos los elementos queintervienen (vídeos, imágenes, efec-tos, etc...) y pulsamos la tecla M, po-demos agruparlos en una única Me-tatransición. Con ¥M podemos des-hacer este paso.

Una vez tenemos la secuencia crea-da, la generaremos en un AVI, acti-vando el el botón do sequence delos botones de renderizado accesi-bles pulsando µ y pinchando luego enAnim. Utilizando las herramientasdescritas en esta práctica, intentarconseguir un resultado similar al quese puede ver en el ficheroresultado_p6.mpg.

Animación para la Comunicación Escuela Superior de Informática Ciudad Real (UCLM) Práctica 6 [Página 2]

Figura 5

Figura 6

Figura 7

Page 17: Dise ño G ráfico 3 D So ftw are L ibre co n · ( Una Intro du cció n Práctica a B le nde r ) Actualizado a V. 2.33 Blender 2.33 Yafray 0.0.6 Wings3D 0.98 GIMP 1.2.4. ste manual

omenzaremos modelando lasdiferentes piezas que for-marán nuestro brazo. Debe-

mos obtener una geometría similar ala mostrada en la figura 1. Antes deponernos manos a la obra, debemostener en mente que al modelo se ledeberá asociar un esqueleto. Resul-tará mucho más sencillo realizar estaoperación (y el propio modelado), sien la construcción del objeto emplea-mos una postura "cómoda". Unejemplo de construcción del modelose muestra en la figura 2. Así, el es-queleto se situará de forma sencilla alo largo del eje X, siguiendo la geo-metría del brazo.

C

Recordemos que se pueden duplicarobjetos con §D. Será útil definir to-dos los componentes del robot comomallas independientes. Para ello, de-beremos salirnos del modo de edi-ción de vértices cada vez que añada-mos una parte del robot a la escena,pulsando º. Nombraremos cadacomponente del robot como semuestra en la figura 1. Será impor-tante tener claros los nombres asig-nados a cada parte a la hora de ges-tionar la jerarquía y las asignacionesde parentesco a cada hueso del es-queleto. Por esto, se recomienda se-guir el mismo convenio de nombradoque se utiliza en este documento.

Una vez modelado el robot, y renom-bradas las piezas, añadiremos el es-queleto. Para ello, pulsaremos Î,ADD, Armature. Construiremos unesqueleto formado por 4 huesos,centrado en el interior del brazorobótico, tal y como se muestra en lafigura 3. Los tres primeros estánajustados a las articulaciones delbrazo del robot (hombro, codo ymuñeca). La última, muy pequeña,se utilizará para gestionar la cinemá-tica inversa del modelo.

Una vez creado el esqueleto, entra-mos en el modo de edición del objeto(del esqueleto) con º. El color rosa

del esqueleto se-leccionado serámás intenso. Se-leccionamos todoslos huesos del mo-delo con A, cam-biando su color aamarillo. Vamos alos botones de edi-ción y cambia-mos el nombre delos huesos comose muestra en lafigura 4. Al igualque antes, se reco-mienda seguir elmismo convenioempleado en estedocumento en elnombrado de los

huesos. Pasamos a definir las jerar-quías entre elemen-tos, y a conectar lasdiferentes partes delrobot con el esque-leto que hemoscreado.

Todo el proceso quevamos a seguir acontinuación, estáresumido en el es-quema de la figura5. Las relaciones deparentesco ("es pa-dre de"), están re-

presentadas por una flecha que vadel padre al hijo. Los huesos del es-queleto están representados en colorazul. Los nodos hijo de la jerarquía,están representados por un rectán-gulo con las esquinas sin redondear.

Los elementos auxiliares (empty) quese han utilizado, aparecen en colornaranja. Por último, las restriccionesentre elementos se representan conuna flecha punteada, con una circun-ferencia negra en el origen.

Importante: Recordemos que paraestablecer una relación de paren-tesco entre elementos, selecciona-remos siempre primero el elemen-to hijo, y después, con § pulsa-do, el padre. Pulsaremos ¦PMake Parent. En caso de equivo-carnos, podremos eliminar el pa-rentesco, seleccionando de nuevolos elementos que intervienen en larelación, con ¥P.

Animación para la Comunicación Escuela Superior de Informática Ciudad Real (UCLM) Práctica 7 [Página 1]

© 2004 Carlos González Morcillo. Se permite la copia, distribución y/o modificación de este documento bajo los términos de la licencia de documentaciónlibre GNU, versión 1.1 o cualquier versión posterior publicada por la Free Software Foundation; sin secciones invariantes. Puede consultar esta licenciaen http://www.gnu.org

Práctica 7: Esqueletos - IKsAnimación para la Comunicación ::: ESI-CR ::: UCLMCarlos González Morcillo :: [email protected] :: http://www.inf-cr.uclm.es/www/cglez

Con esta práctica nos introduciremos en el uso de esqueletos (armatures)en Blender. Partiendo de un modelo sencillo (un brazo robótico), aprendere-mos a asociarle, a cada sección, un hueso del esqueleto.

Software: Blender 2.32. Fecha: 22/Abril/2004

Figura 1

Figura 2

Figura 3

Page 18: Dise ño G ráfico 3 D So ftw are L ibre co n · ( Una Intro du cció n Práctica a B le nde r ) Actualizado a V. 2.33 Blender 2.33 Yafray 0.0.6 Wings3D 0.98 GIMP 1.2.4. ste manual

De esta forma, seleccionaremos, porejemplo, primero el elemento Base, ydespués Pedestal y realizaremos lajerarquía. Procederemos de igualmodo con Motor1 y Base, el Esquele-to (completo) y la Base, y MunAPin(Muñeca a Pinza) con las dos partesde la pinza.

Las relaciones de parentesco con loshuesos se realizan de forma similar.Primero seleccionamos el hijo, y des-pués el esqueleto (completo). Pulsa-mos ¦P Use Bone y seleccionamosel hueso que corresponda en cadacaso.

Añadiremos un objeto Empty a la es-cena que nombraremos EmptyIk.Este objeto nos servirá para situar elextremo del robot y, por cinemáticainversa, Blender calculará la rotaciónnecesaria para cada articulación delrobot. Situaremos el puntero 3D cer-ca del hueso IkaNull y situaremos ahíel nuevo objeto Empty. Entraremosen el modo de pose del esqueleto(que veremos con más profundidaden próximas sesiones), que entreotras cosas nos permite seleccionarindividualmente cada hueso. Paracambiar a modo de pose, con el es-queleto seleccionado (en color rosaclaro), pulsaremos ¦º. También po-demos acceder aeste modo pin-chando en la lis-ta desplegablede la cabecerade la ventana 3D(figura 6). El es-queleto pasará acolor azul claro.

En este modo, seleccionaremos el úl-timo hueso (IkaNull), que pasará acolor verde claro. Vamos al menú derestricciones, pinchando en el botónde edición de objeto . Añadimosuna restricción nueva pinchando enAdd Constraint. El tipo de restric-ción será IK Solver, sobre el nuevo

Empty (tecleamos en elcampo OB: EmptyIk).Ver figura 7. Es impor-tante que se indique elnombre de forma preci-sa, ya que Blender dis-tingue entre minúsculasy mayúsculas en losidentificadores de objeto.Cambiamos la influenciaque tendrá esa restric-ción sobre la solución fi-nal, poniendo Influencea su valor máximo. Así,el Esqueleto seguirá per-fectamente al EmptyIk.

Hecho esto, podemosmover el EmptyIk por laescena, y el brazo se-guirá el movimiento delmismo. Sin embargo, ve-mos que el brazo no se comporta co-rrectamente. Las articulaciones norealizan los giros de forma realista,debido a que no tienen restriccionesde giro aplicadas.

Seleccionamos, en modo pose, elhueso Codo y añadimos una restric-ción para copiar la rotación del huesoHombro. Con esto, conseguiremosparcialmente que los tres huesos gi-ren a la vez. Como se muestra en lafigura 8, tendremos que definir el ob-jeto que contiene al hueso llamadoHombro (en nuestro caso, Esquele-to). Repetiremos la misma operacióncon el hueso Muñeca.

Crearemos un nuevo objeto vacío, alque llamaremos EmptyRotBase. Nosservirá para definir la rotación que setiene que aplicar al objeto Base (re-cordemos que es padre de casi todanuestra jerarquía), cuando movamosEmptyIk. De esta forma, el robotsiempre apuntará al objeto EmptyIk,y no tendremos ninguna rotación ex-traña en las articulaciones.

Situaremos el nuevo Empty, como semuestra en la figura 9, a la mismaaltura que la base (para que al hacerel Track entre ellos, la Base no se

"incline" hacia ningún lado; única-mente rote respecto del eje Z). Laidea es hacer que este nuevo Emptysirva de "sombra" al EmptyIk con elque controlamos el movimiento delbrazo. Para conseguir este efecto de"sombra", añadiremos una restricciónde copiar la localización del EmptyIk,como se muestra en la figura 10. Lalocalización se copiará respecto deleje X e Y. La altura en el eje Z lamantendremos fija.

Hecho esto, añadiremos un segui-miento (Track) de la base respectodel Empty. Para ello, recordemos quehabrá que seleccionar primero el ob-jeto dependiente, y después el prin-cipal, pulsando ¦T, Constraint. De-jamos los parámetros insertados porBlender. Si hemos seguido los pasoscorrectamente, podemos mover elEmptyIk y el resto de la geometríadel robot seguirá el movimiento.

Para animar el modelo, bastará coninsertar frames clave que guarden laposición (Loc) del objeto EmptyIkcon ¦I. La interpolación del movi-miento de este objeto nos producirá(por cinemática inversa) el movi-miento en el resto de articulaciones.Se puede ver el modo de trabajar dela cinemática inversa en el ficheroesqueleto_p7.mpg.

Añadiremos luces y texturas, e inten-taremos conseguir un movimiento si-milar al mostrado en el vídeo resul-tado_p7.mpg. Es muy importante fi-nalizar correctamente esta prácticapara concluir con éxito las próximassesiones relacionadas con animaciónde personajes.

Animación para la Comunicación Escuela Superior de Informática Ciudad Real (UCLM) Práctica 7 [Página 2]

Figura 4

Figura 5

Pedestal

Motor1

Base

Esqueleto

Hombro

Codo

Muñeca

IkaNull

LatHomDer

LatHomIzq

Motor2

LatCodDer

LatCodIzq

Motor3

LatMunIzq

LatMunDer

PinzaDerPinzaIzq

MunAPin

EmptyIk

EmptyRotBase

Copy Rotation

IK Solver Copy Location (x,y)

Make Track

Figura 6

Figura 7

Figura 8

Figura 9

Figura 10

Page 19: Dise ño G ráfico 3 D So ftw are L ibre co n · ( Una Intro du cció n Práctica a B le nde r ) Actualizado a V. 2.33 Blender 2.33 Yafray 0.0.6 Wings3D 0.98 GIMP 1.2.4. ste manual

a técnica de modelado median-te rotoscopia se basa en mol-dear el personaje 3D utilizan-

do, al menos, dos vistas realizadas amano. Cargaremos los bocetos delpersonaje que pueden verse en la fi-gura 1. Dividimos la pantalla en 3ventanas. A la izquierda, cargaremosla imagen de fondo "frente.jpg", y enel centro "lateral.jpg". La parte de laderecha la dejaremos para ir rotandoel modelo, seleccionar vértices, etc...(ver figura 2). La imagen de frentese cargará en la vista frontal (tecla 1del teclado numérico) y la vista late-ral con la tecla 3 del teclado numéri-co. Recordemos que, para incluir unaimagen de fondo en una ventana 3Dseleccionaremos en el menú de la ca-becera, View, Background Image.

L

Añadimos un cubo a la escena y loajustamos para comenzar a modelarun pie del personaje, como se mues-tra en la figura 2. Activaremos, comose muestra en la figura 3, las opcio-nes de subdivisión de la malla (boto-nes de edición , ´).

El valor de la izquierda (2 en nuestrocaso), es el número de subdivisionesque hace Blender para mostrar la

malla en modo de tra-bajo. Sirve para ha-cernos una idea decómo va a quedar. Elvalor de la derecha,es el número de sub-divisiones que seharán a la hora derenderizar. De estaforma, ajustaremos elvalor de la derechapara que sea mayorque el de la izquierda(y éste, según la ve-locidad de nuestro procesador). Siactivamos el botón Optimal, tendre-mos una representación de la mallamínima que se crea mediante la su-perficie de subdivisión.

Puede ser útil activar el modo desombreado Z en alguna vista, paratener una visión más precisa del es-tado del modelo. La selección de vér-tices puede realizarse de forma indi-vidual, o con la tecla B(o BB). Las operacio-nes básicas sobre losvértices serán Extru-sionar E, con al me-nos 3 vértices selec-cionados, mover G,rotar R y escalar S. Laidea básica es ir "cal-cando" los bocetos,ajustando los vérticesde la geometría de lared de control.

Importante: Es crítico conservar elmenor número de vértices posibleen el modelo a subdividir. Cuantomás aumentemos la geometría delmodelo, más difícil resultará despla-zar los grupos de vértices.

Es muy útil activar, en modo de edi-ción de vértices, el botón Draw Fa-ces de los botones de edición. Conesto, nos aseguramos que hemos se-leccionado la cara correcta a la horade aplicar transformaciones.

Con esta idea en mente, comenza-mos a generar un pie del modelo,como se muestra en la figura 4. Paraextrusionar una cara (sacar la piernade la parte superior del pie), selec-cionamos los 4 vértices que for-marían el "talón" y pulsamos E.

Al llegar a la parte de unión entre laspiernas, realizaremos un espejo de lapierna izquierda. Para ello, seleccio-

namos la malla, pulsamos §D,. Conesto, obtenemos un duplicado de lapierna, pero tenemos que realizar elespejo para que la curvatura de lamisma sea correcta. Para ello, enmodo de selección de vértices contodos los vértices seleccionados, pul-samos M y nos aparecerá una venta-na preguntado el eje sobre el quevamos a realizar la operación. En elcaso del ejemplo sería X Global. Sila transformación no ha sido la co-rrecta, podemos realizar "Undo", pul-sando U.

Animación para la Comunicación Escuela Superior de Informática Ciudad Real (UCLM) Práctica 8 [Página 1]

© 2004 Carlos González Morcillo. Se permite la copia, distribución y/o modificación de este documento bajo los términos de la licencia de documentaciónlibre GNU, versión 1.1 o cualquier versión posterior publicada por la Free Software Foundation; sin secciones invariantes. Puede consultar esta licenciaen http://www.gnu.org

Práctica 8: Modelado por RotoscopiaAnimación para la Comunicación ::: ESI-CR ::: UCLMCarlos González Morcillo :: [email protected] :: http://www.inf-cr.uclm.es/www/cglez

En esta sesión modelaremos un personaje utilizando superficies de subdivi-sión mediante la técnica de rotoscopia, muy utilizada en el ámbito de la ani-mación de personajes.

Software: Blender 2.32. Fecha: 29/Abril/2004

Figura 1

Figura 2

Figura 3

Figura 4

Page 20: Dise ño G ráfico 3 D So ftw are L ibre co n · ( Una Intro du cció n Práctica a B le nde r ) Actualizado a V. 2.33 Blender 2.33 Yafray 0.0.6 Wings3D 0.98 GIMP 1.2.4. ste manual

Obtenemos un resultadosimilar a la figura 5. Pa-samos a unir los objetosgenerados para conti-nuar modelando el torsodel personaje.

Con las dos piernas se-leccionadas (en modo deselección de objeto), uni-mos las mallas ¦J. En-tramos en modo de edi-ción de vértices y situa-mos cerca los vérticesque deben ser comunesen ambas piernas (losdos vértices superioresde cada pierna, figura 6). Selecciona-mos los 4 vértices que queremos "fu-sionar", y ajustamos en los botonesde edición el valor Limit que nos

gradúa la distancia que debe haberentre vértices continuos a eliminar.Hecho esto, pinchamos en RemDoubles (ver figura 7) y Blenderdebe informarnos que ha eliminado 2vértices.

Continuamosmodelando elcuerpo del per-sonaje, siem-pre teniendo enmente que de-bemos utilizarel menor nú-mero de polí-gonos posible.Hay que vertambién laspartes donde"interesa" ge-

nerar nuevas ca-ras. Por ejemplo,para modelar eltorso (figura 8 arri-ba), hemos realiza-do tres extrusionescuando habría bas-tado con dos. Deesta forma, hemosobtenido unos vér-tices donde, en elpaso siguiente, ge-neramos los bra-zos.

Necesitamos gene-rar nuevos vértices para sacarel cuello y, de ahí, la cabeza.Para ello, resulta útil la herra-mienta Subdivide (botonesde edición ´). Es importanteutilizar esta herramienta sólocuando sea necesario. El nú-mero de vértices crece muyrápido y el modelo podría ha-cerse inmanejable. Tambiénresulta útil la opción deSmooth, del mismo bloque debotones. Con este botón sua-vizamos una superficie, elimi-nando la apariencia de estargenerada de forma simétrica.Esta opción la utilizaremosúnicamente cuando la geo-metría base esté totalmentedefinida, para añadir natura-lidad.

Generaremos unamano del modeloy realizare-mos la otrapor "es-pejo" (deforma simi- lar a comotrabajamos con lapierna). En la figura 9,se muestra el procesode ajustar los vérticespara que "coincidan"con la muñeca. Deforma similar, pin-chando en Rem-Doubles junta-remos las super-ficies en una.Blender realizará lainterpolación de la malla resultan-te.

Por último, añadimos losojos, párpados y dientesdel modelo. Para las textu-ras se ha utilizado un colorverde de material y des-

pués se han pintado los vér-tices (Vertex Paint Mode),como se explicó en la sesión4 (Modelado del Dinosau-rio).

Con esta técnica pode-mos construir mode-

los de personajescomplejos. Par-

tiendo de unosbocetos 2Dsencillos gene-ramos la malla3D mediante

rotoscopia. Al emplearsuperficies de subdivisión po-demos ajustar el nivel desuavizado de la superficie fi-nal. Habitualmente un valorde subdivisión de 3-4 en elrenderizado, da mallas muysuavizadas. Animaremoseste personaje en la si-

guiente sesión de prácticascon NLA.

Animación para la Comunicación Escuela Superior de Informática Ciudad Real (UCLM) Práctica 8 [Página 2]

Figura 5

Figura 6

Figura 7

Figura 8

Figura 9

Page 21: Dise ño G ráfico 3 D So ftw are L ibre co n · ( Una Intro du cció n Práctica a B le nde r ) Actualizado a V. 2.33 Blender 2.33 Yafray 0.0.6 Wings3D 0.98 GIMP 1.2.4. ste manual

as articulaciones del esqueletoque vamos a definir generaránunas deformaciones que habrá

que trasladar a la malla del modelo3D. Por último se aplicará un movi-miento al esqueleto, construyendouna secuencia de animación.

L

Así pues, en esta sesión identifica-mos un primer objetivo; construir unesqueleto para nuestro personaje,que asociaremos a una malla. Indica-remos a Blender qué vértices de lamalla tendrá que deformar junto alesqueleto.

En la próxima sesión, construiremosuna secuencia de animación para elesqueleto. Podremos realizar esta se-cuencia mediante la técnica de ani-mación lineal empleada en sesionesanteriores; definiendo la posición detodos los puntos finales (IK Solver)en cada frame clave, o bien definien-do acciones en el módulo de Anima-ción No Lineal. Utilizaremos esta se-gunda alternativa, mucho más cómo-da para construir animaciones com-plejas.

Antes de definir el esqueleto del mo-delo creado en la práctica anterior,veamos cómo asociar un Armature auna malla de polígonos, y el conveniode nombrado que utiliza Blender.

Empecemos con un ejemplo sencillo;insertamos un cubo a la escena. Ex-truimos la cara lateral y activando lassuperficies de subdivisión, construi-mos una malla como la mostrada enla figura 1.

Añadimos un Armature formado por3 huesos principales (hueso1, hue-so2, hueso3) y un cuarto hueso pe-queño que utilizaremos para resolverla cinemática inversa (huesonull).

Con el esqueleto todavía en modo deedición de huesos (color rosa oscuro,pulsando º), añadiremos un quintohueso, independiente de los anterio-res, aunque forma parte del esquele-to, que utilizaremos para calcular lacinemática inversa (huesoik). Ob-tendremos una configuración similara la figura 2.

Importante: Todos los huesos de-ben formar parte de un único obje-to Armature. Por tanto, cuandoañadamos nuevos huesos al esque-leto, lo haremos siempre desde elmodo de edición del objeto.

Podemos activar la representacióndel nombre de cada hueso pinchandoen el botón Draw Names de los Bo-tones de Edición . También es útil,cuando el modelo está representadoen sombreado (tecla Z), activar en elmismo menú X-Ray para ver el es-queleto a través de la malla.

Nombraremos los huesos (ver figura3) como se explicó en la sesión 8, yañadiremos una restricción (en modopose del esqueleto; ¦º) de tipo Ik-Solver al huesonull con objetivo enhuesoik. Ahora podemos desplazar(en modo pose) huesoik, y el restodel esqueleto se calculará de formaautomática mediante cinemática in-versa.

Falta por indicar a blender cómo de-formar la malla. Para ello, crearemosgrupos de vértices con el mismonombre que los huesos del esquele-to. Asociaremos a cada conjunto devértices un hueso de los anteriores.Entramos en modo de edición de vér-tices del objeto y seleccionamos elgrupo de vértices que están situadossobre el hueso1 (ver figura 4).

En los botones de edición (´),crearemos un nuevo grupo de vérti-ces (pinchamos en new). Tecleamosel nombre del primer hueso "hue-so1" y, con los vértices asociados alprimer hueso seleccionados, pincha-mos en Assign. De esta forma he-

Animación para la Comunicación Escuela Superior de Informática Ciudad Real (UCLM) Práctica 9 [Página 1]

© 2004 Carlos González Morcillo. Se permite la copia, distribución y/o modificación de este documento bajo los términos de la licencia de documentaciónlibre GNU, versión 1.1 o cualquier versión posterior publicada por la Free Software Foundation; sin secciones invariantes. Puede consultar esta licenciaen http://www.gnu.org

Práctica 9: Esqueletos AvanzadosAnimación para la Comunicación ::: ESI-CR ::: UCLMCarlos González Morcillo :: [email protected] :: http://www.inf-cr.uclm.es/www/cglez

La animación de personajes digitales requiere definir un esqueleto interno alque aplicaremos Cinemática Inversa para calcular la posición de todas lasarticulaciones.

Software: Blender 2.32. Fecha: 06/Mayo/2004

Figura 1

Figura 2

Figura 3

Figura 4

Figura 5

Page 22: Dise ño G ráfico 3 D So ftw are L ibre co n · ( Una Intro du cció n Práctica a B le nde r ) Actualizado a V. 2.33 Blender 2.33 Yafray 0.0.6 Wings3D 0.98 GIMP 1.2.4. ste manual

mos creado el primer grupo de vérti-ces, asociados a hueso1. Si nosequivocamos al asignar vértices, po-demos quitar los erróneos con Re-move. El botón Select sirve paramostrar los vértices seleccionados deun grupo y Deselect para deselec-cionar los vértices del grupo. Crea-mos un grupo para cada hueso yasignaremos los vértices que semuestran en la figura 4.

Si nos fijamos, hay vértices que per-tenecen a dos grupos. Es buenapráctica que los vértices situados enla zona de unión de dos huesos, per-tenezcan a los dos grupos de vérticesasociados. Blender calculará cómodeformarlos para que el resultado fi-nal en la malla sea suave.

Hecho esto, haremos la malla hija delesqueleto ¦P, Use Armature,Don't create groups. Con esta últi-ma opción indicamos a blender queno genere automáticamente los gru-pos de vértices (ya que hay huesosque no deben utilizarse en las defor-maciones de vértices). Por lo gene-ral, es mejor asignar manualmentelos grupos de vértices.

Entramos en modo de pose para elesqueleto y movemos el hueso hue-soik. Si todo ha ido bien, se deberáaplicar la deformación en el modelo

(ver figura 6). Aplicare-mos este método al ar-chivo p9modelo.blend.

Comenzaremos por elesqueleto de las pier-nas. Los huesos quetengan simétricos en el

otro lado del cuerpo, como por ejem-plo las piernas y los brazos, los nom-braremos acabando en .R (los hue-sos de la derecha) y en .L (los de laizquierda). Esto nos servirá para "co-piar" y "pegar" posiciones simétricasen la práctica de la siguiente sesión.De momento nos ocuparemos demantener la notación exacta y con-sistente.

Añadimos como primer Armature elformado por Fémur.R, Tibia.R yPiernaNull.R (ver figura 7). Des-pués, y recordemos que tenemoscomo objetivo tener un único Arma-ture con todos los huesos, sin salirdel modo de edición, añadimos unanueva cadena de huesos: Pie.R yPieNull.R. Finalmente, añadimoscomo cadenas independientes de unúnico hueso: DedosPie.R, IkDedos-Pie.R, IkTobillo.R e IkPie.R.

Hecho esto, realizaremos los siguien-tes parentescos entre huesos. Paraello, iremos a los botones de edición

, y en modo de edición º, con to-dos los huesos seleccionados A, ele-gimos el nombre del hueso padre enel campo child of; ver figura 8) losdos huesos IK pequeños; IkDedos-

Animación para la Comunicación Escuela Superior de Informática Ciudad Real (UCLM) Práctica 9 [Página 2]

Figura 6

Figura 7

Figura 8

Figura 9

Figura 10

Page 23: Dise ño G ráfico 3 D So ftw are L ibre co n · ( Una Intro du cció n Práctica a B le nde r ) Actualizado a V. 2.33 Blender 2.33 Yafray 0.0.6 Wings3D 0.98 GIMP 1.2.4. ste manual

Pie.R e IkTobillo.R con el controla-dor principal del pie: IkPie.R. Alhueso DedosPie.R añadimos unarestricción "copy location" hacia elhueso IkDedosPie.R. Al hueso Pie-Null.R un IkSolver hacia IkDedos-Pie.R. Al hueso Pie.R un "copy loca-tion" hacia PiernaNull.R. Finalmentea PiernaNull.R un IkSolver hacia Ik-Tobillo.R. Si todo ha ido bien, ten-dremos un comportamiento como seve en la figura 9; rotando IkPie.R, seobserva un comportamiento generalen la pierna, quedando el hueso De-dosPie.R paralelo siempre al suelo.

Crearemos grupos de vértices comose explicó con el primer ejemplo de lapráctica, nombrando los grupos igualque los huesos que los deformarán:Fémur.R, Tibia.R, Pie.R y Dedos-Pie.R. Al terminar, podemos empa-rentar la malla con el esqueleto de lapierna. La deformación debe verse eneste punto. A partir de ahora, todoslos huesos que añadamos al esquele-to y grupos de vértices en la mallatendrán resultado directo en el modode animación "pose" (ver figura 10).En la figura 11 puede verse una cap-tura de la jerarquía que tenemos queconstruir.

La figura 12 muestra los nombresexactos de los huesos y sus relacio-nes de parentesco. Añadiremos unacadena de huesos para formar la co-

lumna vertebral (Estomago, Pechoy ColumnaNull). Para limitar el ini-cio y el fin de la columna, inserta-mos 2 nuevos huesos (IkCaderas eIkHombros). Añadimos una restric-ción de tipo CopyLocation a Esto-mago, respecto de IkCaderas. AColumnaNull un IkSolver sobre Ik-Hombros. De ese punto sacaremosdos cadenas de huesos (una paracada lado): Hombro.R y Hombro-Null.R. Hombro.R tendrá un Copy-

Location de IkHombros y Hombro-Null.R servirá de origen para elCopyLocation de Humero.R. De for-ma similar se definirán los huesos yrestricciones para el lado izquierdo.

Contruiremos los brazos como unacadena de 3 elementos: Humero.R,Cubito.R y Mano.R. Añadiremos unIkSolver (IkMano) sobre Mano.R.Añadiremos nuevas cadenas de hue-sos para los dedos. Índice, Corazón y

Animación para la Comunicación Escuela Superior de Informática Ciudad Real (UCLM) Práctica 9 [Página 3]

Figura 11

Figura 13

Page 24: Dise ño G ráfico 3 D So ftw are L ibre co n · ( Una Intro du cció n Práctica a B le nde r ) Actualizado a V. 2.33 Blender 2.33 Yafray 0.0.6 Wings3D 0.98 GIMP 1.2.4. ste manual

Anular tendrán 3 huesos (el dedo pul-gar sólo 2) más un cuarto hueso(*null) que servirá como origen delIkSolver. Añadiremos un hueso inde-pendiente para cada dedo, que ser-virá como destino del IkSolver.Además, emparentaremos el origende cada cadena de huesos con Ma-no.R. Una captura del esqueleto deesta parte puede verse en el anexode la figura 11.

Finalmente podemos ocultar algunoshuesos para que, cuando estemos enmodo de edición de pose, sólo nos

aparezcan los que vayamos a utili-zar. Esto se consigue activando elbotón Hide que aparece en colorazul al lado del nombre del hueso.

En la figura 12 aparece el conjuntode huesos que serían de utilidad a lahora de animar el personaje (bási-camente los IKSolver de todas lascadenas de huesos, que serán loshuesos a desplazar): IKPie.*, IK-DedosPie.*, IKTobillo.*, IKCade-ras, IKHombros, IKCabeza, IK-Mano.*, IKPulgar.*, IKIndice.*,IKCorazon.* e IKAnular.*

Puede resultar de utilidad tener el es-queleto en una capa distinta del restode elementos. Esto nos permitiráocultarlo cuando no estemos traba-jando directamente con él.

Después de ocultar un subconjuntode los huesos del esqueleto, obtene-mos una configuración como la mos-trada en la figura 13.

En la siguiente sesión emplearemosanimación no lineal para mezclar ac-ciones individuales aplicadas a ciertaspartes del modelo.

Animación para la Comunicación Escuela Superior de Informática Ciudad Real (UCLM) Práctica 9 [Página 4]

Figura 12

Page 25: Dise ño G ráfico 3 D So ftw are L ibre co n · ( Una Intro du cció n Práctica a B le nde r ) Actualizado a V. 2.33 Blender 2.33 Yafray 0.0.6 Wings3D 0.98 GIMP 1.2.4. ste manual

ara comenzar a trabajar, abri-mos dos ventanas nuevas enblender. Una que contendrá el

editor de Acciones y otra de tipoeditor NLA (Non Linear Animati-on). En animación no lineal, definire-mos las acciones como conjuntos deposiciones clave de un subconjuntode huesos. Así, en el movimiento de"andar", definiremos la acción de"mover las piernas" y la acción de"mover los brazos". De la combina-ción de ambas acciones en el compo-sitor de NLA obtendremos el movi-miento de "andar".

P

Vamos a añadir el movimiento demover las piernas al caminar. En laventana 3D, situamos el esqueleto en

la posición que muestra la figura 1.Para ello, desplazaremos y rotaremosen modo Pose ¦º los huesos de de-finición de la cinemática inversa fina-les; IKMano.R, IKMano.L, IKPie.Re IKPie.L. Con los huesos seleccio-nados, insertamos un frame clave Ide Localización y Rotación (LocRot).En la ventana de Acciones deberánaparecer unos cuadros de color ama-rillo en el frame 1. Con los cuatrohuesos seleccionados, vamos a co-piar la posición actual al buffer deblender. Para ello, pinchamos en elbotón o seleccionamos Armature,Copy current Pose, ambas opcionesen la cabecera de la ventana 3D. Allado de este icono hay dos que nospermiten pegar la posición copiada

, y pegar la posicióninvertida . Podemosrealizar estas operacionescon sus correspondientesopciones dentro del menúArmature visto anterior-mente.

Mediante el pegado inver-tido, siempre que haya-mos utilizado la notaciónespecial empleada porblender de nombrar me-diante .R y .L los huesossimétricos en cada ladodel cuerpo, podremos pe-gar la pose empleada in-vertida.

Así, pinchamos en copiarla posición actual y nosdesplazamos al frame 14.Pegamos la posición inver-tida e insertamos frameclave I. Nos vamos al fra-me 28 y pegamos la posi-ción normal . Inserta-mos de nuevo un frameclave. Si reproducimos laacción, tendremos un mo-vimiento parecido a andar,pero sin levantar los piesdel suelo (estilo Moonwal-ker). Bastará con que nos

situemos en los frames intermedios(7 y 21) y añadamos nuevos framesclave con la pierna que correspondalevantada. Finalmente, obtendremosuna acción en la ventana de accionescomo se muestra en la figura 2. En laventana NLA aparecerán una serie decuadritos amarillos indicando los fra-mes clave (figura 3). Podemos ver laanimación de la acción pulsado ¥A.

Como la acción está terminada, la re-nombraremos como "Andar", tal ycomo muestra la figura 2 y la quita-remos de la ventana de NLA. Paraesto, pinchamos en el botón de lacabecera de la ventana de acciones.Esto no elimina la acción realmente;podemos recuperarla de nuevo acce-diendo a la lista desplegable . Conla acción creada, podemos utilizarlacomo franja de Animación No Lineal;que se representa mediante barrasamarillas que podemos escalar, sua-vizar y componer.

En la ventana de NLA , y con el es-queleto seleccionado (la banda "Ar-mature" tiene que aparecer con elrótulo en color blanco en la ventanade NLA), pulsamos §A, Add Ac-tion y seleccionamos la acción reciéncreada ("Andar"). Podemos escalar laduración de la acción de caminar al

Animación para la Comunicación Escuela Superior de Informática Ciudad Real (UCLM) Práctica 10 [Página 1]

© 2004 Carlos González Morcillo. Se permite la copia, distribución y/o modificación de este documento bajo los términos de la licencia de documentaciónlibre GNU, versión 1.1 o cualquier versión posterior publicada por la Free Software Foundation; sin secciones invariantes. Puede consultar esta licenciaen http://www.gnu.org

Práctica 10: Animación No LinealAnimación para la Comunicación ::: ESI-CR ::: UCLMCarlos González Morcillo :: [email protected] :: http://www.inf-cr.uclm.es/www/cglez

Continuando con la sesión anterior, realizaremos una animación sencilla uti-lizando el módulo de animación no lineal (ANL) de Blender. Definiremos unconjunto de acciones sencillas que mezclaremos convenientemente.

Software: Blender 2.32. Fecha: 13/Mayo/2004

Figura 1

Figura 2

Figura 3

Page 26: Dise ño G ráfico 3 D So ftw are L ibre co n · ( Una Intro du cció n Práctica a B le nde r ) Actualizado a V. 2.33 Blender 2.33 Yafray 0.0.6 Wings3D 0.98 GIMP 1.2.4. ste manual

número de frames que queramos(como cualquier objeto, con S), odesplazarlo en la línea de tiempo conG. Crearemos nuevas acciones (comotaparse la cara, girar la cabeza...) deforma similar. Podemos añadir accio-nes ya creadas a la ventana NLA pul-sando de nuevo §A.

Podemos ver cómo quedó la compo-sición de acciones de esta sesión enla figura 4. La parte inferior, que tie-ne frames clave directamente sobreel objeto Lamp.004, se correspondecon el efecto del foco que ilumina lacara del muñeco al comenzar la ani-mación (insertamos claves respectode la capa -layer-). A continuaciónanalizaremos algunas opciones decomposición.

Antes de hacer que el personaje sigaun camino, vamos a medir la longi-tud de paso de nuestro personaje.Para ello, desde la vista lateral de laacción de andar, y con el paso total-mente extendido (figura 5), anota-mos el número de unidades de la re-jilla que abarca el paso (en el ejem-plo de la figura, 6½ unidades.

Muy bien, ya sabemos el número deunidades de la rejilla, pero... ¿Cuántomide la rejilla? Para ver esto, acce-demos a View, View Properties enla cabecera de la ventana 3D, ycomo muestra la figura 6, tenemos elvalor en el campo Grid: Spacing. Enel caso de nuestro ejemplo, cada cel-da de la rejilla mide 1 unidad real.

Finalmente, ¿cuán-to avanza el perso-naje en cada paso?Pues, avanza 6.5unidades de rejilla× 1 unidad quemide cada rejilla ×2 "mitades simétri-cas" que tiene cadapaso = 13 unidadesreales por cada pa-so. Anotamos estevalor, porque lo uti-

lizaremos más adelante.

¿Cómo hacer que el personaje sigaun camino? Necesitamos añadir unelemento de tipo Curve, Path. Ajus-tamos los puntos de control y empa-rentamos el esqueleto (hijo) a la cur-va (padre), ¦P Normal Parent. He-cho esto, si reproducimos la anima-ción ¥A comprobamos que el perso-naje sigue el camino, pero no rotaadecuadamente.

Para conseguir que el esqueleto giresegún el vector normal al camino quehemos añadido, inserta-mos una restricción alesqueleto de tipo Fo-llow Path (figura 7). In-dicamos en el campo deObjeto (OB), el nombredel path insertado (en elcaso del ejemplo, "Cur-ve"). Activamos el botónCurve Follow. Es im-portante indicar el ejecorrecto que apunta ha-cia el techo Up, y el vec-tor que apunta hacia de-lante Fw (en el ejemplode la figura 7 sería el ejenegativo de las Y).

En la ventana NLA, se-leccionamos la acción"andar" y pulsamos N.Con esto, accedemos alas propiedes específicasde la acción (ver figura8). Las propiedades deStrip Start y Strip Endindican el momento enel que la acción comien-za y termina en la plani-ficación NLA actual. Ac-tion Range hace men-ción a la duración (enframes) de la acción (in-dependiente de dónde

empiece). Blendin y Blendout sonel número de frames que damos paramezclar la acción con las siguientes.Es un factor de suavizado que aplicaBlender en la interpolación entre ac-ciones. Repeat indica el número deveces que vamos a repetir la acción.Stride es un parámetro muy impor-tante si estamos utilizando caminos(paths), como en nuestro caso. Indi-ca a Blender el número de unidadesque avanza el modelo en cada ciclo.Debemos ajustar este parámetropara evitar que el modelo "patine"sobre el suelo. Aquí debemos indicarel parámetro calculado anteriormente(13 unidades reales en nuestrocaso).

Si activamos UsePath, la acción seva a sincronizar con el avance delpath. En nuestro ejemplo, activare-mos este botón únicamente en lasacciones que tengan que ver directa-mente con el acto de caminar; es de-

cir, únicamente "andar". Elbotón de Hold, si está activo,nos conserva la última posi-ción alcanzada por una acción.Por último, el parámetro Addindica que el movimiento finalresultará de la composición deesta acción con el resto (susefectos se suman). Por lo ge-neral, este parámetro tendráque estar siempre activo paratodas las acciones.

Por último, recordaremos que Blen-der permite trabajarhasta el mínimo nivel dedetalle mediante curvasIPO. Podemos, porejemplo, variar la velo-cidad del personaje quesigue sobre el path ac-cediendo a la curva IPOasociada al camino (verfigura 9). Para esto,tendremos que elegir dela lista desplegable laopción Path. Podemosvariar la duración delcamino desplazando ha-cia la izquierda el puntofinal de esta curva (enel ejemplo está ajustadoa 100 frames).

Animación para la Comunicación Escuela Superior de Informática Ciudad Real (UCLM) Práctica 10 [Página 2]

Figura 4

Figura 7

Figura 5

Figura 6

Figura 8

Figura 9

Page 27: Dise ño G ráfico 3 D So ftw are L ibre co n · ( Una Intro du cció n Práctica a B le nde r ) Actualizado a V. 2.33 Blender 2.33 Yafray 0.0.6 Wings3D 0.98 GIMP 1.2.4. ste manual

omenzaremos la primera par-te de la práctica cargando elescenario de la figura 1 (en el

fichero P11Radiosidad.blend). Lailuminación de la escena vendrá dadapor las áreas de luz de las superfi-cies superiores (planos) de la habita-ción. Recordemos que en Radiosidad,la iluminación vendrá generada porsuperficies. De esta forma, necesita-remos crear planos a los que asigna-remos un material que emita luz.

C

Es muy importante la dirección delvector normal ya que Blender "lan-zará" la luz en ese sentido. Por tanto,tendremos que asegurarnos que elvector normal de cada foco apunta"hacia el suelo", tal y como muestrala figura 2. Para comprobar que esasí, seleccionamos cada "foco", y enmodo de edición de vértices º, contodos los vértices seleccionados A,accedemos a los botones de edición

y activamos el botón Draw Nor-mals. Podemos ajustar el tamaño derepresentación del vector normal enNsize. En caso de que la normal estéinvertida, podemos ajustarla pulsan-do W Flip Normals o rotando la ca-ra.

Los elementos que emiten luztendrán el campo Emit del materialcon un valor mayor que 0. Los focosde la práctica tienen un valor de 0.1(ver figura 3). A la caja de color rojose le dio un valor de 0.020.

Añadimos una esfera a la escena, si-tuada debajo del segundo foco y leasignaremos un material de colorazul (activamos además Set Smoothen los botones de edición ). Demomento, no calcularemos su mapade entorno.

Accedemos al menú de radiosidadcon el botón , que está dentro delas subopciones de sombreado .Seleccionamos todas las mallas queforman nuestra escena A y pincha-

mos (figura 4) en el botón CollectMeshes. Aparecen en la vista de lacámara unos cuadrados blancos yazules. Los azules representan el ta-maño mínimo y máximo de los "Ele-mentos" (recordemos que cada Par-che está formado por un conjunto deElementos), y los blancos represen-tan los "Parches".

Hecho esto, pinchamos en LimitSubdivide, seguido de SubdivShoot Element y Subdiv ShootPatch. Finalmente pinchamos en elbotón Go. De esta forma comienza elproceso de cálculo de la solución deradiosidad. Podemos parar el procesoen cualquier momento pulsando ¹,quedándonos con la aproximaciónque se ha conseguido hasta ese ins-tante.

Observamos que hay un error en elcálculo de nuestra escena. Las pare-des de la habitación permanecen decolor negro. Esto es porque el vector

Animación para la Comunicación Escuela Superior de Informática Ciudad Real (UCLM) Práctica 11 [Página 1]

© 2004 Carlos González Morcillo. Se permite la copia, distribución y/o modificación de este documento bajo los términos de la licencia de documentaciónlibre GNU, versión 1.1 o cualquier versión posterior publicada por la Free Software Foundation; sin secciones invariantes. Puede consultar esta licenciaen http://www.gnu.org

Práctica 11: Render RealistaAnimación para la Comunicación ::: ESI-CR ::: UCLMCarlos González Morcillo :: [email protected] :: http://www.inf-cr.uclm.es/www/cglez

Esta práctica completa los conceptos vistos en teoría sobre trazado de ra-yos, radiosidad, mapas de entorno (simulación de reflexiones) e iluminaciónbasada en imágenes de alto rango dinámico.

Software: Blender 2.33a. + Yafray 0.0.6 + Gimp 1.2.4 Fecha: 20/Mayo/2004

Figura 1

Figura 2

Figura 3

Figura 4

Page 28: Dise ño G ráfico 3 D So ftw are L ibre co n · ( Una Intro du cció n Práctica a B le nde r ) Actualizado a V. 2.33 Blender 2.33 Yafray 0.0.6 Wings3D 0.98 GIMP 1.2.4. ste manual

normal de las caras de las paredesestán apuntando hacia el exterior. Li-beramos la solución de radiosidadanteriormente calculada (pinchandoen Free Radio Data). Con la habita-ción seleccionada y en modo de edi-ción de vértices º, con todos selec-cionados A, corregimos las normalesW Flip Normals.

De igual modo, es importante que elmaterial de todo objeto que interven-ga en la escena tenga el botón Radioactivado (ver figrua 5). De otra for-ma, aparecerá de color negro en laescena, aunque tenga los vectoresnormales apuntando correctamente.

En la figura 4, el tamaño de los par-ches (PaMax - PaMin) determina eldetalle final (cuanto más pequeñosea, más detallado será el resultadofinal), pero incrementamos el tiempode cálculo. De forma similar ocurrecon el tamaño de los elementos (El-Max - ElMin). En Max Iterationsindicamos el número de pasadas queBlender hará en el bucle de Radiosi-dad. Un valor 0 indica que haga lasque estime necesarias. MaxEl indicael número máximo de elementospara la escena. Hemires es el ta-maño del hemicubo (técnica utilizadapara calcular el parámetro H visto enteoría, de cálculo de visiblidad). Con las normales corregidas, y conlos valores por defecto de Blender,seleccionamos de nuevo todos losobjetos de la escena A y lanzamosigual que antes el cálculo de la radio-sidad. Una vez terminado el proceso decálculo (podemos pararlo cuando lacalidad sea aceptable con ¹), pode-mos añadir la nueva malla calculadareemplazando las creadas anterior-mente (Replace Meshes) o añadirlacomo nueva a la escena (Add newMeshes). Elegiremos esta segundaopción. Antes de deseleccionar lamalla con la información de radiosi-dad calculada, la moveremos a otracapa. Las capas en Blender se utili-zan de forma similar a como se haceen cualquier otro programa de di-seño. Pueden resultar muy útilescuando la complejidad de la escenacrece. Incluso son imprescindibles

para algunas operaciones (como enlos mapas de entorno). Las capas ac-tivas (visibles) en cada momentopueden verse en la cabecera de cual-quier ventana 3D (figura 6).

En el caso de la figura 6, sólo la pri-mera capa está activa. Podemos se-leccionar múltiples capas como acti-vas pinchando sobre ellas con la te-cla § pulsada.

Movemos los objetos seleccionados(en nuestro caso, la nueva malla) auna nueva capa pulsando la tecla M.Nos aparecerá una ventana emer-gente donde nos pedirá la capa des-tino del movimiento (figura 7).

Movemos la malla de radiosidad a lasegunda capa y liberamos la memo-ria ocupada por estos datos pinchan-do en Free Radio Data.

Activamos únicamente la segundacapa y renderizamos. Tenemos queobtener una imagen similar a la figu-ra 8.

Vamos a añadir el mapa de entorno ala esfera, para que refleje el resto deobjetos de la habitación. Para ello,primero separaremos la malla delresto, moviéndola a la capa 3. Enmodo de edición de vértices º, se-leccionamos uno de los que formanla esfera. Pulsamos la tecla L y se-leccionamos, de esta forma, todoslos que están enlazados con ese di-rectamente (los que forman la esfe-ra). Separamos este conjunto de vér-tices como un objeto nuevo pulsandoP. Movemos la esfera a la terceracapa (tecla M con la esfera seleccio-nada). Hacemos las dos capas visi-bles a la vez. Añadimos un objetoEmpty en la capa 2, situado en el

centro de la esfera, al que llamare-mos "EmptyEntorno" (figura 9). Nosservirá para calcular el mapa de en-torno cúbico, como si estuviéramossituados en ese punto del espacio.

Al material azul de la esfera le aso-ciamos una textura (también me-diante el atajo de teclado ±). Añadi-mos una textura nueva Add New, yen el tipo de textura elegimos Env-Map. Aparece una nueva pestañacon las opciones del mapa de entor-no. Los botones azules (Static,Anim y Load) indican si el mapa deentorno se va a calcular sólo una vez(en caso de que los objetos del mun-do no se muevan), Anim (en caso deque haya desplazamiento de los ob-jetos) o Load (para cargar el mapade entorno precalculado en una ima-gen). Free data sirve para forzar aque se recalcule el mapa. En Ob: in-dicaremos el objeto que nos serviráde origen para calcular el mapa. Ennuestro caso será EmptyEntorno.Con CubeRes indicamos la resolu-ción, en píxeles, de cada pared delcubo (hemos aumentado la resolu-ción a 300 píxeles). Al lado, tal ycomo muestra la figura 10, nos indi-ca qué capa(s) no queremos renderi-zar.

Es muy importante no renderizar lascapas donde se encuentren los obje-tos a los que vamos a aplicar elmapa de entorno. De otra forma, elmapa obtenido renderizaría el inte-rior del objeto (en nuestro caso laesfera). Así, indicamos que la capa 3no la vamos a tener en cuenta. Paraterminar, en los botones de som-breado °, habrá que indicar que que-remos usar el vector de reflexión

Animación para la Comunicación Escuela Superior de Informática Ciudad Real (UCLM) Práctica 11 [Página 2]

Figura 5

Figura 6

Figura 7

Figura 8

Figura 9

Figura 10

Page 29: Dise ño G ráfico 3 D So ftw are L ibre co n · ( Una Intro du cció n Práctica a B le nde r ) Actualizado a V. 2.33 Blender 2.33 Yafray 0.0.6 Wings3D 0.98 GIMP 1.2.4. ste manual

como coordenadas de textura (Refl),como se muestra en la figura 11.

Hecho esto, si renderizamos la esce-na (con el botón EnvMap de las op-ciones de render activado), debemosobtener un resultado similar al de lafigura 12.

2ª Parte ::: Raytracing

En esta segunda parte de la prácticautilizaremos las características de tra-zado de rayos de blender. Para co-menzar, abriremos el fichero P11-RayTracing.blend.

En este archivo, encontramos la esce-na de la figura 13. Únicamente se hanasignado texturas procedurales a los

pedestales de las esta-tuas y al suelo. Vamosa asignar materiales alos dinosaurios. Todoslos elementos que for-man cada dinosaurio(ojos, párpados y cuer-po) comparten el mis-mo material. Hay tresmateriales diferentes,nombrados como oro,plata y cristal. Selec-cionamos cada uno delos dinosaurios y, en los botones desombreado , asignamos las pro-piedades de material correspondien-tes a las figuras 14 (oro), 15 (cris-tal) y 16 (plata).

Los materiales de oro y plata tienenactivado el botón de RayMirror.Con esto, indicamos a blender quedebe tomar estos materiales comoespejos (en el grado indicado porRayMir), calculando el número deniveles recursivos indicado porDepth. Mediante el parámetroFresnel ajustamos el nivel de refle-xión de este material, suavizado conel parámetro Fac.

El material de cristal, además debeser translúcido. Por esta razón, seha activado el botón RayTransp,con un bajo índice de refracción(parámetro IOR). A mayor IOR,mayor refracción del material. Esimportante ajustar el parámetro detransparencia Alpha (notado con laletra A, debajo de la definición de

color) en el material. En nuestro caso,se ha definido el material como muytransparente (A = 0.110).

Finalmente, se ha elegido en todoslos materiales el modelo de brillo es-pecular Toon, por concentrar los bri-llos, y se han ajustado los parámetrosde reflexión y brillo como muestracada figura.

Si queremos renderizar la escena,hay que activar el render medianteraytracing de Blender. Para ello, acti-vamos el botón Ray (ver figura 17).

Animación para la Comunicación Escuela Superior de Informática Ciudad Real (UCLM) Práctica 11 [Página 3]

Figura 11

Figura 12

Figura 13

Figura 14

Figura 15

Figura 16

Figura 17

Page 30: Dise ño G ráfico 3 D So ftw are L ibre co n · ( Una Intro du cció n Práctica a B le nde r ) Actualizado a V. 2.33 Blender 2.33 Yafray 0.0.6 Wings3D 0.98 GIMP 1.2.4. ste manual

El nivel de Oversampling influye deforma muy directa sobre el tiempo derender. Lo activaremos únicamentecuando queramos obtener la imagenfinal. Además, es muy aconsejablerealizar las pruebas de renderizado abaja resolución.

El parámetro inferior(en la figura 17 estámarcado con el valor256) indica la reso-lución de árbol octalque emplea blenderpara construir la es-cena. Con valoresmás altos, el tiempode procesamientoprevio es mayorpero ahorraremostiempo en la generación de la ima-gen. Cambiamos el tipo del foco, acti-vando el botón RayShadow en laspropiedades del foco (figura 18).

Si renderizamos la escena, obtendre-mos un resultado similar al de la figu-ra 19. En este caso, se ha utilizado

una textura para obtener un cambioen el vector normal (Nor) y aplicarasí Bump Mapping en el letrero decada estatua.

Vamos a renderizar la misma escenaen Yafray. Para ello, primero debe-mos tener instalado yafray correcta-mente en nuestro sistema y, desdeuna consola tecleando "yafray", de-berá mostrar las opciones del pro-grama. Con yafray correctamenteinstalado, tendremos que indicar ablender el directorio donde debe

guardar los ficheros que generaráyafray. Esta opción de configuraciónse indica desplegando la zona de lacabecera superior de blender (nossituamos en la zona de unión de laventana 3D con la ventana de infor-mación y arrastramos). El directoriotemporal de yafray (ver figura 20)se especifica en el campo YFexport

del conjunto de opciones File Paths.Será en este directorio donde se al-macene el fichero de descripción deescena YBtest.xml que utilizaremosmás adelante.

Nos situamos en los botones de ren-derizado , y seleccionamos en la lis-ta desplegable a Yafray como motorde render (ver figura 21, a la izquier-da debajo del botón Render). Apare-cerán dos pestañas con las opcionesde configuración de Yafray (figura21).

Es importante que las primeras prue-bas de render las realicemos a bajaresolución (25% de la resolución defi-nitiva o incluso menor), y desactivan-do el Oversampling. Cuando los valo-res de iluminación sean correctos, ac-tivaremos el render a máxima calidadcon un nivel de Oversampling acepta-ble (8 suele ser suficiente).

Animación para la Comunicación Escuela Superior de Informática Ciudad Real (UCLM) Práctica 11 [Página 4]

Figura 18

Figura 19 Figura 22

Figura 20

Figura 21

Page 31: Dise ño G ráfico 3 D So ftw are L ibre co n · ( Una Intro du cció n Práctica a B le nde r ) Actualizado a V. 2.33 Blender 2.33 Yafray 0.0.6 Wings3D 0.98 GIMP 1.2.4. ste manual

En el panel titulado Yafray (figura21), tenemos opciones generales deconfiguración; como el botón Au-toAA, que permite a Yafray seleccio-nar automáticamente el nivel de An-tiAliasing (Oversampling), la profundi-dad máxima del trazado de rayosRaydepth y ajustes particulares deexposición de la luz, corrección degama, etc...

En panel de iluminación global (Ya-fray GI), en principio presenta doslistas de selección. En la lista de mé-todo de iluminación Method, pode-mos elegir entre Skydome, en el quela luz se calcula proveniente única-mente desde el fondo, o Full, querealiza un cálculo de iluminación glo-bal completa (con iteración de la luzentre objetos). Elegiremos este se-gundo método. La lista de calidadQuality ajusta, según el parámetroseleccionado, las variables que nece-sitará yafray para renderizar la esce-na. Estos valores predefinidos segúnla calidad elegida, podrán cambiarseeditarndo el fichero XML (YB-test.xml) que exportará Blender. Elparámetro Power situado en el infe-rior del panel permite ajustar la in-tensidad de las fuentes de luz de laescena. En algunas escenas habráque ajustar este parámetro (normal-mente incrementarlo) para obtenerun valor de iluminación correcto.

Con el método de renderizado com-pleto, tendremos que especificar dosnuevos parámetros; Depth (rebotesde la luz entre objetos) y CDepth(rebotes de la luz dentro de objetostranslúcidos para obtener caústicas).

Si activamos el modo Caché, acele-raremos los cálculos y suavizamos elruido. En ShadQu indicamos la cali-dad de las sombras; con valores másaltos obtenemos mejores resultados(naturalmente, con mayor tiempo decálculo). Prec indica la precisión delpíxel (un valor más bajo implica ma-yor calidad). Gradient es un esque-ma de suavizado de sombras, que novamos a utilizar en nuestra escena.Refinement es un valor umbral,donde especificamos el cambio de in-tensidad que vamos a permitir entremuestras. Valores más pequeños danresultados más precisos.

Los fotones Photons únicamenteayudan al cálculo de la iluminación.Funcionan especialmente bien en es-cenas de interiores donde no hay cie-los visibles, donde la luz entra poruna zona claramente definida. Aun-que en nuestra escena no serían ne-cesarios, vamos a utilizarlos y a estu-diar sus parámetros. Count indica elnúmero de fotones a lanzar, un nú-mero mayor implica un restulado mássuave. Radius indica el nivel de difu-

minado entre fotones. Es importanteencontrar un valor adecuado paraque el resultado sea suave. Mix-Count indica el número de fotonesque van a situarse dentro del radioanterior. Finalmente, el botón TunePhotons sirve para obtener unarespresentación preliminar del ma-peado de fotones. Deberá estar de-sactivado para generar la imagenresultado.

Con estos parámetros, podemosrenderizar la escena · y obtenemosla imagen de la figura 22. El progre-so de render puede verse en la con-sola en modo texto de blender (elterminal DOS en windows o la con-sola desde donde hayamos ejecuta-

do blender). Antes de obtener losparámetros definitivos, hemos reali-zado pruebas a baja resolución. Elproceso de generación de la imagenpuede resultar bastante costoso y,dependerá del procesador el tiempode generación. Podemos abortar elrender pulsando ¦C en la consola.

Vamos a utilizar ahora iluminaciónbasada en imágenes HDRI. Para ello,eliminamos el foco de la escena y,con los mismos parámetros del ejem-plo anterior, lanzamos el render. Es-peramos a que yafray cargue los ob-jetos de la escena, analice la gramáti-ca y llegue al punto de generación dela imagen (cuando muestra la barrade progreso; ver listado 1). En este

Animación para la Comunicación Escuela Superior de Informática Ciudad Real (UCLM) Práctica 11 [Página 5]

[Loader]: Added globalphotonlight light gpm[Loader]: Added pathlight light path_LT[Loader]: Added constant background world_background[Loader]: Added camera MAINCAMUsing a world resolution of 0.00152381 per unitRendering with 5 raydepth2 anti-alias passes and 4 minimum samples per pass, 8samples total.Building the bounding tree ... OKSetting up lights ...Finished setting up lightsLaunching 1 threads for rendering ...Rendering ...0% 50% 100%[####...................................]

Listado 1

<background type="constant" name="world_background" ><color r="1.009920" g="1.009920" b="1.009920" />

</background><camera name="MAINCAM" resx="550" resy="600" focal="1.193182" >

<from x="15.503942" y="1.697953" z="17.577042" /><to x="14.842168" y="1.940074" z="16.867512" /><up x="14.837610" y="1.941742" z="18.281717" />

</camera><render camera_name="MAINCAM"

raydepth="5" gamma="1.000000" exposure="0.000000"AA_passes="2" AA_minsamples="4"background_name="world_background"AA_pixelwidth="2" AA_threshold="0.05" bias="0.001000" ><outfile value="f:\yafrayTemp\YBtest.tga" />

</render>Listado 2 (Original)

<background type="HDRI" name="entHDRI" exposure_adjust="0.3"> <filename value="car.hdr"/></background><camera name="MAINCAM" resx="550" resy="600" focal="1.193182" >

<from x="15.503942" y="1.697953" z="17.577042" /><to x="14.842168" y="1.940074" z="16.867512" /><up x="14.837610" y="1.941742" z="18.281717" />

</camera><render camera_name="MAINCAM"

raydepth="5" gamma="1.000000" exposure="0.700000"AA_passes="2" AA_minsamples="4"background_name="entHDRI"AA_pixelwidth="2" AA_threshold="0.05" bias="0.001000" ><outfile value="f:\yafrayTemp\YBtest.tga" />

</render>Listado 3 (Modificado)

Page 32: Dise ño G ráfico 3 D So ftw are L ibre co n · ( Una Intro du cció n Práctica a B le nde r ) Actualizado a V. 2.33 Blender 2.33 Yafray 0.0.6 Wings3D 0.98 GIMP 1.2.4. ste manual

momento podemos abortar el render¦C (el fichero XML ha sido guardadoen el directorio temporal de yafray).

Nos vamos al directorio de exporta-ción de yafray y editamos el ficheroYBtest.xml. Al final del fichero, reali-zaremos una serie de cambios rela-cionados con el modo de iluminación.Del fichero original (listado 2), cam-biamos al tipo de fondo background(listado 3) y el nombre del fondo enla etiqueta render. En nuestro ejem-plo, car.hdri es el nombre de la ima-gen HDRI que hemos utilizado. Exis-ten visores gratuitos de este tipo deimágenes, como HDRView. Puede ser interesante modificar losatributos AA_passes del campo Ca-mera (número de pasadas de AntiA-liasing) y la resolución de la imagen(campos resx y resy) a la hora derealizar pruebas. Si la iluminación escorrecta, ajustaremos la resolución asu valor definitivo con las pasadas deAntiAliasing convenientes. Es impor-tante ajustar el parámetro exposu-re_adjust para cada mapa HDRI. Nohay una receta mágica. Deberemosprobar para cada mapa HDRI qué va-lor debemos ajustar en este paráme-tro. De igual forma, podemos ajustarla exposición de la cámara (paráme-tro exposure).

Con el fichero modificado, desde unterminal lanzaremos yafray pasándolecomo parámetro el nombre del fiche-ro XML. Tras un rato de espera, ten-dremos la bonita imagen renderizadadonde apunte el parámetro outfile(ver listado 3). Con la imagen HDRIde la figura 23 (car.hdri), hemos ob-tenido el resultado de la figura 24.Podemos encontrar imágenes HDRIen varios sitios de internet. Uno deellos, en la página del investigadorprincipal de este tipo de técnicas PaulDebevec (http://www.debevec.org/).

En la figura 25 se pueden ver variaspruebas de iluminación empleando di-ferentes imágenes HDRI. Los resulta-dos dependen, de igual forma, delajuste del parámetro exposure_ad-

just y la iluminación particular decada imagen.

Vamos a mejorar la imagen aña-diendo iluminación desde un foco.Para ello, volvemos al fichero de laescena con la que obtuvimos la ima-gen de la figura 22 (cuando aún no

habíamos eliminado el foco). Asigna-remos a toda la escena el mismo ma-terial, que no tendrá nada de brilloespecular (ver figura 26). De igualforma, quitaremos las propiedades dereflexión y transparencia en raytra-cing. Definiremos el material de colorblanco.

Animación para la Comunicación Escuela Superior de Informática Ciudad Real (UCLM) Práctica 11 [Página 6]

Figura 23

Figura 24

Figura 25

Page 33: Dise ño G ráfico 3 D So ftw are L ibre co n · ( Una Intro du cció n Práctica a B le nde r ) Actualizado a V. 2.33 Blender 2.33 Yafray 0.0.6 Wings3D 0.98 GIMP 1.2.4. ste manual

Sin cambiar los parámetros de render(y sin emplear imágenes HDRI), lan-zamos la generación de la imagencon Yafray. Mediante este procesoobtendremos una imagen que guar-dará la información de las sombrasen la escena. Como no hay diferen-cias en los materiales, podemos em-plear esta imagen como mapa desombras y componerla con la escenarenderizada con el mapa HDRI (de lafigura 24). Abrimos la imagen gene-rada en este paso (correspondientecon la figura 27) con Gimp, y ajusta-mos el brillo y el contraste para obte-ner una imagen con la información delas sombras). Para ello, hacemos sobre la imagen, Image, Colors,Brightness-Constrast. Ajustamos elbrillo a 70 y el contraste a 110.

Esta imagen resultado (figura 28),la compondremos con el resultadodel render mediante HDRI, para ob-tener la imagen final de esta sesión(figura 30). Para ello, abrimos laimagen resultado del paso anterioren GIMP, creamos una capa nueva ypegamos en esta capa la imagen dela figura 28. Este paso puede verseen la figura 29.

Queremos componer la nueva capacomo capa de sombras. Tenemosque indicar a GIMP que compongaesta nueva capa, empleando elmodo Multiply, que oscurece los co-lores de las capas inferiores (en estecaso, la capa con el render HDRI,con la nueva capa de sombras.Además, ajustaremos la opacidad dela capa de sombras, para que el re-

sultado sea más suave. Con esta téc-nica podemos ajustar el resultado fi-nal de nuestras imágenes dando ma-tices particulares de iluminación,creando y componiendo varias capas.

Animación para la Comunicación Escuela Superior de Informática Ciudad Real (UCLM) Práctica 11 [Página 7]

Figura 26

Figura 27

Figura 28

Figura 30

Figura 29

Page 34: Dise ño G ráfico 3 D So ftw are L ibre co n · ( Una Intro du cció n Práctica a B le nde r ) Actualizado a V. 2.33 Blender 2.33 Yafray 0.0.6 Wings3D 0.98 GIMP 1.2.4. ste manual

l ejecutar el programa nos en-contramos con el interfaz quese muestra en la figura 1. A

La ventana aparece dividida en 4partes. Arriba a la derecha está lazona de previsualización. En estaparte podemos reescalar los vídeosque componemos, desplazarlos,etc... Además, ofrece una visión delresultado que obtendremos. Abajo ala derecha aparece la ventana deayuda. Arriba a la izquierda está lazona de filtros y propiedades. Por úl-timo, abajo a la izquierda aparece latípica línea de tiempo de los progra-mas de composición de vídeo.

Para comenzar, cargaremos un vídeohaciendo sobre la zona de la líneade tiempo , Import Video Clip.Cargaremos "povray.mpg" (ver figu-ra 2). Las imágenes y sonidos se im-portan con esta misma opción. Laaplicación soporta AVI, BMP, JPG yWAV.

Antes de continuar cargando los ví-deos, configuraremos el proyecto. En

Destination, Video Format elegire-mos 352 / 288 (CIF PAL) , y enDestination, Frames Per Second25. Guardamos el proyecto.

Podemos hacer "zoom" sobre la líneade tiempo pinchando en los botones+ y - de su esquina inferior derecha.Pinchando en F el programa realizael ajuste óptimo. Distinguimos nue-vas partes del interfaz (ver figura 3).En (a) se definen los parámetros deentrada del vídeo (imagen o sonido).Entre otras cosas, podemos "recor-tar" únicamente la parte de un vídeoque nos interese utilizar. En (b) ges-tionaremos los filtros. En el vídeo deejemplo, se han utilizado, principal-mente, el de opacidad (Basic ef-fects, Opacity) y el RGB Key, quenos permite definir qué color tomarcomo transparente (muy útil en rotu-lación). (c) nos define la posición,dentro del vídeo seleccionado, enque nos encontramos. Es un valorlocal. El valor global del vídeo se en-cuentra en la barra inferior de la ven-tana. La aplicación mide el tiempo ensegundos (no en frames, como Blen-der).

Podemos acceder a un valor exacto

Animación para la Comunicación Escuela Superior de Informática Ciudad Real (UCLM) Práctica 12 [Página 1]

© 2004 Carlos González Morcillo. Se permite la copia, distribución y/o modificación de este documento bajo los términos de la licencia de documentaciónlibre GNU, versión 1.1 o cualquier versión posterior publicada por la Free Software Foundation; sin secciones invariantes. Puede consultar esta licenciaen http://www.gnu.org

Práctica 12: Composición de VídeoAnimación para la Comunicación ::: ESI-CR ::: UCLMCarlos González Morcillo :: [email protected] :: http://www.inf-cr.uclm.es/www/cglez

En esta última sesión aprenderemos a manejar un programa de edición devídeo: Zwei-stein. Sincronizaremos un conjunto de vídeos, con efectos detransciones y rótulos mediante imágenes.

Software: Zwei-Stein 3.01 Fecha: 27/Mayo/2004

Figura 1

Figura 2

Figura 3

Page 35: Dise ño G ráfico 3 D So ftw are L ibre co n · ( Una Intro du cció n Práctica a B le nde r ) Actualizado a V. 2.33 Blender 2.33 Yafray 0.0.6 Wings3D 0.98 GIMP 1.2.4. ste manual

de tiempo haciendo doble clic con sobre la barra de tiempo. Podemosespecificar un valor numérico exactoprácticamente sobre cualquier pará-metro (barras deslizantes, etc...) coneste método. (d) está formado portres valores: punto de comienzo (enel tiempo general de la composición),comienzo local del vídeo (si lo hemosrecortado por el principio, será dis-tinto de cero) y punto final. Dandovalores exactos a estos parámetros,podemos ajustar con total precisiónlas uniones entre partes. (e) permitedesplazarnos por el tiempo generaldel vídeo.

Encima de (e), podemos definir"atajos" para llegar a ciertas partesdel vídeo. (f) ofrece una previsuali-zación del frame actual. La barra (g)define el intervalo que vamos a ge-nerar de vídeo. Cuando realicemospruebas, sólo generaremos el inter-valo sobre el que estemos probando.Cuando queramos generar el vídeocompleto, haremos sobre (g)Auto Adjust Make Strip. Por últi-mo, (h) ofrece una previsualizacióndel resultado final y un mecanismopara reescalar y desplazar los ele-mentos que intervienen en la compo-sición.

¿Cómo gestiona Zwei-Stein los fra-

mes clave y las interpolaciones? Paraesta aplicación, al igual que la ma-yoría de editores de vídeo, las inter-polaciones entre frames clave son li-neales. Por tanto, los parámetroscambiarán a velocidad constante en-tre claves definidas.

Para introducir un frame clave sobrecualquier parámetro, bastará concambiar el parámetro en el frame ac-tual. Por ejemplo, si quisiéramos in-troducir un degradado en la transpa-rencia del primer vídeo, nos iríamosal segundo 0.0 y cambiaríamos el va-lor del filtro Opacity a -1. Después,avanzamos un poco (por ejemplo,segundo 0.5) y cambiamos el valor a0. Observamos que aparece una lí-nea de representación sobre el obje-to vídeo, que indica la variación deese parámetro. Los puntos amarillosindican frames clave.

En la ventana de previsualizacióntambién aparecen cuadros amarilloscuando tenemos un frame clave. Po-demos realizar operaciones básicassobre los frames clave en (a) y (b),accediendo con . Generamos el ví-deo resultado (delimitado por la fran-ja Make) accediendo a Destination,Export, Video for Windows *.AVI.Un codec que da muy buen resultadoes el de Intel (IYUV) o el Xvid con un

buen ratio entre calidad y velocidadde compresión. Es importante cono-cer el destino del vídeo generado, yaque algunos códecs se ajustan mejora su publicación online, y otros mejora publicación multimedia.

Para terminar, en la figura 4 semuestra el esquema final resultantedel vídeo generado en esta práctica.

Más editores de vídeo

Zwei-stein es un programa freewarepero no libre. Otra alternativa algomenos potente es el compositor devídeo de Blender que se utilizó enprácticas anteriores. Para realizaroperaciones sencillas con flujos de ví-deo y audio, se puede utilizar Vir-tualDub http://www.virtualdub.org/,una aplicación para windows quepermite cambiar el codec de una se-cuencia, cortar y pegar trozos, etc...

Los usuarios de Linux tienen variasalternativas libres. Sin duda, una delas más versátil es Cinelerra,http://heroinewarrior.com/cinele-rra.php3, desarrollado por heroinewarrior. Otra alternativa en linux,mucho más intuitiva de utilizar (aun-que con menor funcionalidad) esKino, descargable en http://kino.s-chirmacher.de/.

Animación para la Comunicación Escuela Superior de Informática Ciudad Real (UCLM) Práctica 12 [Página 2]

Figura 4