Links & Library Overrides are still glitchy after 4 years of development

Does anyone use these in their work? Have you used them a long time? If so, do you think they work reliably?

We have begun to try them where I work, but…

Also, of course the usual UX issues which aren’t allowed to be seen a bugs:expressionless:

  • The only way to link a hierarchy into your file is to link the collection its in. However, there’s no easy way to then override the hierarchy and make changes to it, since you can’t just make the collection local. You have to move the entire hierarchy to a new collection (which actually copies the links instead) and then you can unlink the first collection and start to work in the new one.
  • A broken link will never show up on a library override. You must remove the library override before the broken link icon shows up.
  • The only time you can re-link something is if it’s broken. There’s no intuitive UI to select a link and see where it leads to, and change that for something else.
  • You can change materials on a library overriden object, but you can’t use the new/duplicate button. So if it’s the first and only thing in a file, you have to create a dummy object, use the new material button on that, and then assign that material to the override and delete the dummy.
  • When you linked a file instead of appending it, you most likely want to keep that link around. However, the link button’s default action is not to create a library override, but rather to make it local (ie, the same as append). Seems reversed, no?
  • Right-clicking on the above mentioned button and choosing to make a library override on a material yields an error message saying “type of data block not yet implemented” and doing the same on an animation action shows just an entirely greyed out menu.
  • Make local only appears when you right-click on a mesh in the outliner, and the positioning of the unlink command in the right-click menu of an object is different from a mesh (just a weird inconsistency… also when I tested this just now, at one point I managed to make the object loose its place in the hierarchy… which I still think is something that seemingly randomly happens when you work with linked overrides… also, while attempting to replicate that… I’ve now managed to get an object to refuse to become local with a greyed out link icon).
  • I wrote down how to insert a stashed action from a linked object into the animation timeline before, but I can’t understand my instructions now and also (so far) haven’t been able to figure it out. :sweat_smile:
5 Likes

I was able to build a diorama scene for a project with linked objects without massive issues. I also use linked assets for rigging and animation the same way I do in Maya, so its primary purpose works for me. Might break in other instances once I get more in depth with the system, but for now it works.

However, I do think reloading assets, overriding, etc. are a bit too complicated when compared to Maya. There are multiple options for overriding assets and it is not very clear how you override things to be able to edit them in a scene. You can’t really do anything with a rig unless you override it, so I mostly did a bunch of trial and error until I found a setting that did what I wanted. Reloading assets after changing them in another Blender scene is hidden away in some menu under Blender File in the Outliner instead of just allowing us to access the feature by R clicking directly on the asset in the Scenes Outliner. Little things like that make handling of linked objects and overrides a bit clunky.

1 Like

I didn’t go through all the bug you reported, Overrides are used where I work on animated series and movies, but I didn’t use them a lot on my side…
What the pipeline team set up is an operator to upgrade versions manually, and I’m not sure what it does exactly, maybe nothing particular :smiley:

Some stuff are not supported like changing materials, in fact it’s possible if you change material from mesh data to object data. For instance the second bug you posted is more a missing feature / feature request rather than a bug.

I guess at least they should be usable since every company using blender as to work with it if they need to link stuff, and at least it worked for blender studios shorts so it’s probably not that bad.
But I bet they go through painful times to report bugs and obviously devs too in fixing them.

In the other hand, I wouldn’t be surprised if there is still some issue, it looks like a complex system that need some time to be completely stable with a strong design. I’ve got no doubt that we eventually get there.

I don’t even use libraries, or the asset browser for that matter, at the moment.

Dealing with all the limitations and keeping track of what works, and what does not work, is more mental aggravation for me than just not using those features at all.

4 Likes

I tried many times to implement it but it doesn’t work reliably for me. I believe it’s a failed project.

I wish Blender would stop this development and start working on adopting USD for scene assembly and develop proper tool set around this.

USD is now mature enough where it’s starting to get the mass adopting among different industries. And it’s not a coincidence because once you understand what benefits it brings it doesn’t make sense to use anything else for scene assembly.

6 Likes

I use asset browser pretty regularly and believe it’s a successful project contrary to library overrides.

