En este video, hecho con Blender versión 4.2, te mostraré un par de scripts de Python que te permiten exportar el contenido de una escena de Blender a FBX, incluyendo Texturas, para todos los archivos de Blender disponibles en una carpeta.



Transcripción del video

¡Hola a todos! En este video, hecho con Blender versión 4.2, te mostraré un par de scripts de Python que te permiten exportar el contenido de una escena de Blender a FBX, incluyendo Texturas, para todos los archivos de Blender disponibles en una carpeta.

Hay dos scripts porque el primer script maneja la exportación para el archivo en el que se ejecuta, mientras que el segundo script ejecuta el primero en todos los archivos de Blender en la carpeta.

Creé estos scripts para una necesidad específica mía, y me doy cuenta de que es un caso muy particular. Sin embargo, el tutorial puede extenderse a otros casos, porque en realidad muestra cómo ejecutar un script, proporcionándole parámetros, ¡sin siquiera tener que abrir Blender! Por lo tanto, también puedes usar este método con diferentes operadores y herramientas a las usadas en este caso.

Específicamente, es posible exportar el contenido de una escena blend en un archivo FBX utilizando la función export scene fbx del módulo operators, especificando el nombre del archivo de destino y otros parámetros, como se indica en la documentación de este operador en el manual de Blender.

Lo que más me interesa es exportar también las Texturas de los materiales de los modelos, utilizando la opción Embedded con el modo Copy habilitado, como expliqué en mi tutorial sobre cómo exportar modelos a FBX con texturas.

Los dos parámetros que necesitamos especificar, además del nombre del archivo de destino, son Path Mode, que debe estar configurado en Copy, y embed textures, que debe estar configurado en True.

La llamada a la función en el script de exportación a FBX con texturas embebidas será entonces: bpy.ops.export_scene.fbx(filepath = sys.argv[-1], path_mode='COPY', embed_textures=True).

Esta es la única instrucción, después de importar los módulos bpy y sys, que hay que incluir en el archivo export_embedded_fbx.py. El nombre del archivo es el que se pasa como parámetro al script, mientras que Path Mode y Embed Textures permiten almacenar las imágenes usadas como Texturas dentro del archivo FBX.

Si quisiéramos ejecutar este script en un solo archivo blend, todo lo que necesitaríamos hacer es escribir el siguiente comando en la terminal:

blender filename.blend --background --python export_embedded_fbx.py -- filename.fbx

Sin embargo, quiero ejecutar este script para todos los archivos de Blender en la carpeta, que podrían ser muchos, ¡así que no quiero reemplazar manualmente los nombres de archivo cada vez!

Entonces, necesitamos otro script o un archivo por lotes que ejecute ese comando para cada archivo de Blender que encuentre en la carpeta actual.

Una solución simple es escribir las siguientes instrucciones en otro archivo de Python, al que llamaremos, por ejemplo, batch export embedded fbx.

Después de importar los módulos os y subprocess, que necesitamos para acceder a los archivos en el disco y para ejecutar el otro script de Python, recuperamos la ruta de la carpeta actual almacenándola en la variable script_dir.

Una vez hecho esto, obtenemos una lista de todos los archivos de Blender disponibles en la carpeta actual.

En este punto, comenzamos un bucle que, para cada archivo de Blender en la lista, ejecuta el script de exportación de FBX embebido, pasándole tanto el nombre del archivo de Blender actual como el nombre del archivo de salida, con el sufijo EMBEDDED y la extensión .fbx.

Después de guardar ambos archivos en el disco, lo único que queda por hacer es ejecutar el script de Python batch export embedded fbx para obtener el resultado deseado.

Bueno, ¡espero que este breve video haya sido útil! ¡Hasta pronto!

Buscar en los Tutoriales

Ingresa una frase o varias palabras clave separadas por comas para buscar.

Modelos 3D, tutoriales y recursos de gráficos por computadora de Francesco Milanese. Las licencias de uso de los modelos 3D se pueden adquirir en las tiendas externas enlazadas en sus respectivas páginas, de acuerdo con las condiciones de licencia aplicables. Francesco Milanese — Número de IVA: 06321250877. Contacto: info@francescomilanese.com


POLÍTICA EXTENDIDA DE PRIVACIDAD Y UTILIZACIÓN DE COOKIES