Library Overrides (Remplacement de Librairie)

Library Overrides est un système conçu pour remplacer et supplanter les proxys. La plupart des types de blocs de données liés peuvent être remplacés et les propriétés de ces remplacements peuvent ensuite être modifiées. Lorsque les données de la bibliothèque changent, les propriétés non-modifiées de celle remplacée seront mises à jour en conséquence.

Note

L’ancien système de proxy est obsolète dans Blender 3.0 et entièrement supprimé dans Blender 3.2. La conversion automatique des proxies en substituts de bibliothèque se produit lors du chargement d’un fichier blend, mais les résultats sur les personnages complexes ne sont pas garantis et peuvent nécessiter des corrections manuelles.

Les Library Overrides prennent en charge:

  • Plusieurs remplacements indépendants d’une même donnée liée (par exemple, un personnage complet).

  • Ajout de nouveaux modificateurs et contraintes, n’importe où dans la pile.

  • Chaînage récursif des remplacements (c’est-à-dire remplacements de lien et de remplacement à partir d’un autre fichier de bibliothèque, etc.).

Note

Il y a des problèmes connus qui doivent être résolus. Voir la tâche principale du projet Phabricator, pour plus de détails.

Avertissement

Bien que dans la plupart des cas, les données de remplacement de la bibliothèque soient préservées en cas de perte de données liées à la référence (si, par exemple, le fichier de la bibliothèque devient indisponible ou est déplacé), il existe quelques exceptions.

La principale est probablement les objets d’armature posés (mais non animés), lorsque leur “obdata” Aramture elle-même n’est pas remplacée. Les Pose bones d’un objet armature sont entièrement liés aux bones de son Armature “obdata”, si ce dernier vient à manquer, les pose bones sont définitivement perdus.

Override Hierarchies (Remplacer les hiérarchies)

La hiérarchie est un concept très important à comprendre lorsque vous travaillez avec des remplacements de bibliothèque. Dans Blender, un asset réel (un personnage, un accessoire, un ensemble, etc.) n’est presque jamais constitué d’un seul bloc de données, mais plutôt d’un groupe de blocs de données avec des relations de dépendance les uns avec les autres. Par exemple: un support de personnage a généralement un objet armature, plusieurs objets géométriques, des objets rig-controllers, les données d’objet pour tous ces objets, matériaux, textures, etc.

Ces relations peuvent être représentées sous la forme d’un arbre, avec un bloc de données racine “reliant” toutes ses dépendances, de manière récursive. Avec les remplacements de bibliothèque, généralement, la racine de la hiérarchie est également le bloc de données qui est directement lié lors de l’importation de l’asset (généralement une collection).

Ce concept de hiérarchie peut également être considéré comme une sorte de super bloc de métadonnées. Il est essentiel lorsqu’il y a plusieurs remplacements des mêmes données liées, car il permet d’identifier clairement un bloc de données donné à un remplacement, ne laissant aucune ambiguïté aux processus qui affectent l’ensemble de la hiérarchie (par exemple, resynchroniser les remplacements avec leurs données liées). Il permet également de partager des relations entre des blocs de données de hiérarchies différentes, comme une relation parentale entre deux remplacements différents d’un même caractère.

Non-Editable Overrides (Remplacements non-éditables)

Pour des raisons techniques (comment les relations entre les blocs de données sont stockées), Blender doit créer des remplacements d’un grand nombre de blocs de données, même lorsque seulement un ou deux d’entre eux doivent être modifiés par l’utilisateur. Pour réduire la quantité d’informations et le risque d’éventuelles modifications indésirables, la plupart de ces blocs de données sont désormais marqués comme non modifiables par défaut. Cela peut être modifié une fois le remplacement créé.

Créer un Remplacement

Référence

Éditeur

Fenêtre 3D et Outliner

Mode

Mode Objet

Menu

3D Viewport ‣ Header ‣ Object ‣ Relations ‣ Make Override Library Outliner ‣ Context Menu ‣ ID Data ‣ Make Library Override Hierarchy Outliner ‣ Context Menu ‣ ID Data ‣ Make Library Override Single

Il existe deux façons de créer un remplacement d’un bloc de données lié.

Make Library Override Operator/Make Library Override Hierarchy

