2
$\begingroup$

I'm fairly new to Blender. I'd like to be able to easily make assets that I will reuse, while working on a scene. (Assets could be models, but also materials etc.) I want to do this non-destructively, so I can edit the asset and have all the instances update. Specifically, I want to achieve the following:

  • I initially develop the asset in a simple, clutter-free environment with just a simple lighting setup, for quick rendering

  • Then I add multiple instances of my asset to a scene

  • The version in the simple environment and the versions in my scene stay linked, so that I can either edit the asset in its original simple environment, or I can edit it in the scene, and editing one of them will change the other.

The best / most convenient workflow for this doesn't seem to be obvious. Here's what I can think of so far:

  • Create a new blender file for the asset. This seems to be a non-starter, because you can't open two .blend files at once, so I'd have to constantly save my file, reopen the other one, export the model, save the file, open the other file, import the model, and so on. There would be no hope of making small changes to the asset and instantly seeing the effect in context.

  • Design the asset in a new scene within my blender file and then instance it within the 'main' scene. Initially this seemed like the obvious right way to do it, but the problem is you then can't adjust the asset without switching to the other scene, as I described at Editing a material when it doesn't exist in the current scene.

  • Create the asset in the same scene, just far away from the main scene. This seems awkward, and all the content of the other scene slows down the rendered view.

  • Use view layers to swap between the 'real' scene and a test lighting setup, as suggested in the answer at Editing a material when it doesn't exist in the current scene. This seems like it would work, but that feature isn't designed for this and I have a hard time believing it's the right way to go about it.

  • Design the asset in a separate scene, but when I'm ready to put it into the main scene, copy it instead of instancing it, and then instance the copy. Then I can adjust it in context, but I lose the ability to go back and edit the asset in its own separate scene if I want to.

  • Use the asset browser: create a separate file for my asset, put it in the Assets folder, then drop it into my scene. There are multiple ways of adding it: link, append, and append (share data). Unfortunately none of these quite achieve what I want. Append (share data) comes the closest, since I can put multiple instances in my file, which are linked and I can edit them in the context of the scene. But I can't then save those changes back to the asset library1. This seems like kind of an idiotic design decision, since it almost solves the problem but then goes out of its way to make things awkward at the last step.

1well, I can if I move the whole scene into the asset library folder and save the changed version as a new asset. But then I lose the ability to edit it in its original file, with the simple lighting setup, so even that doesn't achieve what I want.

My guess is that a good way to do this does exist, but good workflows aren't necessarily obvious to a beginner, so I'm asking here.

$\endgroup$
2
  • 1
    $\begingroup$ "you can't open two .blend files at once", yes you can, just right click on the Blender icon that is on your window top bar, or use another Blender version $\endgroup$
    – moonboots
    Commented Aug 27, 2023 at 8:25
  • 2
    $\begingroup$ So you could open 2 Blender, change the asset in its original file, save, then save and revert your current file in order to reload the modified version of the asset $\endgroup$
    – moonboots
    Commented Aug 27, 2023 at 9:10

2 Answers 2

1
$\begingroup$

I guess the solution depends on many factors like your scene complexity, what are your assets, etc. I would try to manage it with the collections, and maybe use the View Layers as I said in your first question, each one set to see a specific collection or several collections.

But you say that "you can't open two .blend files at once", actually you can, just right click on the Blender icon on your Windows taskbar and click on Blender again, it will open a second Blender, then open a second file. Or open another version of Blender.

Once done, in the first blend, create your asset. In the second blend, create your scene and drop the asset. If you want to change the asset, do it in the original file, save, then in your scene file do a File > Save and File >Revert, it will reload the modified asset.

$\endgroup$
1
$\begingroup$

I've hit upon an answer that works for me.

The solution is to create the asset in a separate scene, but it matters how you link the asset into the main scene. Before I was doing Add > Collection Instance, but there's another way to link them that apparently does something different, and achieves what I was hoping for:

  1. Create a new scene, model the asset, put everything in a collection

  2. In the main scene, go into the outliner. This is the top right panel in edit mode by default. At the top there is a little icon that looks like a photograph. Click this and change it from "View Layer" to "Scenes".

  3. Now you can see the collection you created for the asset in the other scene. Drag it into the 'Scene Collection' of the main scene while holding the Ctrl key. You have to start dragging first, then hold Ctrl while letting it go.

  4. Set the outliner back to "View Layer".

Now you have an editable copy of the asset in the main scene, and it's linked to the original in the other scene so that changes to either of them will affect the other. You can then use "duplicate linked" to create more linked copies in the main scene.

I very much welcome comments explaining why this way of linking the collections behaves differently from the more obvious Add > Collection Instance one.

$\endgroup$

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .