domingo, 19 de octubre de 2014

Alcalá, vieja y ahora encarcelada

Qué encontrarás en esta entrada?
  • Estado actual de "Alcalá La Vieja".

"Alcalá La Vieja" es el nombre que le dieron los cristianos al viejo núcleo poblacional que, en época de los árabes, se formó al rededor de la pequeña fortificación de "Qal'at'Abd al-Salam", tras abandonarlo para fundar un nuevo núcleo en la ribera derecha del Río Henares. De esta fortificación ("Al Qal'at" en árabe) proviene precisamente el nombre de la ciudad.

Durante mucho tiempo estos restos arqueológicos han estado completamente desatendidos y a merced del vandalismo, pese al importante significado que deberían tener precisamente para esta ciudad. En la actualidad, y en el contexto de Plan de Yacimientos Visitables de la Comunidad de Madrid, parece que son susceptibles de recibir cierta atención.

La noticia me la tomo con cierto escepticismo, puesto que hoy he ido a visitarlos después de haberles dado un tiempo prudencial tras el anuncio como para poder ver cambios sustanciales, y sin embargo, de momento sólo me he encontrado el recinto vallado, con muy pocos avances e incluso algún retroceso.

Estás son las fotos de hoy, 19 de octubre de 2014:

Señalización

Puerta principal

Vallado de la puerta principal

Conjunto principal con la torre albarrana al fondo

Una de las torres

Aljibe

Vallado del aljibe

Lo primero que observamos es que no parece haber muchos cambios en las excavaciones. A continuación mostramos una comparación de la situación con respecto a agosto de 2012.

Octubre 2014
Agosto 2012
Octubre 2014
Agosto 2012

Además, hay ciertos escombros (vallas y señalización) tirados por la zona sin cumplir aparentemente ninguna misión concreta.


Por último, las zonas aparentemente excavadas en agosto del 2012 detrás del yacimiento principal, parecen haber sido enterradas.

Agosto de 2012: aparentemente, restos tras el yacimiento principal. Hoy cubiertos por tierra.

En definitiva, pocos y confusos cambios desde que se diera la noticia hace unos meses. Quizás sea aún pronto, y haya que dejar aún un poco más de margen para poder ver este importante yacimiento con el esplendor que se merece. Estaremos atentos hasta que eso ocurra.

sábado, 4 de octubre de 2014

Las Aventuras de Charly Cangupollo

Qué encontrarás en esta entrada?
  • Nuevo corto de Astaroth's World.
  • Algo de "making of".

Astaroth's World se enorgullece de presentarles: Las Aventuras de Charly Cangupollo.


Charly Cangupollo empezó a ser concebido el 16 de septiembre de 2014. Tras las pruebas que vimos en este blog sobre el uso de pelo en Blender, los primeros prototipos apuntaban a ser un bicho peludo, parte dinosaurio, parte ave, parte... ¿oveja?


En esta primera fase la elección del color se pospuso para etapas posteriores, planteándose incluso que fuera un proyecto íntegramente en blanco y negro, jugando con la estética de las viejas películas de dinosaurios (ver fragmento de "The Lost World", de 1925), lo cual además le añadía cierto aire "burtoniano".

Por motivos técnicos, el uso del pelo en la animación es un tema complicado: el procesamiento necesario para mostrarlo en pantalla consume una gran cantidad de recursos de nuestro ordenador. Por ello, para animaciones largas, es preferible evitarlo en la medida de lo posible, o tenerlo, cuanto menos, bastante controlado. Realicé pruebas en otros materiales, como la que se muestra a continuación, que intentaba emular la estética de un juguete de madera sobre un folio arrugado.


Finalmente decidí darle un aspecto más orgánico y convertir los dobleces del folio en las dunas de un desierto.


