Prepis knižnice

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.

Poznámka

Starý systém náhrady bol v Blenderi 3.0 zrušený a v Blenderi 3.2 úplne odstránený. Pri načítavaní blend súboru dochádza k automatickej konverzii z náhrady na prepis knižnice, ale výsledky pri zložitých postavách nie sú zaručené a môže byť potrebné ich ručne opraviť.

Prepisy knižníc podporujú:

  • Viacnásobné nezávislé prepis tých istých prepojených údajov (napr. viacnásobné použitie tej istej postavy v tej istej scéne).

  • Pridávanie nových modifikátorov a vynútení kdekoľvek v zásobníku.

  • Rekurzívne reťazenie prepisov (t. j. prepojenie a prepísanie prepisu z iného súboru knižnice atď.).

Poznámka

Existujú známe problémy, ktoré je potrebné riešiť. Pre viac detailov si pozrite časť Phabricator hlavná úloha projektu.

Varovanie

Hoci vo väčšine prípadov sa údaje o prepisoch knižnice zachovajú aj pri strate referenčných prepojených údajov (napr. ak sa súbor knižnice stane nedostupným alebo sa premiestni), existujú určité výnimky.

Hlavným z nich je pravdepodobne vytváranie pózy (ale nie animácia) armatúrových objektov, keď ich samotné údaje objektu armatúry nie sú nadefinované. Kosti pózy objektu armatúry sú plne prepojené s kosťami jeho údaje objektu armatúry, ak toto neskoršie zmizne, kosti pózy sú definitívne stratené.

Prepísať hierarchie

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

Tento koncept hierarchie možno tiež považovať za akýsi super meta blok údajov. Je veľmi dôležitý v prípade, keď existuje niekoľko prepisov tých istých prepojených údajov, pretože umožňuje jasne identifikovať daný blok údajov s jedným nadradením a nenecháva žiadne nejasnosti pre procesy, ktoré ovplyvňujú celú hierarchiu (napr. opätovná synchronizácia prepisov s ich prepojenými údajmi). Umožňuje tiež zdieľať vzťahy medzi blokmi údajov rôznych hierarchií, ako sú nadradené vzťahy medzi dvoma rôznymi prepismi toho istého znaku.

Neupraviteľné prepisy

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

Referencia

Editor

3D Viewport and Outliner

Režim

Režim objektu

Ponuka

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.

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.

Poznámka

Záleží na správnom usporiadaní kolekcií

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.

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.

Poznámka

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.

Opätovná synchronizácia prepisu

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

Blender dokáže tiež opätovne synchronizovať prepisy knižníc z externých knižníc, ktoré sú potom prepojené do pracovného súboru. Je to však náročný proces, ktorý sa musí pri každom načítaní pracovného súboru úplne zmeniť, pretože Blender nemôže priamo upravovať/upravovať externú knižnicu.

Užívatelia, ktorí spájajú prepisy (alebo vytvárajú rekurzívne prepisy), by preto mali zabezpečiť pravidelnú aktualizáciu svojich knižničných súborov, aby sa vyhli tejto réžii pri načítavaní súborov (zvyčajne by na aktualizáciu malo stačiť otvorenie a uloženie týchto knižničných súborov).

Tip

Automatickú opätovnú synchronizáciu môžete vypnúť v ponuke Predvoľby Experimentálne.

Editing an Override

V podstate sa prepis upravuje rovnakým spôsobom ako bežný lokálny blok údajov. Môžete na nich používať operátory, upravovať ich vlastnosti z rôznych editorov atď. Existujú však určité limitácie, predovšetkým režim editácie nie je pre prepisy povolený. Vo väčšine prípadov, akonáhle upravíte vlastnosť, vidíte, že je prepísaná, podľa jej modrého obrysu/pozadia.

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

Referencia

Editor

Líniový prehľad

Režim

Režim objektu

Líniový prehľad

Context Menu ‣ ID Data ‣ Make Library Override Editable

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

Definovať prepis

Referencia

Editor

Akýkoľvek

Režim

Režim objektu

Vlastnosť

Kontextová ponuka ‣ Definovať prepisy, Kontextová ponuka ‣ Definovať prepis

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

Definovať jednoduchý prepis

Referencia

Editor

Akýkoľvek

Režim

Režim objektu

Vlastnosť

Kontextová ponuka ‣ Definovať jednoduchý prepis

Mark a property to be overridden in the local blend-file. For array properties only the selected element will be overridden.

Odstrániť prepisy

Referencia

Editor

Akýkoľvek

Režim

Režim objektu

Vlastnosť

Kontextová ponuka ‣ Odstrániť prepisy Kontextová ponuka ‣ Odstrániť prepis

Odstráni vlastnosť z prepisov. Použije sa hodnota prepojeného bloku údajov. V prípade vlastností poľa budú z prepisu odstránené všetky prvky.

Odstrániť prepis jednotlivo

Referencia

Editor

Akýkoľvek

Režim

Režim objektu

Vlastnosť

Kontextová ponuka ‣ Odstrániť prepis jednotlivo

Odstráni vlastnosti z prepisov. Použije sa hodnota prepojeného bloku údajov. V prípade vlastností poľa sa z prepisu odstránia len vybrané prvky.

Znovu nastaviť prepis knižnice

Referencia

Editor

Líniový prehľad

Režim

Režim objektu

Líniový prehľad

Context Menu ‣ ID Data ‣ Reset Library Override Single 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. Unlike the Clear operations below, this never removes the override data-blocks themselves.

Hierarchia opätovnej synchronizácie knižnice

Referencia

Editor

Líniový prehľad

Režim

Režim objektu

Líniový prehľad

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.

Varovanie

Pri opätovnej synchronizácii prepisu knižnice je možné, že sa upravené prepisy vymažú, ak sa v pôvodnej knižnici zmenia. V takom prípade sa zobrazí varovná správa s informáciou o tom, koľko prepisov bolo odstránených, ak je odstránenie nežiadúce, opätovnú synchronizáciu možno zrušiť pred uložením blend súboru.

Resync Library Override Hierarchy Enforce

Referencia

Editor

Líniový prehľad

Režim

Režim objektu

Líniový prehľad

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.

Clear Library Override Single

Referencia

Editor

Líniový prehľad

Režim

Režim objektu

Líniový prehľad

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

Referencia

Editor

Líniový prehľad

Režim

Režim objektu

Líniový prehľad

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.