Il s’agit de la principale méthode recommandée pour créer des remplacements. Cet opérateur passe en revue les objets liés ou les vides locaux instanciant une collection liée (généralement, un caractère lié).

L’opérateur parcourra toute la hiérarchie des collections et des objets, et remplacera tous ceux nécessaires pour permettre la pose/animation d’un personnage.

Note

La mise en page appropriée des Collections est importante

Pour que cet opérateur fonctionne correctement, il est crucial que toutes les collections nécessaires au personnage soient des enfants de la racine (liée et instanciée), de sorte qu’il y ait une hiérarchie claire. Sinon, certains ne seront pas automatiquement remplacés et un travail manuel sera nécessaire pour corriger le remplacement.

Remplacement d’un Bloc de Données unique

Vous pouvez remplacer un seul bloc de données à deux endroits :

  • L”Outliner (il se trouve dans le menu contextuel des IDs), auquel cas toutes les utilisations locales de cet ID lié seront remappées vers le nouveau remplacement local.

  • Le menu du bloc de données dans l’interface utilisateur (Maj-LMB sur l’icône de chaîne à droite), auquel cas seule cette utilisation spécifique sera remappée au nouveau remplacement local.

Note

Les remplacements simples doivent être utilisés avec prudence

Bien qu’il soit toujours possible d’effectuer un remplacement partiel manuel d’une hiérarchie, cela prend relativement du temps et est sujet aux erreurs, et peut facilement faire vivre la hiérarchie de remplacement dans un état incohérent (concernant les relations entre ses blocs de données). Cela peut se retourner contre vous plus tard, par exemple, lorsqu’une resynchronisation avec les données liées devient nécessaire.

Remplacements de resynchronisation

Les relations entre les blocs de données liés peuvent être modifiées, ce qui entraîne des remplacements obsolètes. Lorsque cela se produit, les remplacements doivent être resynchronisés pour correspondre à la nouvelle structure. Les remplacements sont automatiquement resynchronisés, si nécessaire, lors de l’ouverture des fichiers blend. Cependant, les remplacements peuvent être resynchronisés manuellement à l’aide de Resync Library Override Hierarchy.

Astuce

Blender est également capable de resynchroniser les remplacements de bibliothèque à partir de bibliothèques externes, qui sont ensuite liées dans un fichier de travail. Cependant, il s’agit d’un processus coûteux qui doit être entièrement refait à chaque fois que le fichier de travail est chargé, car Blender ne peut pas éditer/modifier directement la bibliothèque externe.

Ainsi, les utilisateurs liant des remplacements (ou créant des remplacements récursifs) doivent s’assurer que leurs fichiers de bibliothèque sont régulièrement mis à jour, pour éviter cette surcharge lors du chargement des fichiers (généralement, l’ouverture et l’enregistrement de ces fichiers de bibliothèque devraient suffire pour les mettre à jour).

Astuce

La resynchronisation automatique peut être désactivée dans les Préférences Expérimentales.

Modifier un Remplacement

Essentiellement, un remplacement est édité de la même manière qu’un bloc de données local normal. Vous pouvez utiliser des opérateurs dessus, éditer leurs propriétés à partir de divers éditeurs, etc. Il existe cependant certaines limitations, notamment le mode d’édition n’est pas autorisé pour les remplacements. Dans la plupart des cas, dès que vous modifiez une propriété, vous pouvez voir qu’elle est remplacée par son contour/arrière-plan bleu sarcelle.

Vous pouvez également animer les remplacements, les propriétés animées remplacent/annulent simplement les remplacements. Notez que vous ne pouvez pas remplacer-modifier une animation existante, vous devrez créer une nouvelle action. Vous pouvez définir ou supprimer manuellement un remplacement à partir du menu contextuel de la propriété concernée. Si un remplacement n’est pas modifiable, vous devez d’abord le rendre éditable.

Rendre le remplacement de la bibliothèque éditable

Référence

Éditeur

Outliner

Mode

Mode Objet

Outliner

Context Menu ‣ ID Data ‣ Make Library Override Editable

Rendre modifiable par l’utilisateur, le bloc de données de remplacement de bibliothèque sélectionné.

Définir les remplacements

Référence

Éditeur

N’importe lequel

Mode

Mode Objet

Property

Context Menu ‣ Define Overrides Context Menu ‣ Define Override

