7.1 KiB
Library Overrides
Library Overrides is a system designed to replace and supersede Proxies. Most types of linked data-blocks can be overridden, and the properties of those overrides can then be edited. When the library data changes, unmodified properties of the overridden one will be updated accordingly.
Note
The current proxy system will be kept alongside for a few releases. Automatic conversion from proxies to library overrides is not planned, there will be a manual operator to do that, but results on complex characters are not guaranteed.
Library overrides supports:
Multiple independent overrides of a same linked data (e.g. having the same character multiple times in the same scene).
Adding new modifiers and constraints, anywhere in the stack.
Recursively chaining overrides (i.e. link and override overrides from another library file, etc.).
Note
There are known issues that have to be addressed. See Phabricator main task of the project, for more details.
Creating an Override
Reference
- Editor:
3D Viewport and Outliner
- Mode:
Object Mode
- 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
There are two ways to create an override of a linked data-block.
Single Data-Block Override
You can override a single data-block from two places:
The Outliner (it’s in the context menu of IDs), in which case all local usages of that linked ID will be remapped to the new local override.
The data-block menu in the UI (Shift-LMB on the chain icon to the right), in which case only that specific usage will be remapped to the new local override.
Make Library Override Operator/Make Library Override Hierarchy
This operator goes over linked objects or local empties instantiating a linked collection (typically, a linked character).
The operator will go through the whole hierarchy of collections and objects, and override all those needed to allow posing/animation of a character.
Note
Proper Collections Layout Matters
For this operator to work properly, it is crucial that all the collections needed by the character are children of the root (linked and instantiated) one. Otherwise, some won’t be automatically overridden, and manual work will be needed to fix the override.
Converting Proxies to Library Override
Reference
- Editor:
3D Viewport and Outliner
- Mode:
Object Mode
- Menu:
3D Viewport ‣ Header ‣ Object ‣ Relations ‣ Convert Proxy to Library Override Outliner ‣ ID Data ‣ Convert Proxy to Library Override
Converts a Proxy to a local override. This operator is used to help convert older blend-files to the new override system.
Editing an Override
Essentially, an override is edited the same way as a regular local data-block. You can use operators on them, edit their properties from various editors, etc. There are some limitations however, most notably Edit Mode is not allowed for overrides. In most cases, as soon as you edit a property, you can see that it’s overridden by its teal blue outline/background.
You can also animate overrides, animated properties just replace/supersede overrides then. Note that you cannot override-edit an existing animation, you’ll have to create a new action. You can manually define or remove an override from the context menu of the relevant property.
Define Overrides
Reference
- Editor:
Any
- Mode:
Object Mode
- Property:
Context Menu ‣ Define Overrides Context Menu ‣ Define Override
Mark a property to be overridden in the local blend-file. For array properties all elements will be overridden.
Define Single Override
Reference
- Editor:
Any
- Mode:
Object Mode
- Property:
Context Menu ‣ Define Single Override
Mark a property to be overridden in the local blend-file. For array properties only the selected element will be overridden.
Remove Overrides
Reference
- Editor:
Any
- Mode:
Object Mode
- Property:
Context Menu ‣ Remove Overrides Context Menu ‣ Remove Override
Remove the property from the overrides. The value of the linked in data-block will be used. For array properties all elements will be removed from the override.
Remove Single Override
Reference
- Editor:
Any
- Mode:
Object Mode
- Property:
Context Menu ‣ Remove Single Override
Remove the property from the overrides. The value of the linked in data-block will be used. For array properties only the selected elements will be removed from the override.
Reset Library Override
Reference
- Editor:
Outliner
- Mode:
Object Mode
- Outliner:
Context Menu ‣ ID Data ‣ Reset Library Override Context Menu ‣ ID Data ‣ Reset Library Override Hierarchy
Reset the override to its original values. Reset Library Override Hierarchy will also reset the overrides of its child data-blocks.
Resync Library Override Hierarchy
Reference
- Editor:
Outliner
- Mode:
Object Mode
- Outliner:
Context Menu ‣ ID Data ‣ Resync Library Override Hierarchy
The structure of the linked data (the relationships between linked data-blocks) can be changed. Overrides need to be resynced to match the new structure. This operator will resync the override to the new structure in the library.
Delete Library Override Hierarchy
Reference
- Editor:
Outliner
- Mode:
Object Mode
- Outliner:
Context Menu ‣ ID Data ‣ Delete Library Override Hierarchy
Remove the library override from the selected data-block and all its children and replace them with the original linked data-block. This will revert the Make Library Override.