Regression: Dragging Assets from the Library no longer transfers attached empties #127045

Open
opened 2024-09-01 15:29:52 +02:00 by Guido · 13 comments

System Information
Operating system: macOS-14.6.1-arm64-arm-64bit 64 Bits
Graphics card: Metal API Apple M2 Max 1.2

Blender Version
Broken: version: 4.3.0 Alpha, branch: main, commit date: 2024-08-31 19:33, hash: 7675b5a0b4ed
Worked: Version: 4.3.0 Alpha - Date: 2024- 07- 23 23:52 - Hash: 1c3e8fb1fe

Short description of error
Dragging assets from the library doesn't transport the attached emptys and such into the new scene anymore !
While former 4.3 (Version: 4.3.0 Alpha - Date: 2024- 07- 23 23:52 -Hash: 1c3e8fb1fe) and
4.2, 4.1 versions working fine.

Exact steps for others to reproduce the error

  • Create an asset browser folder and copy the 'special cam blend file' in there.
  • Now open blender 4.1 - 4.2 (or use this Version: 4.3.0 Alpha - Date: 2024- 07- 23 23:52 -Hash: 1c3e8fb1fe) and
    drag the special cam asset into the scene.

You'll get a cam rig like in the image below, where the cam is facing down and all the empties are there and working as well.


NOW use 4.3 versions AFTER the Version: 4.3.0 Alpha - Date: 2024- 07- 23 23:52 -Hash: 1c3e8fb1fe and
you will get just the camera and it's far away from the world center . See in image

For example marking the whole collection as asset will do the same!


  • Side node: When doing it in 3.6 you ONLY get the empties imported.

- Means 3 different behaviours between blender 3.6 and 4.3

  • Only 4.1 & 4.2 working correctly.
  • All tested without addons enabled (vanilla blender)
  • Tried to create the asset blend file in other versions and save - BUT still the same behaviour.

So the bug comes up somewhere between:

working with:

Version: 4.3.0 Alpha
Date: 2024- 07- 23 23:52
Hash: 1c3e8fb1fe

and

NOT working with:

Version: 4.3.0 Alpha
Date: 2024 - 08- 22 23:55
Hash: 76eed5c65a4C

**System Information** Operating system: macOS-14.6.1-arm64-arm-64bit 64 Bits Graphics card: Metal API Apple M2 Max 1.2 **Blender Version** Broken: version: 4.3.0 Alpha, branch: main, commit date: 2024-08-31 19:33, hash: `7675b5a0b4ed` Worked: Version: 4.3.0 Alpha - Date: 2024- 07- 23 23:52 - Hash: 1c3e8fb1fec8 **Short description of error** Dragging assets from the library doesn't transport the attached emptys and such into the new scene anymore ! While former 4.3 (Version: 4.3.0 Alpha - Date: 2024- 07- 23 23:52 -Hash: 1c3e8fb1fec8) and 4.2, 4.1 versions working fine. **Exact steps for others to reproduce the error** - Create an asset browser folder and copy the 'special cam blend file' in there. - Now open blender 4.1 - 4.2 (or use this Version: 4.3.0 Alpha - Date: 2024- 07- 23 23:52 -Hash: 1c3e8fb1fec8) and drag the special cam asset into the scene. You'll get a cam rig like in the image below, where the cam is facing down and all the empties are there and working as well. ------------------- NOW use 4.3 versions AFTER the Version: 4.3.0 Alpha - Date: 2024- 07- 23 23:52 -Hash: 1c3e8fb1fec8 and you will get just the camera and it's far away from the world center . See in image For example marking the whole collection as asset will do the same! ------------------ - Side node: When doing it in 3.6 you ONLY get the empties imported. **- Means 3 different behaviours between blender 3.6 and 4.3** - Only **4.1 & 4.2 working correctly**. + All tested without addons enabled (vanilla blender) + Tried to create the asset blend file in other versions and save - BUT still the same behaviour. So the bug comes up somewhere between: working with: Version: 4.3.0 Alpha Date: 2024- 07- 23 23:52 Hash: 1c3e8fb1fec8 and NOT working with: Version: 4.3.0 Alpha Date: 2024 - 08- 22 23:55 Hash: 76eed5c65a4C
Guido added the
Severity
Normal
Type
Bug
Status
Needs Triage
labels 2024-09-01 15:29:53 +02:00
Member

Hi, thanks fir the report. Can confirm the regression, bisecting