It’s also far from being mature enough in Blender to consider assets library done as a project. But where it’s at in it current state it’s no doubt provides value.

1 Like

Some people think asset browser is relatively successfull though.
Some people at deeper level think that Collections are implemented relatively better than asset browser.
Some even more deep level people think that even Collections has massive unsolved usability issues.

That depends from the production’s scale and level.

1 Like

I agree, maybe it’s worth giving example of what doesn’t work, since while there could be some issue, they have been ironed out for a while now, and at the same time it doesn’t do everything either. This might help to keep the conversation constructive.

It’s very different use cases, asset browser is great to handle asset when working alone. But it doesn’t handle assets at the project level, which you need when multiple people work on different shots and their assets. For that studios still rely on a in-house solution that generally link together the project, the user, blender, and a project management software like shotgun or kitsu ( for animation and VFX).

For now it’s hard to put override and asset browser in the same sentence because they are very disconnected from each other, at least for the regular use. Asset browser is supposed to evolve and eventually should also handle asset loading on a large scale project.

1 Like

Have they fixed custom attributes and custom properties (+ drivers) in the referenced (linked/append) model?

I use Links and Library Overrides extensively. I’ve got them working, but yes, they’re a real pain to work with. Buggy, poorly defined, poorly documented, limited function, and neglected. If BF ever wants Blender to spread professionally, they need to fix them, because for larger projects proper linking and overrides are essential.

Asset Browser I don’t find very useful. I’ve gone back to linking manually. It and Blender in general isn’t versioning friendly (You need to be able work with multiple versions of the same asset). Tip: A good workaround for that is to have a permalink directory and use the filesystem to link to the latest version with a versionless filename. That helps a lot. Still even small changes to library files break the override system, so you really need to avoid changes… though that defeats the main point of using libraries in the first place. Also when linking doesn’t work, the error messages are mostly useless. It’s common to be told there is a problem, but not be told where it is. It’s pain, though I manage.

Bugs are a real problem for Blender, and not just for libraries and overrides, but I don’t put in bug reports any more because when I do, nothing happens. You’ll exchange some messages with someone and then they’ll sit there forever. You can’t afford to hold up a project like that. Instead I find workarounds. Life is too short.

I think Blender has won the “3D Wars”. I use it because no other DCC comes close, but there’s some essential function badly in need of improvement. I’ve been working for some time on a post of what’s holding back Blender professionally and Links and Overrides are up the top of the list. I’ll post that on the “Guano” thread when done - because many of those things are small, but really hold Blender back.

5 Likes

Yes, I’m totally in that boat.

I’m glad we have assets browser. It took me some time to figure out how to best utilize it at my scale of production (which is rather small). I just don’t use linking functionality since, as some other people mentioned, it’s rather broken and doesn’t work as I think it was intended to.

So just using it as fast access to the repository of additional tools/assets I use all the time works rather well for me. Especially, for atomic assets such as small scene elements, geo primitives, geometry nodes and shader networks.

If properly organized, it’s a huge help in speeding up my production. But I don’t use linking functionality at all. Just appending data and making sure my libraries are up-to-date and well organized.

I also believe the asset browser will improve with time and bring even more value if the discussions about this project will move into further development. I believe developers are well aware of current issues/limitations and have good designs to move the project to the next version.

But as is, it’s already very helpful.

This is interesting. I’ve never heard such an opinion and not sure what it could mean.

Yeah, I’m also in that boat. I still struggle to find a good workflow around this concept. It feels like things are messed up design wise here.

Feels like Collections were intended like a part of “takes” system but Scene, View Layers are badly organized/exposed in the UI and don’t provide good workflow to easily manipulate objects to have different takes with the same objects. I use this system but I still can’t find a good and easy workflow around this design.

As soon as my projects get bigger and requires multiple shots and overrides, everything becomes so much more difficult to handle.

The concept of USD though allows for an amazing scene assembly flexibility and data reuse. I’m currently learning to build the complex projects in Houdini Solaris because it requires so much more time and energy to handle bigger scenes in Blender. So much easier and straight forward in Solaris.

