# Blender 3D/Importer des fichiers Blender
## La structure des scènes

Si vous débutez avec Blender et en 3D, vous ne comprendrez peut-être pas ce que signifie chaque élément ni l'utilité d'une telle fonction. Cependant, tous ces différents objets et options seront abordés au cours de ce Wikilivre et vous êtes invité à relire cette partie lorsque vous serrez plus avancé dans le 3D avec Blender pour bien comprendre son outil d'import.
Les fichiers blender (.blend) fonctionnent comme des dossiers contenant divers types d'information. Seul Blender est capable d'examiner le contenu d'un fichier Blender et, par conséquent, seul ce logiciel pourra ouvrir un fichier .blend comme un dossier. Voici ce qu'on trouve comme sous-dossier dans un fichier .blend :
* Dossier Armature : Contient les armatures et les bones
* Dossier Camera : Contient les objets de type caméra
* Dossier Curve : Contient les objet de type Courbe et Surface (NURBS)
* Dossier Image : Contient les images contenues dans le fichier .blend. Attention : les images importées n'y seront pas stockées car elles sont externes au fichier. Par contre, les images créés dans l'UV editor par exemple y seront stockées.
* Dossier Lamp : Toutes les sources de lumière de la scène
* Dossier Lattice : Contient les objet de type Lattice (voir la partie sur les modificateurs de déformation)
* Dossier Material : Contient les matières appliquées sur les objets
* Dossier Mesh : Contient les objets de types mesh
* Dossier Metaball : Contient les objets de type metaball
* Dossier Objet : Regroupe tous les objets de la scène : les courbes, les meshs, les lattices, les metaball, les empty...
* Dossier Scene : Contient toute une scène (objets, matières...)
* Dossier Text : Contient les objets textes
* Dossier Texture : Contient les textures liées au matériaux. Attention : ce dossier ne contient pas les images comme le dossier image. Il contient les blocs d'informations et de configuration des textures sur une matière.
* Dossier VFont : Contient les polices de caractères importées dans le fichier
* Dossier World : Contient les blocs d'information des mondes (informations appliquées sur les caméra).
Cette structure permet de trouver facilement un élément du fichier lorsqu'on souhaite l'importer. Il nous est donc possible d'importer le contenu de tout un fichier ou de seulement une partie.

## L'outil d'importation (importation "physique")

Un seul outil permet de visualiser la structure d'un fichier Blender ; c'est le navigateur de fichier Blender en mode importation. Ce navigateur est accessible via le menu File > Append or Link ou via le raccourci SHIFT + F1.
Rendez vous dans un dossier dans lequel se trouve un ou plusieurs fichiers .blend. Déjà, observons quelques différences. Nous constatons en effet que les fichiers portant une extension .blend sont affichés comme des dossiers, c'est à dire en blanc. Cela signifie donc qu'il nous est possible d'en explorer le contenu.
Cliquez donc sur l'un de vos fichier pour en ouvrir la structure. Là, vous trouverez une liste de dossiers qui vous permettront d'accéder aux éléments définis dans le titre précédent.
Notez que le chemin de la barre d'adresse comprend désormais le nom du fichier.
Ouvrez par exemple de dossier Object pour accéder à tous les objets présents dans le fichier. Par exemple, si vous utilisez le fichier blender par défaut, 3 éléments seront présents dans le sous-dossier Object de ce fichier :
* Camera
* Cube
* Lamp
Pour importer un seul élément, il suffit de cliquer dessus avec le bouton gauche de la souris. Pour importer plusieurs éléments, cliquez sur chacun d'eux avec le clic droit (vous pouvez aussi faire un cliquer-droit-glissé pour les sélections en série). Notez que pour dé-sélectionner un élément d'une sélection multiple, il suffit de cliquer droit de nouveau sur l'élément en question.
Une fois votre choix fait, vérifiez que Append est bien coché dans le header (voir les options en en-tête plus loin) et cliquez sur Load Library.

### Les options en en-tête