Hi, thanks fir the report. Can confirm the regression, bisecting
Pratik Borhade changed title from Dragging Assets from the Library no longer transfers attached empties and related elements into the new scene. -MacOS silicon - Blender 4.3 to Regression: Dragging Assets from the Library no longer transfers attached empties 2024-09-02 05:42:16 +02:00
Member
Caused by 2858c3b287d7007a6eaf0723562f96b9331d3ea1 @JacquesLucke ^
Jacques Lucke was assigned by Bastien Montagne 2024-09-05 10:12:16 +02:00
Bastien Montagne added this to the 4.3 milestone 2024-09-05 10:12:19 +02:00
Member

I'm fine with changing this back to the old behavior but I have concerns with the scalability of that approach in the future. It feels wrong to just add all related objects to the scene as well with no way to control what is added. For example, if some object is used as "implementation detail" of an asset, it shouldn't be added to the scene (it may be used as source of mesh that is used in a geometry nodes setup).

Currently, I think that a better approach would be to put all objects into a collection that you want to be added to the scene. Then mark the collection instead of the camera object as asset.

@mont29 How would you want to handle the case where not all (indirectly linked) objects should be added to the scene when dragging in an object from the asset browser in the future (even if we return back to the old behavior here for now)?

I'm fine with changing this back to the old behavior but I have concerns with the scalability of that approach in the future. It feels wrong to just add all related objects to the scene as well with no way to control what is added. For example, if some object is used as "implementation detail" of an asset, it shouldn't be added to the scene (it may be used as source of mesh that is used in a geometry nodes setup). Currently, I think that a better approach would be to put all objects into a collection that you want to be added to the scene. Then mark the collection instead of the camera object as asset. @mont29 How would you want to handle the case where not all (indirectly linked) objects should be added to the scene when dragging in an object from the asset browser in the future (even if we return back to the old behavior here for now)?
Author
  • This actual behaviour renders 90% of assets unusable.
    Most assets come with empties and such to place them, for example.

  • When using collections to make assets, the asset browser gets cluttered with all the pieces included and not
    only showing one collection asset!

Look at all the big asset libraries. Should they all redo their assets now because of that not-so-bright solution?
Or does it make more sense to find a more clever solution without breaking things this way, instead of leaving thousands of users with this mess?

When I post this on Twitter, you'll have a lot of fun answering questions.
(I myself alone have at least a thousand assets that would be broken and need to be redone)

(Devs, please try to work with Blender and not only for Blender)

- This actual behaviour renders 90% of assets unusable. Most assets come with empties and such to place them, for example. - When using collections to make assets, the asset browser gets cluttered with all the pieces included and not only showing one collection asset! Look at all the big asset libraries. Should they all redo their assets now because of that not-so-bright solution? Or does it make more sense to find a more clever solution without breaking things this way, instead of leaving thousands of users with this mess? When I post this on Twitter, you'll have a lot of fun answering questions. (I myself alone have at least a thousand assets that would be broken and need to be redone) (Devs, please try to work with Blender and not only for Blender)
Member

I don't intend to break any existing assets. What I wonder is how we want to handle the case when we do not want to add all objects to the scene at all times.

When using collections to make assets, the asset browser gets cluttered with all the pices included and not
only showing one collection asset

Can you describe why the asset browser would get more cluttered when the collections are asset instead of the objects? I'd think that you'd still have the same number of assets in the end.

I don't intend to break any existing assets. What I wonder is how we want to handle the case when we do not want to add all objects to the scene at all times. > When using collections to make assets, the asset browser gets cluttered with all the pices included and not only showing one collection asset Can you describe why the asset browser would get more cluttered when the collections are asset instead of the objects? I'd think that you'd still have the same number of assets in the end.
Author

In the example file, there is only the cam as an asset, and it brings all the empties and settings with it when the cam asset gets dragged into the scene!

So in the asset browser, you have one asset ... the cam in this case.

When doing it with a collection, you will end up with a instanced collection. Try to make this real and see if all is still working or if you just get all pieces but the settings and parenting are gone.

Go ahead and try it out. It takes only 3-5 min.
Take the cam I created and look at how it's working with all the drivers and settings.
Then remove the asset mark, put all in a collection, mark it as an asset again.
Now use this asset and try the cam to see if all works, if they are still parented, etc.

To shorten it: Nothing will work as it should, with any of the options like 'make instance real' or 'restore collection instances'.

Anyway, have a closer look at it.
But one more question I have: What was / is the intent of the change without any further solution?
The ability just got switched off, but with no solution / reason.

But I guess there was / is none!!!

