Dans cette vidéo, réalisée avec Blender version 4.2, je vais vous montrer deux scripts Python qui permettent d’exporter le contenu d’une scène Blender en FBX, avec les Textures, pour tous les fichiers Blender disponibles dans un dossier.
L'audio de ce tutoriel n'est pas disponible en Français. Vous pouvez regarder ci-dessous la vidéo avec l'audio en Anglais et des sous-titres en Français, en Anglais et dans d’autres langues. Sous la vidéo, vous trouverez la transcription traduite en Français.
Transcription de la vidéo
Bonjour à tous ! Dans cette vidéo, réalisée avec Blender version 4.2, je vais vous montrer deux scripts Python qui permettent d’exporter le contenu d’une scène Blender en FBX, avec les Textures, pour tous les fichiers Blender disponibles dans un dossier.
Il y a deux scripts, car le premier gère l’exportation pour le fichier sur lequel il est exécuté, tandis que le second exécute le premier sur tous les fichiers Blender du dossier.
J’ai créé ces scripts pour un besoin spécifique, et je sais qu’il s’agit d’un cas très particulier. Cependant, ce tutoriel peut être adapté à d’autres cas, car il montre en réalité comment exécuter un script en lui fournissant des paramètres, sans même avoir à ouvrir Blender. Vous pouvez donc utiliser cette méthode avec d’autres opérateurs et outils que celui utilisé dans ce cas !
Plus précisément, il est possible d’exporter le contenu d’une scène blend dans un fichier FBX en utilisant la fonction export scene fbx du module operators, en indiquant le nom du fichier de destination et d’autres paramètres, comme précisé dans la documentation de cet opérateur dans le manuel de Blender.

Ce qui m’intéresse le plus, c’est aussi d’exporter les Textures des matériaux des modèles, en utilisant l’option Embedded avec le mode Copy activé, comme je l’ai expliqué dans mon tutoriel sur l’exportation de modèles en FBX avec textures.
Les deux paramètres que nous devons spécifier, en plus du nom du fichier de destination, sont Path Mode, qui doit être défini sur Copy, et embed textures, qui doit être défini sur True.
L’appel de fonction dans le script export embedded fbx sera donc : bpy.ops.export_scene.fbx(filepath = sys argv -1, path mode='COPY', embed textures = True).

C’est la seule instruction, après l’importation des modules bpy et sys, à inclure dans le fichier export_embedded_fbx.py. Le nom du fichier est celui passé comme paramètre au script, tandis que Path Mode et Embed Textures permettent de stocker dans le fichier FBX les images utilisées comme Textures.
Si nous voulions exécuter ce script sur un seul fichier blend, il nous suffirait d’écrire la commande suivante dans le terminal :
blender filename.blend --background --python export_embedded_fbx.py -- filename.fbx

Cependant, je veux exécuter ce script pour tous les fichiers Blender du dossier, qui peuvent être nombreux, donc je ne veux pas remplacer manuellement les noms de fichiers à chaque fois !
Nous avons donc besoin d’un autre script, ou d’un fichier batch, qui exécutera cette commande pour chaque fichier Blender trouvé dans le dossier actuel.
Une solution simple consiste à écrire les instructions suivantes dans un autre fichier Python, que nous appellerons par exemple batch export embedded fbx.
Après avoir importé les modules os et subprocess, dont nous avons besoin pour accéder aux fichiers sur le disque et pour lancer l’autre script Python, nous récupérons le chemin du dossier actuel en le stockant dans la variable script dir.
Une fois cela fait, nous obtenons une liste de tous les fichiers Blender disponibles dans le dossier actuel.
À ce stade, nous lançons une boucle qui, pour chaque fichier Blender de la liste, exécute le script Python export embedded fbx, en lui passant à la fois le nom du fichier Blender actuel et le nom du fichier de sortie, avec le suffixe EMBEDDED et l’extension .fbx.

Après avoir enregistré les deux fichiers sur le disque, il ne reste plus qu’à exécuter le script Python batch export embedded fbx pour obtenir le résultat souhaité.
Voilà, j’espère que cette courte vidéo vous a été utile ! À bientôt !