domingo, 31 de julio de 2022

“¿Qué es esto? No, en serio, ¿qué es esto?”

Ayer se publicó en el canal de YouTube de Martin Owens (doctormo) una nueva edición del habitual reporte semanal (en inglés) sobre el desarrollo de Inkscape.

Es muy interesante seguirlo todas las semanas para estar al tanto del desarrollo de nuestro editor vectorial preferido.

La edición de ayer fue un poco diferente a las habituales ya que se dedicó, casi exclusivamente, a un arreglo de seguridad.
Se trata de un problema de seguridad grave en archivos compatibles con XML que se conoce desde la década pasada relacionada con una característica llamada XML document entities y que desde entonces, en general, es una característica que ha dejado de utilizarse.

Inkscape tampoco permite el uso de estas “entities”. Con una salvedad. Dado que el plugin de Adobe Illustrator para exportar al formato SVG utiliza (o utilizaba) xml entities para la definición de sus name spaces, Inkscape los recibía al abrir los SVGs creados desde Illustrator.

En una antigua corrección a este problema, al abrir un SVG exportado desde Illustrator, Inkscape eliminaba el código problemático, pero no todo. Con la corrección que introdujo Martin esta semana, que es una solución más completa, se elimina todo el código problemático.

A partir de la marca 4:19, y junto a una captura de pantalla de un código SVG generado desde Illustrator, Martin le habla directamente a Adobe y le dice, traducción libre mediante, algo así:

¿Qué es esto? No, en serio, ¿qué es esto?

Vea, lo entiendo, SVG no es su formato nativo, pero esto es inaceptable. Esto es una representación XML estándar, de la interoperabilidad estándar XML. No es un curso de preparación de ensalada de frutas. Esto es un tema de estándares.

Si esta es la calidad de representación XML que es capaz de producir, entonces solo Dios sabe cómo se ven las personalizaciones de PDF que debe tener en su formato de vectores propio.

Quiero decir: ¡santo infierno! Esto no solo es malo. Es terrible. Podría decirse que, probablemente, sea deliberado.

La única razón por la que se haría algo tan malditamente horrible con este pobre archivo XML, que no se lo merecía, es porque se quería dificultar deliberadamente la apertura de estos archivos en otros programas. 

Lo que, en mi opinión, es simplemente inaceptable.

Ahora, vuelva atrás. Inténtelo de nuevo. Y espero no volver a ver algo tan malditamente horrible.

Aquí está el video completo:

viernes, 15 de julio de 2022

Modelado de la locomotora - Parte XI: correcciones y ajustes previos a la animación

Originalmente mi idea era que este video #11 de la serie fuera el primero de los dedicados a la animación del tren, pero con las pruebas que estuve haciendo encontré que, tal como estaba el archivo de trabajo hasta la parte anterior, le hacían falta algunas correcciones y ajustes para comenzar con la animación.

Así que, utilizando Blender 3.2, realicé varios de esos ajustes necesarios y algunos otros más bien cosméticos. Y eso es lo que muestra este video.

En suma, estos son los pasos realizados:

  • 00:49 - Eliminé el segundo vagón de pasajeros (ya que voy a hacer modificaciones en el primero y, llegado el momento, lo duplicaré para recuperar ese segundo vagón).