In the example file, there is only the cam as an asset, and it brings all the empties and settings with it when the cam asset gets dragged into the scene! So in the asset browser, you have one asset ... the cam in this case. When doing it with a collection, you will end up with a instanced collection. Try to make this real and see if all is still working or if you just get all pieces but the settings and parenting are gone. Go ahead and try it out. It takes only 3-5 min. Take the cam I created and look at how it's working with all the drivers and settings. Then remove the asset mark, put all in a collection, mark it as an asset again. Now use this asset and try the cam to see if all works, if they are still parented, etc. To shorten it: Nothing will work as it should, with any of the options like 'make instance real' or 'restore collection instances'. Anyway, have a closer look at it. But one more question I have: What was / is the intent of the change without any further solution? **The ability just got switched off, but with no solution / reason.** But I guess there was / is none!!!
Member

There was no specific reason for this change in behavior. The commit was intended to be a refactor that improves code without changing functionality. Obviously this didn't work out, hence this bug report exists and is set to a high priority to make sure that Blender won't be released with this issue. It will be fixed for sure, I'm just still figuring out the best way to approach the fix.

Go ahead and try it out. It takes only 3-5 min.

I actually did try it already. And it worked fine to have the collection asset in 4.2, from what I can tell. In the current alpha version there also is an issue with this approach, which will be fixed too.

Note that for this to work properly, you have to disable the Instance checkbox in the Add Collection redo panel in the 3d view after dragging in the collection asset.

There was no specific reason for this change in behavior. The commit was intended to be a refactor that improves code without changing functionality. Obviously this didn't work out, hence this bug report exists and is set to a high priority to make sure that Blender won't be released with this issue. It will be fixed for sure, I'm just still figuring out the best way to approach the fix. > Go ahead and try it out. It takes only 3-5 min. I actually did try it already. And it worked fine to have the collection asset in 4.2, from what I can tell. In the current alpha version there also is an issue with this approach, which will be fixed too. Note that for this to work properly, you have to disable the `Instance` checkbox in the `Add Collection` redo panel in the 3d view after dragging in the collection asset.
Author

I was looking for that checkbox but 4.2, 4.3 both don't show such a box when hit F9 for the redo panel.

The main thing in the end should be:
That the Assets work as they used to.
The way with collections could be made work too.
Because most people had issues with that, so you don't see them much used as assets.
Curtis Holt even wrote a tool coming with his addon to work with collections as assets !

I was looking for that checkbox but 4.2, 4.3 both don't show such a box when hit F9 for the redo panel. The main thing in the end should be: That the Assets work as they used to. The way with collections could be made work too. Because most people had issues with that, so you don't see them much used as assets. Curtis Holt even wrote a tool coming with his addon to work with collections as assets !
Member

It will work like it used to.

For reference, see the attached video for what I meant regarding using collections (note that this is 4.2). Maybe we mean slightly different things? Because my redo dialog looks different than yours.

It will work like it used to. For reference, see the attached video for what I meant regarding using collections (note that this is 4.2). Maybe we mean slightly different things? Because my redo dialog looks different than yours.
Author

Ok,

in vanilla blender 4.2 and 4.3 (factory settings) opened a file with an collection asset,
and this is what I see with MacOS silicon Blender silicon !

ps: maybe there is a setting in blender !?

Ok, in vanilla blender 4.2 and 4.3 (factory settings) opened a file with an collection asset, and this is what I see with MacOS silicon Blender silicon ! ps: maybe there is a setting in blender !?

@JacquesLucke am not sure what was the behavior when linking assets, but for append case we should always instantiate all (indirectly) pulled objects. If nothing else, because the stance 'all local objects should always be instanced in at least one scene' is still valid currently in Blender. :/

Indeed, better control over what is instanced and how can be achieved with collections - but then indeed this also has its own issues depending on the workflow.

@Nurb2Kea This is why typically such set-up is done using a rig (armature object), rather than relying only on object parenting and such. This is how linking/appending collections can be made usable ;)

@JacquesLucke am not sure what was the behavior when linking assets, but for append case we should always instantiate all (indirectly) pulled objects. If nothing else, because the stance 'all local objects should always be instanced in at least one scene' is still valid currently in Blender. :/ Indeed, better control over what is instanced and how can be achieved with collections - but then indeed this also has its own issues depending on the workflow. @Nurb2Kea This is why typically such set-up is done using a rig (armature object), rather than relying only on object parenting and such. This is how linking/appending collections can be made usable ;)
Member

If nothing else, because the stance 'all local objects should always be instanced in at least one scene' is still valid currently in Blender. :/

Hmm, I wasn't really aware of this. I see people use objects that are not in any scene quite often. Just recently in Simon's brush tools add-on he uses those unlinked objects too afaik. Personally, I don't really have a problem with that. But ok, can be a discussion for another time.