De esta manera, seguía utilizando pelo (para las plantas), pero de manera más controlada, siendo factible la renderización de escenas más largas. La imagen de arriba estuvo a punto de ser el resultado final, pero unas consultas a mi familia de última hora me animaron a darle unos últimos retoques y algo más de color a la historia.


La fase siguiente fue la animación del modelo que acababa de crear, lo que llaman "rigging". en esta fase hay que construir un esqueleto y hacer que se mueva de manera coherente. Ya os hablé con cierto detalle sobre ésto en mi última entrada sobre "cinemática inversa" (IK).


Para el día 20 de septiembre ya tenía mi modelo con la capacidad de ser animado, de manera que podría introducirlo en cualquier historia. El guión fue surgiendo de manera natural y espontánea, básicamente era presentar un poco al personaje que acababa de crear.

La siguiente etapa es la renderización. Gracias a la monitorización que puedo hacer vía móvil de este proceso, según ya os comenté en esta entrada, pude consultar a tiempo real el estado de la renderización y ahora guardo registros sobre ello.




La animación se renderizó en tres partes (¡aviso spoilers!, ver primero el vídeo del principio de esta entrada):

  • Caminata (24/09/2014): La caminata está asociada al archivo #43 en mi flujo de trabajo. Son 1600 fotogramas que tardaron en renderizarse 346,51 minutos (unas 6 horas). Esta es la parte más ligera de la animación, con un tiempo medio de renderización de 13 segundos por fotograma. Los únicos elementos que la ralentizaban eran las plantas (hechas con la tecnología para pelo de Blender).

  • Meteorito (27/09/2014): La segunda escena (archivo #54) ya fue más pesada (unos 2,5 minutos por fotograma). El uso del humo en Blander también es un elemento ralentizador de la renderización. En este caso fueron 500 fotogramas que tardaron 1157,13 minutos (unas 20 horas).

  • Final (29/09/2014): En la última escena (archivo #57) profundizo en el uso del fuego y el humo, siendo también de renderizado bastante lento (unos 2 minutos por fotograma). Otros 500 fotogramas que en este caso tardaron 1005,70 minutos (unas 17 horas) en renderizarse.

En total tenemos 2600 fotogramas (menos de dos minutos de vídeo) que tardaron en renderizarse unas 43 horas.

La última etapa es el montaje de vídeo, en la que incluyo el sonido y los efectos especiales, y con esto finalizaría el proceso dando el resultado que podéis ver al principio.

Agradecer el nombre del personaje a una compañera del trabajo, que nada más ver los primeros prototipos, tuvo claro que se trataba, sin lugar a dudas, de un "cangupollo".

¡Espero que os haya gustado!

domingo, 21 de septiembre de 2014

"IK" no significa "¿Y qué?"

Qué encontrarás en esta entrada?
  • Cinemática inversa en Blender.
  • Imágenes y vídeos de ejemplo.


La cinemática inversa (en inglés, "inverse kinematics", conocida a veces como "IK") es una disciplina que intenta calcular el movimiento de una cadena de articulaciones dadas ciertas restricciones, por ejemplo, la posición de la punta de la cadena.

Esto puede tener aplicaciones interesantes en robótica. En animación 3D, también tiene su utilidad, que es de lo que vamos a hablar en esta entrada.

Hasta hace poco, para mi esta era una parte muy oscura de la animación. Mi intención es arrojar algo de luz sobre el procedimiento básico en Blender con los últimos conocimientos que he adquirido para todo aquel que se encuentre en la situación en la que yo estaba hace unos días.

Cuando queremos animar un modelo 3D, el primer paso es tener el modelo, por lo que, lógicamente, hay que modelarlo. No entraremos en este post en los detalles del mundo del modelado, sobre el cual hay información de sobra en la red.

Una vez tengamos nuestro modelo 3D inerte, le dotamos de un esqueleto (en Blender se le llama "armature"). Un esqueleto es una estructura formada por huesos ("bones"). La creación del esqueleto es un proceso muy parecido al del modelado, salvo que en vez de usar figuras geométricas, se utilizan huesos, que geométricamente no son más que objetos con dos vértices ("cabeza" y "cola"). Los huesos se construyen según cómo queramos que se mueva nuestro modelo. Entre hueso y hueso hay una articulación que puede rotar, deformando la parte del modelo a la que esté asociada.


Esqueleto y algunos movimientos posibles con cinemática inversa
Cuando tengamos construido nuestro esqueleto, hay que asociarlo con las partes del modelo que se van a mover. Esto se realiza seleccionando siempre primero el modelo, luego el esqueleto, y con "ctrl+p". Se selecciona entonces la opción de asignar pesos automáticos.


Con esto tenemos una asignación básica de la parte a la que afectaría cada hueso. En mi opinión, es muy importante revisarla. Desde el menú de edición del modelo, una vez asociado el esqueleto, en la pestaña de grupos de vértices, aparecerán grupos con los nombres que hayamos dado a cada hueso. Desde allí se puede revisar exactamente qué conjunto de vértices de nuestro modelo están afectados por cada hueso, y redefinirlo con la ayuda de los botones "assign" (asignar el conjunto de vértices seleccionado), "remove" (borrar el conjunto de vértices que había sido asignado previamente), "select" (seleccionar el conjunto de vértices que fue asignado previamente) y "deselect" (desmarcar el conjunto de vértices asignado).


Con esto habríamos acabado la tarea de añadir un esqueleto a nuestro modelo, y podríamos deformarlo moviendo cada uno de los huesos. Sin embargo, hay una forma más interesante de animar a nuestro personaje, y es con la cinemática inversa.

El primer paso es crear unos huesos auxiliares en el esqueleto que estén desemparentados. Este paso es importante, durante mucho tiempo mi error era pensar que estos huesos eran opcionales, y por ello no obtuve el resultado deseado. El objetivo de estos huesos auxiliares "libres" es que podamos "tirar de ellos" para que se arrastre la cadena que tienen enganchada. Se crea un hueso auxiliar en cada parte del esqueleto de la que queramos "tirar" y se desemparenta seleccionando la "x" del apartado "parent", de tal manera que éste quede vacío y no muestre el nombre de ningún otro hueso. Así le hacemos que sea libre, y podremos transladarlo a nuestro antojo.


Evidentemente, no nos interesa que sea libre del todo, porque si no, no afectaría a nuestro sujeto. Lo que tenemos que hacer es encadenarlo a la punta de la cadena. Para ello, seleccionamos el hueso del que vayamos a tirar, después el último hueso de la cadena, y pulsamos "shift+i", de esta manera definimos una relación "IK", que podremos utilizar más tarde. No es raro que se descoloque nuestro modelo en este paso. Eso se debe a que la cadena que tenemos definida es de nivel 0. Hay que aumentar el valor de la longitud de la cadena ("Chain Length") en tantas unidades como articulaciones queramos que sean afectadas.


Una vez hecho esto, en el modo de pose, moviendo cada hueso auxiliar la cadena que lleva enganchada se moverá con él, pudiendo manejar a nuestro modelo como un titiritero tirando de cada cuerda. No tocamos todas las articulaciones, sino que tiramos de las puntas de las cadenas, y la cinemática inversa se encargará de recolocar el resto de los huesos cumpliendo con las restricciones que le hayamos metido.

Una vez obtenido el resultado deseado, lo guardamos con "i" y seleccionamos "Whole Character". Nos movemos a cualquier otro fotograma y repetimos la operación. Blender se encargará de generar una transición continua que una las dos poses.

A continuación, un muy breve ejemplo de lo que me ha salido a mi.


Estoy trabajando en un proyecto más amplio donde podréis ver a este simpático dinosaurio en acción. Espero poder enseñároslo pronto y también que este breve tutorial os haya aclarado algunas de vuestras dudas.