Probablemente el principal error a corregir sea el que cometí en el video 9 de esta serie, a partir de la marca 01:12:52, cuando convertí en malla a todos los objetos que forman la locomotora y el ténder y con eso apliqué todos los modificadores. ¡Incluso el Subdividir Superficie! El resultado son unas mallas con excesiva cantidad de vértices y muy pesadas para el programa (sobre todo pensando en que a esta escena le pienso seguir agregando elementos). Entonces, para solucionar ese problema:

  • 01:09 - Importé de un archivo de respaldo, vía File > Append..., una versión anterior de las colección “Locomotora” con sus objetos y con los modificadores sin aplicar.
    Además, como los objetos importados se llamaban iguales a los originales, el programa le agrega automáticamente el sufijo “.001” a cada uno.
    Eliminé la colección original y su contenido y a los objetos importados los renombré por lote (con Ctrl + F2) para quitarles ese sufijo.
  • 04:21 - Todos los objetos importados de la locomotora estaban alineados con el eje X. Los roté 90º para alinearlos con el eje Y, ya que me conviene para cuando, en el próximo video, vaya a utilizar la restricción de huesos “Follow Path” (Seguir trayectoria).
  • 04:47 - Apliqué las transformaciones (la rotación del paso anterior) y, como el modificador espejo de los objetos de la locomotora espejaba en el eje Y, los tuve que cambiar al eje X.
  • 05:50 - Hice unos procedimientos similares a los tres pasos anteriores pero para el ténder (el vagón del carbón).
  • 08:03 - Seleccioné todos los objetos que forman la locomotora y el ténder y los subí apenas en el eje Z para que la base de las ruedas quedaran a la altura de la parte superior de los rieles.
  • 09:14 - Agregué un nodo “Realize Instances” en el árbol de Geometry Nodes de los carbones del ténder para poder aplicar el modificador sin perder los carbones. Este paso ya lo había hecho en el video 9, pero como importé una versión anterior del ténder desde el archivo de respaldo, lo tuve que repetir.
  • 11:30 - Eliminé la colección “carbones.001” que había importado desde el archivo de respaldo y que ya no era necesaria al aplicar el Geometry Nodes de los carbones. La otra colección “carbones” que ya estaba en el archivo la conservé porque es la que provee las geometrías que se utilizan, en otro Geometry Nodes, para el balastro que va debajo de las vías del tren.
  • 11:51 - Como al chasis del ténder que importé del archivo de respaldo le faltaba el agregado del enganche que había hecho entre los topes del paragolpes trasero, pero el chasis del vagón de pasajeros sí lo tenía, lo que hice fue copiar esa parte de la malla del chasis del vagón de pasajeros y adosársela a la malla del chasis del ténder.
  • 14:59 - En la malla del chasis del vagón de pasajeros corregí un desplazamiento que había en el tope del paragolpes.
  • 17:30 - Renombré los elementos de la colección del vagón de pasajeros.
  • 18:43 - Moví el vagón de pasajeros a su ubicación detrás del ténder.
  • 19:00 - Subí apenas en Z todos los elementos del tren (menos las ruedas, las bielas y el émbolo de la locomotora que ya estaban en su posición correcta).
  • 19:55 - Ajusté a cero en el eje X la posición del techo del vagón (porque lo voy a utilizar como referencia en el espejo de otros objetos del vagón).
  • 20:16 - Borré los pasamanos y las ruedas del vagón de pasajeros (porque eran copias de los objetos del ténder luego de aplicarle el modificador Subdividir Superficie, por lo que estaban formados por demasiados vértices).
  • 20:42 - Ajusté la posición en Z del vagón de pasajeros con respecto al ténder.
  • 21:17 - Apliqué la posición en la locomotora y el ténder.
  • 21:43 - A los modificadores Mirror del techo del vagón de pasajeros, de la carrocería y de los vidrios, les desactivé el espejo en el eje X, les dejé el espejo en Y y los apliqué. Luego, a esos tres objetos les asigné un nuevo modificador Mirror, con eje en X con respecto al techo del vagón de pasajeros.
  • 23:23 - Le quité un Crease innecesario que tenía activado un borde de la malla de la carrocería del vagón de pasajeros. Le cambié el orden a los modificadores para que se viera bien la carrocería.
  • 24:18 - Copié el pasamanos del ténder y a la copia la moví al vagón de pasajeros (y a su colección). Luego lo roté y lo ubiqué en su lugar definitivo en la parte delantera del vagón de pasajeros. Dupliqué esa copia. Moví y ubiqué la nueva copia en la parte trasera del vagón de pasajeros. Uní ambos pasamanos con Ctrl+J, les apliqué las transformaciones y les asigné un modificador Mirror para que también aparecieran del lado izquierdo del vagón de pasajeros.
  • 27:15 - Copié las ruedas del ténder y a la copia la moví al vagón de pasajeros. Separé la copia de las ruedas en dos objetos. Moví el origen de la rueda delantera al centro de su eje.
    El freno de la rueda delantera ya tenía su origen en su centro, por lo que su coordenada en Y indicaba la posición que debía llevar el eje de la rueda. Copié la posición en Y del freno y se la pegué a la posición en Y de la rueda delantera.
  • 29:27 -  Moví el origen de la rueda trasera al centro de su eje. La coordenada para la posición del eje trasero la obtuve al duplicar y separar un borde de la malla del chasis del vagón de pasajeros.
  • 30:54 - Le quité el modificador espejo a las ruedas y a los frenos del vagón de pasajeros.
  • 31:32 - Uní las ruedas del vagón de pasajeros en un solo objeto, lo moví a su colección, lo renombré y le asigné un espejo en X con respecto al techo del vagón.
  • 32:24 - Del chasis del vagón de pasajeros seleccioné y separé por selección las “pancitas” que abarcan los ejes de las ruedas. Cerré los huecos generados en el chasis con la separación y corregí un error de sombreado que se daba por vértices duplicados.
  • 35:21 - Le ajusté las normales a una parte de la malla del freno que las tenía invertidas.
  • 35:42 - De la malla obtenida al separar las “pancitas”, borré los vértices que formaban la corresponidente al eje trasero. Y al objeto resultante lo uní al freno delantero y lo remodelé, creando una pieza que va a ser importante en la animación del vagón de pasajeros. Luego, con un mirror en X y en Y con respecto al techo, generé la parte izquierda de la pieza y la correspondiente al eje trasero.
  • 42:43 - Eliminé los vértices de la caldera de la locomotora que se asomaban por debajo del chasis de la misma.
  • 43:34 - Remodelé el émbolo para que se uniera mejor con el chasis de la locomotora.
  • 45:27 - A las ruedas de la locomotora, que eran un único objeto, las separé en 3 y las renombré.
  • 46:57 - Apliqué el modificador Mirror a las tres ruedas de la locomotora y roté 90º en su eje a cada una de las ruedas izquierdas.
  • 48:25 - Apliqué el modificador Mirror a la biela principal y a la biela lateral. Las separé en objetos independientes y las renombré.
  • 49:59 - Moví la biela lateral izquierda a su nueva posición (la resultante de haber rotado las ruedas izquierdas). Hice lo mismo con la biela principal izquierda, a la que también tuve que rotar. Luego, apliqué las transformaciones.
  • 52:16 - Separé las ruedas del ténder en dos objetos y los renombré.