> If nothing else, because the stance 'all local objects should always be instanced in at least one scene' is still valid currently in Blender. :/ Hmm, I wasn't really aware of this. I see people use objects that are not in any scene quite often. Just recently in Simon's brush tools add-on he uses those unlinked objects too afaik. Personally, I don't really have a problem with that. But ok, can be a discussion for another time.
Author

@mont29

@Nurb2Kea This is why typically such set-up is done using a rig (armature object), rather than relying only on object parenting and such. This is how linking/appending collections can be made usable ;)

What kind of advice is this? I don't understand.

It works as is.

Also, this would mean we can only make things work as assets when using this specific armature way.
And how do we replace parenting with armature?
That can't be it. As said above: Then every asset creator would have to redo most of their assets and users would have to as well!
As mentioned above, Curtis Hold did a tool to manage this after long research about how to handle collection assets.

I really don't understand the logic behind this here. It's a change for no reason; this is the bug report for it, it seems it gets changed back as we proceed here, and now a new logic?!

More interesting for me: why don't I see the Instance checkbox with vanilla Blender 4.2 silicon on the latest macOS? &
What about the error message I posted above while working with the collection assets?

@mont29 > @Nurb2Kea This is why typically such set-up is done using a rig (armature object), rather than relying only on object parenting and such. This is how linking/appending collections can be made usable ;) What kind of advice is this? I don't understand. It works as is. Also, this would mean we can only make things work as assets when using this specific armature way. And how do we replace parenting with armature? That can't be it. As said above: Then every asset creator would have to redo most of their assets and users would have to as well! As mentioned above, Curtis Hold did a tool to manage this after long research about how to handle collection assets. I really don't understand the logic behind this here. It's a change for no reason; this is the bug report for it, it seems it gets changed back as we proceed here, and now a new logic?! More interesting for me: why don't I see the Instance checkbox with vanilla Blender 4.2 silicon on the latest macOS? & What about the error message I posted above while working with the collection assets?
Sign in to join this conversation.
No Label
Interest
Alembic
Interest
Animation & Rigging
Interest
Asset System
Interest
Audio
Interest
Automated Testing
Interest
Blender Asset Bundle
Interest
BlendFile
Interest
Collada
Interest
Compatibility
Interest
Compositing
Interest
Core
Interest
Cycles
Interest
Dependency Graph
Interest
Development Management
Interest
EEVEE
Interest
Freestyle
Interest
Geometry Nodes
Interest
Grease Pencil
Interest
ID Management
Interest
Images & Movies
Interest
Import Export
Interest
Line Art
Interest
Masking
Interest
Metal
Interest
Modeling
Interest
Modifiers
Interest
Motion Tracking
Interest
Nodes & Physics
Interest
OpenGL
Interest
Overlay
Interest
Overrides
Interest
Performance
Interest
Physics
Interest
Pipeline, Assets & IO
Interest
Platforms, Builds & Tests
Interest
Python API
Interest
Render & Cycles
Interest
Render Pipeline
Interest
Sculpt, Paint & Texture
Interest
Text Editor
Interest
Translations
Interest
Triaging
Interest
Undo
Interest
USD
Interest
User Interface
Interest
UV Editing
Interest
VFX & Video
Interest
Video Sequencer
Interest
Viewport & EEVEE
Interest
Virtual Reality
Interest
Vulkan
Interest
Wayland
Interest
Workbench
Interest: X11
Legacy
Asset Browser Project
Legacy
Blender 2.8 Project
Legacy
Milestone 1: Basic, Local Asset Browser
Legacy
OpenGL Error
Meta
Good First Issue
Meta
Papercut
Meta
Retrospective
Meta
Security
Module
Animation & Rigging
Module
Core
Module
Development Management
Module
Grease Pencil
Module
Modeling
Module
Nodes & Physics
Module
Pipeline, Assets & IO
Module
Platforms, Builds & Tests
Module
Python API
Module
Render & Cycles
Module
Sculpt, Paint & Texture
Module
Triaging
Module
User Interface
Module
VFX & Video
Module
Viewport & EEVEE
Platform
FreeBSD
Platform
Linux
Platform
macOS
Platform
Windows
Severity
High
Severity
Low
Severity
Normal
Severity
Unbreak Now!
Status
Archived
Status
Confirmed
Status
Duplicate
Status
Needs Info from Developers
Status
Needs Information from User
Status
Needs Triage
Status
Resolved
Type
Bug
Type
Design
Type
Known Issue
Type
Patch
Type
Report
Type
To Do
No Milestone
No project
No Assignees
4 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: blender/blender#127045
No description provided.