Marque une propriété à remplacer dans le fichier-blend local. Pour les propriétés de tableau, tous les éléments seront remplacés.

Définir un remplacement unique

Référence

Éditeur

N’importe lequel

Mode

Mode Objet

Property

Context Menu ‣ Define Single Override

Marque une propriété à remplacer dans le fichier-blend local. Pour les propriétés de tableau, tous les éléments seront remplacés.

Supprimer les remplacements

Référence

Éditeur

N’importe lequel

Mode

Mode Objet

Property

Context Menu ‣ Remove Overrides Context Menu ‣ Remove Override

Supprime la propriété des remplacements. La valeur du bloc de données lié sera utilisée. Pour les propriétés de tableau, tous les éléments seront supprimés du remplacement.

Supprimer un remplacement unique

Référence

Éditeur

N’importe lequel

Mode

Mode Objet

Property

Context Menu ‣ Remove Single Override

Supprime la propriété des remplacements. La valeur du bloc de données lié sera utilisée. Pour les propriétés de tableau, seuls les éléments sélectionnés seront supprimés du remplacement.

Réinitialiser le remplacement de la bibliothèque

Référence

Éditeur

Outliner

Mode

Mode Objet

Outliner

Context Menu ‣ ID Data ‣ Reset Library Override Single Context Menu ‣ ID Data ‣ Reset Library Override Hierarchy

Réinitialise le remplacement à ses valeurs d’origine. Reset Library Override Hierarchy réinitialisera également les remplacements de ses blocs de données enfants. Contrairement aux opérations Clear ci-dessous, cela ne supprime jamais les blocs de données de remplacement eux-mêmes.

Resync Library Override Hierarchy

Référence

Éditeur

Outliner

Mode

Mode Objet

Outliner

Context Menu ‣ ID Data ‣ Resync Library Override Hierarchy

La structure des données liées (les relations entre les blocs de données liés) peut être modifiée. Les remplacements doivent être resynchronisés pour correspondre à la nouvelle structure. Cet opérateur resynchronisera le remplacement avec la nouvelle structure de la bibliothèque.

Avertissement

Lors de la resynchronisation d’un remplacement de bibliothèque, il est possible que les remplacements modifiés soient supprimés s’ils sont modifiés dans la bibliothèque d’origine. Si tel est le cas, un message d’avertissement s’affichera indiquant combien de remplacements ont été supprimés, si la suppression n’est pas souhaitable, la resynchronisation peut être annulée avant d’enregistrer le fichier blend.

Resynchronisation de la hiérarchie de remplacement d’une bibliothèque

Référence

Éditeur

Outliner

Mode

Mode Objet

Outliner

Context Menu ‣ ID Data ‣ Resync Library Override Hierarchy Enforce

Dans certains cas, en particulier avec les anciens fichiers blend qui ont été enregistrés avec des remplacements «cassés» (sans correspondance hiérarchique), une resynchronisation régulière elle-même ne peut pas reconstruire correctement le remplacement comme prévu (par exemple, certains objets peuvent disparaître). Pour résoudre ce problème, cet opérateur reconstruit le remplacement local à partir de sa référence liée, ainsi que sa hiérarchie de dépendances, en appliquant cette hiérarchie pour qu’elle corresponde aux données liées (c’est-à-dire en ignorant les remplacements existants sur les propriétés des blocs de données). C’est similaire à une resynchronisation régulière mais est une resynchronisation plus puissante, au prix d’une perte potentielle de certains remplacements sur les propriétés des pointeurs d’ID.

Effacer (clear) le remplacement de la bibliothèque unique

Référence

Éditeur

Outliner

Mode

Mode Objet

Outliner

Context Menu ‣ ID Data ‣ Clear Library Override Single

Réinitialise le remplacement à ses valeurs d’origine et, si possible sans rompre la hiérarchie existante, le remplace par ses données liées. Sinon, conserve le remplacement mais le marque comme non modifiable.

Effacer (clear) la hiérarchie de remplacement de la bibliothèque

Référence

Éditeur

Outliner

Mode

Mode Objet

Outliner

Context Menu ‣ ID Data ‣ Clear Library Override Hierarchy

Supprime le remplacement de bibliothèque du bloc de données sélectionné et de tous ses enfants et les remplace par le bloc de données lié d’origine. Cela annulera le remplacement de la bibliothèque.