[Bf-docboard-svn] bf-manual: [9200] trunk/blender_docs/manual/files/linked_libraries/library_overrides.rst: Update Library Override page for 3.2.

Bastien Montagne noreply at blender.org
Mon Apr 18 12:45:12 CEST 2022


Revision: 9200
          https://developer.blender.org/rBM9200
Author:   mont29
Date:     2022-04-18 12:45:12 +0200 (Mon, 18 Apr 2022)
Log Message:
-----------
Update Library Override page for 3.2.

NOTE: partial update, there are still more changes expected.

Modified Paths:
--------------
    trunk/blender_docs/manual/files/linked_libraries/library_overrides.rst

Modified: trunk/blender_docs/manual/files/linked_libraries/library_overrides.rst
===================================================================
--- trunk/blender_docs/manual/files/linked_libraries/library_overrides.rst	2022-04-17 23:38:12 UTC (rev 9199)
+++ trunk/blender_docs/manual/files/linked_libraries/library_overrides.rst	2022-04-18 10:45:12 UTC (rev 9200)
@@ -30,6 +30,37 @@
    <https://developer.blender.org/T73318>`__, for more details.
 
 
+Override Hierarchies
+====================
+
+Hierarchy is a very important concept to understand when working with library overrides.
+In Blender, a real-life asset (a character, a prop, a set, etc.) is almost never made of a
+single data-block, but is rather a group of data-blocks with dependency relationships to each-other.
+E.g. a character sill typically have an armature object, several geometry objects,
+rig-controllers objects, the object data for all of those objects, materials, textures, etc. 
+
+Those relationships can be represented as a tree, with a root data-block 'linking-in' all its
+dependencies, recursively. With library overrides, typically, the root of the hierarchy is also
+the data-block that is directly linked when importing the asset (usually a collection).
+
+This concept of hierarchy can also be seen as some sort of super meta-data-block. It is critical
+when there are several overrides of the same linked data, since it allows to clearly identify a given
+data-block to one override, leaving no ambiguity to processes that affect the whole hierarchy
+(e.g. resyncing overrides with their linked data). It also allows to share relationships between
+data-blocks of different hierarchies, like a parenting relationships between two different overrides
+of a same character. 
+
+
+Non-Editable Overrides
+=======================
+
+For technical reasons (how relationships between data-blocks are stored), Blender needs to create
+overrides of a lot of data-blocks, even when only one or two of them actually needs to be edited
+by the user. To reduce the amount of information and risk of potential unwanted editing, most of
+those data-blocks are now marked as non-editable by default. This can be changed once the
+override has been created.
+
+
 Creating an Override
 ====================
 
@@ -39,27 +70,17 @@
    :Mode:      Object Mode
    :Menu:      :menuselection:`3D Viewport --> Header --> Object --> Relations --> Make Override Library`
                :menuselection:`Outliner --> Context Menu --> ID Data --> Make Library Override Hierarchy`
-               :menuselection:`Outliner --> Context Menu --> ID Data --> Make Library Override`
+               :menuselection:`Outliner --> Context Menu --> ID Data --> Make Library Override`Single
 
 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 (:kbd:`Shift-LMB` on the chain icon to the right),
-  in which case only that specific usage will be remapped to the new local override.
-
-
 .. _bpy.ops.object.make_override_library:
 
 Make Library Override Operator/Make Library Override Hierarchy
 --------------------------------------------------------------
 
+This is the main, recommended way to create overrides.
 This operator goes over linked objects or local empties instantiating a linked collection
 (typically, a linked character).
 
@@ -69,17 +90,35 @@
 .. 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.
+   the character are children of the root (linked and instantiated) one, such that there is a clear hierarchy.
    Otherwise, some won't be automatically overridden, and manual work will be needed to fix the override.
 
 
+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 (:kbd:`Shift-LMB` on the chain icon to the right),
+  in which case only that specific usage will be remapped to the new local override.
+
+.. note:: Single Overrides Should Be Used With Caution
+
+   While it is always possible to do manual partial override of a hierarchy, this is relatively
+   time consuming and error-prone, and can easily live the override hierarchy in an inconsistent
+   state (regarding relationships between its data-blocks). This can back-fire later, when a resync
+   with the linked data becomes needed e.g.
+
+
 Resyncing Overrides
 ===================
 
-The relationships between linked data-blocks can be changed resulting in outdated overrides.
-When this happens overrides need to be resynced to match the new structure.
-Overrides are automatically resynced when opening blend-files, however,
-overrides can be resynced manually using `Resync Library Override Hierarchy`_.
+The relationships between linked data-blocks can change, resulting in outdated overrides.
+When this happens, overrides need to be resynced to match the new structure.
+Overrides are automatically resynced if needed on blend-files opening. However,
+they can also be resynced manually using `Resync Library Override Hierarchy`_.
 
 .. tip::
 
@@ -108,8 +147,21 @@
 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.
+If an override is not editable, you have to make it editable first.
 
 
+Make Library Override Editable
+------------------------------
+
+.. reference::
+
+   :Editor:    Outliner
+   :Mode:      Object Mode
+   :Outliner:  :menuselection:`Context Menu --> ID Data --> Make Library Override Editable`
+
+Make the selected library override data-block editable byt the user.
+
+
 .. _bpy.ops.ui.override_type_set_button:
 
 Define Overrides
@@ -175,11 +227,12 @@
 
    :Editor:    Outliner
    :Mode:      Object Mode
-   :Outliner:  :menuselection:`Context Menu --> ID Data --> Reset Library Override`
+   :Outliner:  :menuselection:`Context Menu --> ID Data --> Reset Library Override Single`
                :menuselection:`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.
+the overrides of its child data-blocks. Unlike the Clear operations below, this never removes
+the override data-blocks themselves.
 
 
 Resync Library Override Hierarchy
@@ -221,14 +274,27 @@
 at the cost of a potential loss of some overrides on ID pointers properties.
 
 
-Delete Library Override Hierarchy
-=================================
+Clear Library Override Single
+=============================
 
 .. reference::
 
    :Editor:    Outliner
    :Mode:      Object Mode
-   :Outliner:  :menuselection:`Context Menu --> ID Data --> Delete Library Override Hierarchy`
+   :Outliner:  :menuselection:`Context Menu --> ID Data --> Clear Library Override Single`
 
+Reset the override to its original values, and if possible without breaking the existing hierarchy,
+replace it by its linked data. Otherwise, keep the override but mark it as non-editable.
+
+
+Clear Library Override Hierarchy
+================================
+
+.. reference::
+
+   :Editor:    Outliner
+   :Mode:      Object Mode
+   :Outliner:  :menuselection:`Context Menu --> ID Data --> Clear 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*.



More information about the Bf-docboard-svn mailing list