The only downside is that you need to learn how USD works and understand it’s langueage and concepts. Which might be a stopper for some people. Luckily, Houdini is building good tools to make interaction with USD more user-friendly.

I wish Blender would ditch collections concept in the Outliner and either made Nulls to work as proper group objects or make Collections work as group objects. And make the separate editor dedicated to scene assembly using USD framework.

It’s a huge “ask” though. But linking and overrides are obviously not working well in Blender after so many years of development.

Yes, definitely.

2 Likes

I use linked libraries, basically in all my projects, since I started working with Blender, 10+ years ago.
Overrides at their current state, feel half-done, and while being an improvement over the proxy mechanism in many regards, they also introduce some regression (most of all: the complete white box you get, all the library components cluttering the outliner, no mechanism to have “private” components hidden in the library, as opposed to the clean, well defined interface a proxy provided).

Syncing scenes with library changes (a thing that ought to be a no-brainer IMO and happen reliably and automatically, at file reopen or a single button pressed) at time seems to be a matter of rolling dice and praying to Crom.

Nevertheless, I hope overrides will mature, but as of now … I’m getting along with them.

Depends.
With limitations, yes.

I can’t (or won’t), for instance, worry about UI issues anymore - the whole UI revamp has annoyed hell out of me in the past, I don’t care about fancy buttons, I want features and reliability, I want easy, straightforward ways to access them, and I don’t want things to change all the time, for some fashion reasons.

However things go their own way, and I have to deal with what I get. So I’m careful regarding upgrade steps, hesitant about using brand-new releases for production work, and also trying to maintain backwards compatibility with assets I consider important.

Switching to USD completely sounds interesting, and it would certainly be nice to have one common standard for scene representation at some point. However I don’t see that around the corner. Myself, I didn’t really try it yet (and I fear the learning curve, AI will have it all swallowed before I’m done …), and even if Blender devs decided to go that route, I reckon it would take ages to implement.

So right now, while it’s Blender, I don’t see another way than trying to get along with what we have. And in that regard: linking is always better than duplicating stuff around …

2 Likes

i sit somewhere in the middle. i’ve been able to use library overrides on projects and as long as i’m not trying to do anything too weird, its been manageable.

some things that i found quite frustrating though:

-if you need to remap the location of files, it’s like brain surgery. i’ve found situations where relinking files will cause others to become completely broken. almost like it gives you one chance to fix everything, and if your new path still has missing files, blender deems those as lost data and just fully deletes them, gone from outliner, everywhere. i’ve managed to find ways of solving tough situations, but its definitely a very unforgiving process.

-sometimes a scene will make use of multiple copies of a linked rig asset. an example might be a scene using multiple generic soldier characters. blender will let you do it, but it seems like it throws you into uncharted territory. i’ve found cases where independently animated copies will suddenly forget they have their own animation data block and they’ll all start copying each other’s motion - like they completely forget who got what overridden data block.

-another frustrating thing is blender doesn’t let you override the rig’s name (even though it will automatically when you have multiple assets). so if you want to export fbx’s from each instance of a soldier rig, you’re stuck with soldier, soldier.001, soldier.002 etc as the root names and you can’t even swap them around so each one has the proper base name.

overall, its like they had a very narrow use case of how it all should work when the system was designed and they really don’t want you wandering very far from that.

2 Likes

Blender benefits greatly from the fact that there is largely no such thing as an affordable DCC solution (with permanent licensing) from the commercial vendors. The ones that are still out there are in a state where they barely get development, if at all. Blender is the only game in town that combines access to 3D for the masses with a rapid rate of development.

As for assets and overrides, they are far from perfect, but seem to work well enough for what I do (though I do not make animations and I do not usually work on projects that span across multiple files).

You don’t work for Nvidia by any chance? :smile:

Anyway, you’re describing Omniverse. It’s entirely built around USD and a non-destructive workflow between different DCCs (and they even have their own branch of Blender for it).

1 Like

Have you tried Gaffer? I have only toyed with it, but am amazed at how slick and powerful it is for an open source package, especially now that it ships with Cycles.