Des options qui n'existent pas dans le navigateur de fichiers standard de Blender sont apparues dans le navigateur de fichier d'importation. Voyons quels en sont les fonctionnalités :
Il est possible d'importer automatiquement en chemin relatif via le panneau des préférences utilisateur, onglet File Paths option Relative Paths Default.
* Option Relative Paths : Lorsque vous importez un fichier en instance (voir les titres plus loin pour plus d'information), vous pouvez choisir entre un chemin direct (depuis la racine de l'arborescence des fichiers) ou un chemin relatif (créé depuis le fichier lui même) en cochant ce bouton. Cela est important lorsqu'on est souvent amené à se déplacer avec ses données ou à les changer de support (clé USB, disque réseau, changement de système...).
* Choix Append ou Link : C'est la méthode d'import des élément sélectionnés. Append importe les éléments physiquement dans le fichier. C'est à dire qu'une fois importés, il feront partie intégrante du fichiers .blend comme éléments indépendant, éditables depuis ce même fichier. En choisissant Link, les éléments sont importés en instance ce qui veut dire qu'ils n'existerons que par lien dans le fichier dans lequel on importe. Le fichier d'origine devient alors une librairie du projet. Pour éditer les éléments importés, il faut alors ouvrir le fichier d'origine.
* Option Autosel : Cela sélectionne automatiquement les objets importés dans le viewport après avoir cliqué sur Load library.
* Option Active Layer : Cela importe l'objet sur le calque actif et non sur le calque d'origine du fichier.
* Option At Cursor : Cela importe l'objet au niveau du curseur 3D et non à son emplacement d'origine (voir la section sur les objets pour plus d'information sur le curseur 3D).

## Importer en instance

Importer en instance crée un lien du fichiers importé dans le fichier en cour d'utilisation. Ainsi, le fichier en cour devient dépendant du fichier importé qu'on nomme alors Librairie.
La méthode pour importer en instance est la même que l'import standard. Il suffit de se rendre dans File > Append or Link et de cocher Link à la place de Append dans l'en-tête de l'explorateur. À partir de là, le fichier sera mis en lien.
Lorsque vous importez en instance, la fonction Relative Paths devient intéressante pour éviter de casser les liens entre les fichiers lorsque vous déplacez votre dossier de production (clé USB, changement de disque, de dossier...).

## Utilité de l'import en instance

Ceux qui on déjà des notions en 3D et notamment sur des projets important ou dans l'animation commencent sûrement à comprendre l'utilité d'importer des fichiers en instance. Pour les débutants et les novices de la 3D, cela peut très certainement sembler contraignant car les fichiers deviennent dépendant entre eux (on ne peut plus les supprimer ou les déplacer dans l'arborescence du projet car ils dépendent d'un autre fichier).
Cependant, importer des fichier en instance (ou en lien (=Link)) a de multiples avantages :
* Le travail en groupe : Imaginons 3 employés travaillant sur un même projet. L'un travaille sur la modélisation du personnage, l'autre sur le décor et le troisième sur l'éclairage. Au final, il faudra un seul et unique fichier pour le rendu. Cependant, celui qui s'occupe de l'éclairage à besoins du personnage et du décor pour faire ses tests d'éclairage. Celui qui s'occupe de la modélisation du décor à besoin du personnage pour les proportions. Sans l'import en instance, ces 3 personnes ne pourront pas travailler en même temps ou alors il faudrait à chaque fois réimporter physiquement les éléments dans les différents fichiers. Avec l'import en instance, il y a un gain de productivité : L'éclaireur aura son fichier de lighting avec le personnage et le décor importé en instance, le modeleur du décor aura son fichier décor avec le personnage importé en instance et le modeleur du personnage aura son fichier personnage. Le tout sera mis à jour automatiquement dans tous les fichiers sans avoir besoins de réimporter à chaque ouverture des fichiers.
* Un projet d'animation : Imaginons le cas de figure suivant : un projet d'animation avec plusieurs décors qui reprennent différents éléments (arbres, fleurs...), deux personnages et 3 scènes animées. Pour les décors, nous allons pouvoir créer des librairies d'objets qui pourront par la suite être importés dans tous les fichiers (les fleurs, les arbres, les pierres...). Là encore, nous allons avoir un gain de productivité car le travail sur les fichiers des décors sera juste un travail d'agencement des éléments (les objets ayant déjà été créés dans d'autres fichiers). Ensuite, il se peut que les animateurs veuillent commencer leur travail avant que l'équipe des textures n'ait fini le sien. Il suffira alors d'utiliser les instances pour importer les personnages dans les fichiers de scènes avec les décors (qui ne seront pas forcément terminés puisque eux aussi seront importés en instance). Ainsi, il sera possible d'optimiser la production.
L'import en instance a donc l'avantage de pouvoir revenir à tous moments sur des fichiers de production sans avoir à ré-importer les objets dans tous les fichiers au risque de perdre des données.
Les projets Big Buck Bunny et Yo Frankie! notamment ont été réalisés en utilisant les méthodes de l'instance.
Utiliser les instances induit d'avoir une bonne structure de projet car les fichiers dépendent les uns des autres et il est important de ne pas éparpiller ses fichiers de productions sur différents supports ou différents endroits du disque. Il devient capital de créer un répertoire de production et d'avoir une logique dans la structure des dossiers et des fichiers (nom, emplacement...).

## Gérer les fichiers externes

Un outil de Blender permet de gérer les fichiers externe en masse. Celui ci est accessible via le menu File > External Data.
* Pack into .blend file : Cela permet d'inclure dans le fichier .blend toutes les données externes (images, vidéos...). Cela casse par la même occasion les instances. Les fichiers deviennent alors très lourd mais ne dépendent plus de données externes.
* Unpack into files : Annule l'option précédente.
* Make all paths relative : Cela transforme tous les chemins de fichiers externes en chemins relatifs. Cette fonction est pratique lorsqu'on oublie de cocher Relative Paths lors de l'import d'un fichier ou alors avant de déplacer un dossier de production.
* Make all paths absolute : Annule l'option précédente; tous les chemins de fichiers deviennent absolus.
* Report missing files : Vérifie qu'aucun fichier externe ne manque.
* Find missing files : Lance un explorateur pour indiquer l'emplacement des fichiers manquants.