Gestionnaire d’actifs BAM¶
Le remaniement des fichiers blend liés est une pratique courante dans un environnement de production. Bien que certaines opérations de base puissent être accomplies dans Blender, parfois c’est plus pratique de les effectuer en ligne de commande ou via un script. C’est pendant la production de Cosmos Laundromat (Gooseberry Open Movie Project) que le BAM Asset Manager (BAM) fut développé. Le cadre original de BAM comprenait des outils de gestion d’actifs de type client-serveur allant bien au delà de Blender, mais il fut plus tard recentré sur des utilitaires essentiels pour effectuer deux opérations :
- Empaquetage de fichier blend
- Réorganisation automatique des dépendances
La section suivante du manuel traite de l’utilisation de BAM.

Gestionnaire d’actifs.
Installation de BAM¶
BAM est un paquet Python autonome, qui peut être lancé sur n’importe quel système sans configuration particulière. La seule exigence est Python 3 (et pip, le gestionnaire de paquets Python, pour installer facilement BAM).
Windows, Linux et macOS offrent différentes manières d’installer Python 3 et pip. Consultez les docs en ligne pour en savoir plus sur une plateforme spécifique.
Une fois Python 3 et pip3 disponibles, BAM peut être installé via la ligne de commande en tapant :
pip3 install blender-bam
Après une installation réussie, la commande bam
sera disponible. En la tapant et en pressant Entrée, toutes les sous-commandes disponibles seront affichées.
bam pack¶
Cette commande est utilisée pour empaqueter un fichier .blend
et toutes ses dépendances dans un fichier .zip
pour la redistribution.
usage: bam pack [-h] [-o FILE] [-m MODE] [-e PATTERNS] [-a] [-q] [-c LEVEL]
paths [paths ...]
Vous pouvez simplement empaqueter un fichier blend comme ceci pour créer un fichier zip portant le même nom.
bam pack /path/to/scene.blend
Il est possible que vous souhaitiez désigner un dossier de sortie explicite. L’exemple montre la manière d’empaqueter un fichier blend avec une compression maximale pour les téléchargements en ligne.
bam pack /path/to/scene.blend --output my_scene.zip --compress=best
La commande fournit plusieurs options pour s’adapter à différents flux de travail (distribution finale, extraction partielle, rendu).
-o
,--output
<FILE>
- Fichier de sortie ou un dossier quand plusieurs sorties sont passées.
-m
,--mode
<MODE>
- Fichier de sortie ou un dossier quand plusieurs entrées sont passées. les choix possibles sont :
ZIP
,FILE
. -e
,--exclude
<PATTERN(S)>
Exclure facultativement des fichiers du paquetage.
--exclude="*.png"
- En utilisant des caractères génériques de style shell (insensibles à la casse).
--exclude="*.txt;*.avi;*.wav"
- Plusieurs modèles peuvent être passés en utilisant le séparateur
;
.
-a
,--all-deps
- Suivre toutes les dépendances (dépendances indirectes inutilisées aussi).
-q
,--quiet
- Supprimer la sortie du status.
-c
,--compress
<LEVEL>
- Niveau de compression pour l’archive finale. Les choix possibles :
default
,fast
,best
,store
. --repo
<DIR PATH>
- Spécifier un chemin « racine » depuis lequel empaqueter le fichier sélectionné. Ceci permet la création d’une copie incomplète de l’arbre de production, sans aucune réorganisation.
--warn-external
- Faire un rapport des erreurs sur les bibliothèques externes (chemins manquants).
Exemples¶
Considérer la structure de dossiers suivant, et en particulier le fichier 01_01_A.lighting.blend avec ses bibliothèques liées.
~/agent327/
└─ lib/
├─ chars/
| ├─ agent.blend ------------->|
| ├─ boris.blend ------------->|
| └─ barber.blend |
└─ scenes/ |
├─ 01-opening |
├─ 01_01_A.lighting.blend <--| < BAM pack this file
└─ 01_01_A.anim.blend ------>|
Une fois bam pack /scenes/01-opening/01_01_A.lighting.blend
lancé, nous obtenons un 01_01_A.lighting.zip dans lequel nous trouvons la structure suivante.
~/01_01_A.lighting
├─ 01_01_A.lighting.blend
└─ __/
├─ 01_01_A.anim.blend
└─ __/
└─ lib/
└─ chars/
├─ agent.blend
└─ boris.blend
Notez la manière dont tous les chemins ont été réorganisés en les rendant relatifs à l’emplacement de 01_01_A.lighting.blend dans la racine de la sortie. Si nous lançons bam pack /scenes/01-opening/01_01_A.lighting.blend --repo ~/agent327
, la sortie sera différente.
~/01_01_A.lighting
├─ lib/
| └─ chars/
| ├─ agent.blend
| └─ boris.blend
└─ scenes
└─ 01-opening/
├─ 01_01_A.lighting.blend < The BAM packed file
└─ 01_01_A.anim.blend
Dans ce cas aucun chemin n’est réorganisé, et nous supprimons simplement tout fichier qui n’est pas référencé comme une dépendance directe ou indirecte de 01_01_A.lighting.blend. Ceci est effectivement une copie incomplète de l’arbre de production d’origine.
bam remap¶
Réorganiser les chemins des fichiers blend
usage: bam remap [-h] {start,finish,reset} ...
Cette commande est un processus en trois étapes :
- D’abord lancez
bam remap start .
qui enregistre l’état courant de votre projet (récursivement). - Puis réarrangez les fichiers dans le système de fichiers (renommer, déplacer).
- Enfin lancez
bam remap finish
pour appliquer les modifications, en mettant à jour les chemins internes des fichiers.blend
.
cd /my/project
bam remap start .
mv photos textures
mv barbershop_v14_library.blend barberhop_libraray.blend
bam remap finish
Note
La réorganisation crée un fichier appelé bam_remap.data
dans le dossier courant. Vous pouvez relocaliser le projet entier dans un nouvel emplacement mais en exécutant finish
, ce fichier doit être accessible depuis le dossier courant.
Note
Cette commande dépend du contenu unique des fichiers, prenez soin de ne pas modifier les fichiers une fois la réorganisation commencée.
Sous-commandes¶
remap start¶
Démarrer la réorganisation des fichiers blend
usage: bam remap start [-h] [-j] [paths [paths ...]]
-j
,--json
- Générer la sortie JSON.
remap finish¶
Terminer la réorganisation des fichiers blend
usage: bam remap finish [-h] [-r] [-d] [-j] [paths [paths ...]]
-r
,--force-relative
- Rendre tous les chemins réorganisés relatifs (même s’ils étaient absolus à l’origine).
-d
,--dry-run
- Afficher simplement la sortie comme si les chemins sont en cours d’exécution.
-j
,--json
- Générer la sortie JSON.
remap reset¶
Annuler la réorganisation des chemins
usage: bam remap reset [-h] [-j]
-j
,--json
- Générer la sortie JSON.