Personally, I don’t have a lot of use for it, but if I was running a Blender based studio pipeline, I would definitely be using it for USD scene assembly. It is improving rapidly, as several large studios such as Cinesite now use it.

1 Like

Yeah, I’m aware of the software but I am not sure if I need to build my workflow around this tool. Yet.

I find the most powerful combination so far for me Blender + Houdini and I intend it to stay that way for a while.

Also, I chose Octane as my primary rendering tool a while back based on my needs and so far I don’t regret it. Octane is also developing support for Houdini Solaris so I can jump between two DCCs easily and decide based on the scope of projects which to choose as my main workhorse for production. It’s not ideal but so far it works for me better as a solo “studio” than to do everything exclusively in Blender. I love a lot of things about Blender but as soon as you need to scale up your project in size of complexity and handling different scenes it becomes an issue and a time sink managing everything.

USD give you more freedom and flexibility in scene assembly. You can create pretty complex setups joggling the same number of assets.

Yeah, I guess it sound like a corporate shill talk :grinning_face_with_smiling_eyes: But it’s just true. I guess one just need to get invested in starting using USD to understand what benefits it provides.

1 Like

An incomplete discussion of some of the problems using Blender for larger animated projects.

I agree collections aren’t very intuitive. It took me a few years to figure them out. The problem is they implement grouping for two very different use cases.

They’re good for organizing your outliner. One of their strengths is you can rearrange the collections without breaking the scene: A rare advantage of the flat naming system.

Collections are also good for instancing - providing you use them like this: Put your original collection (the one you want to instance) in a HIDDEN collection, which you keep unchecked, and then Add → Collection Instance to instance it in your main scene. Using this you can make sophisticated models which are well organized - with hierarchical collection instances. You can also link these from a library file (using File → Link), providing you first link them into HIDDEN collection. The asset browser skips that step as in it loads them, but the original collection isn’t shown.

Unfortunately the override system does not handle these well. A huge problem is you can only access the top level of the original collection. So if you have a beautifully constructed aircraft with cockpit lights and switches, but can’t choose one of those instances and specify it as lit, unlit, flipped. This is a colossal pain. Other DCC do let you tweak individual instances, but Blender doesn’t.

If you convert the instance into an override, you get access to the first level of the original instance, but nothing inside. The only way to do that - which is so convoluted it’s really not practical - is to write a script which expands embedded collection instances, but that’ll prevent you from resynching the library. In it’s current form, it’s pretty much unusable.

Converting the instance to an override has another weird problem: It moves the instance BACK TO THE ORIGIN. Why? There is no good reason for this. And unless you’ve happened to design the original collection so everything in it is parented to a single empty, you can’t move them back or even around easily.

A decent although clunky workaround is to register a python startup script to modify the object through the python interface, and hope one day this ‘feature’ isn’t removed. Though even this isn’t easy because it can be hard to work out what the object name of the instanced object will be - remember it can be automatically renumbered.

This is another issue with the inability to explore the hierarchy of an instanced collection: You can be staring at something on the screen, and have no idea where it is in your file or object hierarchy. I frequently waste half an hour trying to find what I’m looking at. Lights are even worse.

Another issue is resynching: If you edit the library, Blender often can’t resync the library-linked instances. Part of this seemed to be caused by Blender’s tendency to silently renumber-rename objects. Also any changes to the hierarchy - which collections are normally quite tolerant of - break it. The error messages when a sync fails aren’t helpful. Often you’re told the link failed so look in the outliner, but when you do, you can’t see anything. The only solution is to get the console (which you can’t search), copy-pasted it to an external text editor, and comb through it. A better solution might have been to use GUIDs to match objects between resyncs. Crashes when attempting resyncs aren’t unusual. Crashes doing anything in Blender aren’t unusual.

Often stated elsewhere, but worth restating here: There’s a lot you can’t override. Classic case of that is pose a rigged mesh, and you need to add a shape key to fix some malformation. You can’t override that! So you have to somehow export the pose in the scene back to the original library, add the shape key there - which is nuts because it’s a scene-specific pose. It has no business being in the original library.

Working on re-targeting, I found many addons can’t work on linked rigs! They need EDIT mode, which isn’t available for links.

