Vượt Quyền thư viện (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.

Ghi chú

The old proxy system has been deprecated in Blender 3.0, and fully removed in Blender 3.2. Automatic conversion from proxies to library overrides happens when loading a blend-file, but results on complex characters are not guaranteed and may need manual fixes.

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.).

Ghi chú

There are known issues that have to be addressed. See Phabricator main task of the project, for more details.

Cảnh báo

While in most cases library overrides data is preserved accross a loss of reference linked data (if e.g. the library file becomes unavailable or is relocated), there are some exceptions.

The main one is probably posed (but not animated) armature objects, when their Aramture obdata itself is not overridden. The Pose bones of an armature object are fully linked to the bones of its Armature obdata, if the later goes missing, the pose bones are definitively lost.

Vượt Quyền Thứ Bậc (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.

Vượt Quyền Bất Khả biên soạn (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.

Tạo một sự Vượt Quyền (Creating an Override)

Tham Chiếu (Reference)

Trình Biên Soạn (Editor)

Thành Tố Điều Khiển Tiêu Đề trong Cổng Nhìn 3D

Chế Độ (Mode)

Chế Độ Vật Thể (Object Mode)

Trình Đơn (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

There are two ways to create an override of a linked data-block.

Tạo Thao Tác Vượt Quyền Thư Viện/Tạo Sự Vượt Quyền Thư Viện và Thứ Bậc (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).

The operator will go through the whole hierarchy of collections and objects, and override all those needed to allow posing/animation of a character.

Ghi chú

Sự bố trí chỉnh chu các tập hợp là vấn đề quan trọng

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, such that there is a clear hierarchy. Otherwise, some won't be automatically overridden, and manual work will be needed to fix the override.

Vượt Quyền Đơn Khối Dữ Liệu (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.

Ghi chú

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.

Thực Thể Hóa theo điểm đỉnh (Resyncing Overrides)

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.

Mẹo

Blender is also able to resync library overrides from external libraries, that are then linked into a working file. However, this is a costly process that needs to be fully redone every time the working file is loaded, since Blender cannot edit/modify the external library directly.

So users linking overrides (or creating recursive overrides) should ensure that their library files are regularly updated, to avoid this overhead on file load (typically, opening and saving those library files should be enough to update them).

Mẹo

Bất cứ lúc nào, bạn cũng có thể thay đổi những tùy chọn này trong Preferences (Experimental Preferences) của phần mềm.

Biên Soạn một sự Vượt Quyền (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. If an override is not editable, you have to make it editable first.

Làm cho Vượt Quyền Thư Viện Có Thể Biên Soạn Được (Make Library Override Editable)

Tham Chiếu (Reference)

Trình Biên Soạn (Editor)

Mục Lục (Outliner)

Chế Độ (Mode)

Chế Độ Vật Thể (Object Mode)

Mục Lục (Outliner)

Context Menu ‣ ID Data ‣ Make Library Override Editable

Make the selected library override data-block editable byt the user.

Định Nghĩa các Vượt Quyền (Define Overrides)

Tham Chiếu (Reference)

Trình Biên Soạn (Editor)

Bất Cứ

Chế Độ (Mode)

Chế Độ Vật Thể (Object Mode)

Tính Chất (Property)

Lựa Chọn (Select) ‣ Chọn Tiếp Theo (Select Next), Lựa Chọn (Select) ‣ Chọn Đằng Trước (Select Previous)

Mark a property to be overridden in the local blend-file. For array properties all elements will be overridden.

Định Nghĩa Đơn Vượt Quyền (Define Single Override)

Tham Chiếu (Reference)

Trình Biên Soạn (Editor)

Bất Cứ

Chế Độ (Mode)

Chế Độ Vật Thể (Object Mode)

Tính Chất (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.

Xóa các Vượt Quyền (Remove Overrides)

Tham Chiếu (Reference)

Trình Biên Soạn (Editor)

Bất Cứ

Chế Độ (Mode)

Chế Độ Vật Thể (Object Mode)

Tính Chất (Property)

Nút (Node) ‣ Bật/Tắt Hoạt Tính của Nút (Toggle Node Mute)

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.

Xóa Đơn Vượt Quyền (Remove Single Override)

Tham Chiếu (Reference)

Trình Biên Soạn (Editor)

Bất Cứ

Chế Độ (Mode)

Chế Độ Vật Thể (Object Mode)

Tính Chất (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.

Hoàn Lại thư viện Vượt Quyền (Reset Library Override)

Tham Chiếu (Reference)

Trình Biên Soạn (Editor)

Mục Lục (Outliner)

Chế Độ (Mode)

Chế Độ Vật Thể (Object Mode)

Mục Lục (Outliner)

Trình Đơn Ngữ Cảnh (Context Menu) ‣ Dữ Liệu ID (ID Data) ‣ Hoàn Lại Đơn Vượt Quyền Thư Viện (Reset Library Override Single) Trình Đơn Ngữ Cảnh (Context Menu) ‣ Dữ Liệu ID (ID Data) ‣ Hoàn Lại Thứ Bậc của Thư Viện Vượt Quyền (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. Unlike the Clear operations below, this never removes the override data-blocks themselves.

Đồng Bộ Hóa Lại Thứ Bậc của thư viện Vượt Quyền (Resync Library Override Hierarchy)

Tham Chiếu (Reference)

Trình Biên Soạn (Editor)

Mục Lục (Outliner)

Chế Độ (Mode)

Chế Độ Vật Thể (Object Mode)

Mục Lục (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.

Cảnh báo

While resyncing a library override it is possible that edited overrides get deleted if they are changed in the original library. If this is the case, a warning message will be displayed stating how many overrides were deleted, if the deletion is undesirable the resync can be undone before saving the blend-file.

Đồng Bộ Hóa Thứ Bậc của Thư Viện Vượt Quyền đồng Củng Cố (Resync Library Override Hierarchy Enforce)

Tham Chiếu (Reference)

Trình Biên Soạn (Editor)

Mục Lục (Outliner)

Chế Độ (Mode)

Chế Độ Vật Thể (Object Mode)

Mục Lục (Outliner)

Context Menu ‣ ID Data ‣ Resync Library Override Hierarchy Enforce

In some cases, especially with older blend-files that were saved with 'broken' (non-hierarchy-matching) overrides, a regular resync itself cannot rebuild properly the override as expected (e.g. some objects might go missing). To solve this issue, this operator rebuilds the local override from its linked reference, as well as its hierarchy of dependencies, enforcing that hierarchy to match the linked data (i.e. ignoring existing overrides on data-blocks properties). This is similar to a regular resync but is a more forceful resync, at the cost of a potential loss of some overrides on ID pointers properties.

Xóa Đơn Vượt Quyền Thư Viện (Clear Library Override Single)

Tham Chiếu (Reference)

Trình Biên Soạn (Editor)

Mục Lục (Outliner)

Chế Độ (Mode)

Chế Độ Vật Thể (Object Mode)

Mục Lục (Outliner)

Trình Đơn Ngữ Cảnh (Context Menu) ‣ Dữ Liệu ID (ID Data) ‣ Xóa Đơn Vượt Quyền Thư Viện (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.

Xóa Hệ Thống Thứ Bậc Thư Viện Vượt Quyền

Tham Chiếu (Reference)

Trình Biên Soạn (Editor)

Mục Lục (Outliner)

Chế Độ (Mode)

Chế Độ Vật Thể (Object Mode)

Mục Lục (Outliner)

Trình Đơn Ngữ Cảnh (Context Menu) ‣ Dữ Liệu ID (ID Data) ‣ Xóa Hệ Thống Thứ Bậc Thư Viện Vượt Quyền (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.