La música que acompaña el video es Ebbs and Flows de Kevin MacLeod, descargada de Freepd (https://freepd.com/misc.php).

Ahora sí, en el próximo video empezará la acción: voy a crear el esqueleto para mover las bielas y las ruedas de la locomotora.


martes, 12 de julio de 2022

La nueva herramienta de creación de cabello de la próxima versión de Blender

La próxima versión de Blender, la 3.3, cuyo lanzamiento está previsto para el 7 de setiembre, es muy esperada porque es una versión de soporte extendido (LTS). Pero, además, con las noticias que están surgiendo de las novedades que va a incorporar, la expectativa es aún mayor.

Una de esas grandes novedades es la nueva herramienta de pelo, basada en curvas. ¡Ya no habrá que lidiar con las partículas para la creación de pelo!

En el video sobre estas líneas, publicado en el canal de YouTube de Blender, Andy Goralczyk presenta el estado actual de la herramienta.
Lo hace, como siempre, de forma muy clara. Aunque en inglés. Pero la activación de los subtítulos con traducción automática al español hace un buen trabajo.

Para presentar la herramienta, Andy trabaja sobre un modelado de Einar, el personaje principal de la próxima open movie del Blender Studio: Project Heist.

Además, en el directo de ayer de Blender Hoy, esta novedad fue uno de los temas principales:

miércoles, 6 de julio de 2022

Cool moth movie

En la edición de Blender Hoy #198 que salió el lunes de esta semana, en la marca de tiempo 1:16:14, mientras Pablo Vázquez respondía preguntas, un espectador (jose_11) recomendó ver el siguiente video:

Se trata de “Película de la polilla genial” (tal cual sería la traducción del título de este video), un “videoclip” (¡se me cayeron algunas sotas!) de la canción “There is something happening“, de Jack Stauber.

El video es obra de MaxEdge, y está hecho enteramente con Blender luego de “meses de trabajo”, como el mismo autor dice en la descripción del video.

Está fantástico.