Other issues are ill-defined specs. Even though I use linking and overrides a lot, there’s much that doesn’t make sense. The UI terms are unclear, and the documentation lagging. Things change and often randomly. I dread each new release in Blender in that all my overriden scenes will suddenly stop working. For example in 3.6, suddenly you can’t override visibility on an object in the outliner. You can now only do it in the properties tab. Why? For what reason? Suspect there was none. Lack of testing is an issue to. On an earlier release, when you saved your blend file, it SILENTLY DISCARDED parenting relationships. That cost me weeks.

On the asset browser: You can’t see the full name of the asset without dragging it : No ‘details’ view. It doesn’t accommodate having the same asset in multiple files - supporting file versioning is essential for larger projects. Thumbnail generation seems to be pseudo-random. When you drag things in, it drags them in strange positions you have to move anyway. File → Link at the 3D cursor is much easier. It also broke pose asset libraries, without giving any other benefits, which left addons like Rhubarb scrambling. Only good thing about the Asset browser was it added a ‘Mark Asset’ flag so you can at least tell what is intended to be exported.

[quote=“Ace_Dragon, post:14, topic:1476541”]
As for assets and overrides, they are far from perfect, but seem to work well enough for what I do (though I do not make animations and I do not usually work on projects that span across multiple files).
[/quote ]

From discussions on blender artists, most users don’t use Blender for either large products or animation, but I do, and those shortcomings really hurt productivity. It’s frequently been asked why don’t large studios use Blender. I think this is one of the reasons. One of the Blender Devs who works on Overrides said it’s a neglected area: There’s just not much interest in it.

I hope BF changes on that. It’d be easier to convince a professional studio making $$$ to donate to Blender - because it’ll help them make more $$$, instead of shaming hobbyists over their Mochas. :slight_smile:

Very true. I’ve tried the rest. Today, Blender is the only game in town. So the question is: How to fix this, and if enough people care - given large projects and animation are rarer use cases.

I explored the bowels of USD a couple of years ago. It’s bullet point benefits are attractive, but inside it’s convoluted and dated. I’d dread writing code for it, If you’re using it in your studio, not hard to imagine having a dedicated staff position for someone managing your interface to it. Skim this: https://openusd.org/release/usdfaq.html Even Houdini who have been pushing USD hard warned it’s not a panacea.

7 Likes

Lots of good points – welcome to BA! I just have one small quibble:

It’s not, but it’s very much not intuitive, and takes a while to figure out. It uses the Workbench render engine and its own camera (not the active scene camera), and expects the object’s front to be oriented towards -Y (rotation needs to be applied). Collection assets use the Global -Y. The look of the preview can be customized by switching the engine to Workbench. Texturing is weirdly complicated; one might have to select the relevant diffuse texture in the Shader Editor before generating the preview. So, confusing and finicky, but not random.

This was valid as of 3.4, and doesn’t apply to Poses (I’ve never worked with those, but the manual actually has some detail).

I find the asset browser has basic functionality that is good enough for my purposes, but I’m just a hobbyist, work alone, don’t do animation (yet), and don’t have a production pipeline with versioning. I can definitely see its shortcomings for an actual studio, or for individuals who collaborate on large projects. Still, for people like me (I think I’m probably more representative of an average Blender user) it’s sufficient enough to not have to buy an asset management add-on – which I was just about to do when they released the first version of the asset browser.

Whether the BF should aim for being more feature-competitive with the industry gorillas in order to get more investment isn’t something I can talk intelligently on because I don’t know any of the numbers involved. I’m just glad there is such a capable and generally functioning DCC for which I don’t have to beggar myself, and I can see how much juggling the BF has to do as it is just to keep all its balls in the air – and some of them obviously drop anyway. I keep thinking if anyone who uses Blender semi-seriously donated just a little bit regularly, that situation would improve considerably, but have no idea how to motivate people to do that; it’s probably harder than to motivate one big industry member to donate a hefty chunk, or contribute some development.

This is absolutely the biggest papercut of library overrides for me. It drops an empty with the transform of the instance object, so it’s not impossible to move everything back, but it’s still a huge pain.

1 Like