Best way/workflow to link between scenes

There are so many ways to link different things that I can hardly keep track of them. When I think I understand what’s going on, it seems I am mistaken.

If I file>link a collection from another file, I get a copy of that collection that I can move with the parent empty that comes in. If I add/change things in that file, it comes in to my working file (once I refresh it, or open the file again).

But what I would like to do is set up one file for rendering and have different view layers for different parts of the animation where some of the objects don’t need to exist. It will be one continuous camera animation, so that seems easy.
But I also want to be able to render different things out and composite them, like ground shadows. So now i have to make view layers for the ground shadow as well. You start getting a Lot of view layers all in one scene. So I’d like to do that in another scene of just ground shadows.

So what’s the best way to make sure all my animation, and all objects are the same from one scene to the other, but still allow me to turn on/off collections for view layers in that second scene? Realistically I just want an exact copy of the animated scene, and I just want to change the “indirect only” option. But I may make another copy to do things like create a mask for an object, which Really I could do with just the workbench engine which is Stupid fast. (I know antialiasing wouldn’t match, but if I am doing compositing in AfterEffects then that’s more useful than cryptomatte because cryptomatte in AE isn’t so useful because the output doesn’t get antialiased)

If I go to another scene and do an Add>Collection instance, then you can’t turn that collection off unless you add it to another collection manually.
Yeah, I can created a linked copy, but that really only links the object data, but not the data for collections. So if you add a new object to a collection, it is only added in that scene. I hate the terms like “object”, because isn’t a collection an “object” also in terms of scripting?

So as you can tell, I’m a bit confused and hoping to understand the best way to accomplish it. For now I’ll just make all my view layers in one scene, but it kind of sucks that there’s no way to “group” view layers. So you really get a Long list.

____________edit:
I figured out that if I put All my collections into one parent collection, then create a completely new blender file just for rendering I can link that one parent collection, then create a library override for the object. It then works exactly as I would like it. All of the objects and collections update. I can create multiple scenes there by just creating a full copy, and it’s all linked from the other file so there’s no worry if things are instanced or how they animate, etc.

I would much rather do that within the same file though. Is there no way to create a library override of an instance within the same file? I’d rather do that, mostly just so I don’t have to always update the file. I mean, the advantage of doing it this way is it allows one person to do all the animation, and another to work on setting up the compositing. But a downside is, if I do the lighting setup in my animation file, the scene settings will be different in the other file so have to be redone.

You ran into one of the most annoying features of Blender imho.
Coming from Softimage, I feel more complex rendering is such a pain, like you found out.

If you want to keep everything in one blendfile, multiple scenes with view layers are the only way to go.
In that file you can do a Linked Copy, or a full copy of the existing Scene.
A couple of issues arise from this:

  • Changes on objects (geo, materials) in Collections in any Scene will ‘piggy back’ to the original and other copies.
  • Any additions in any Scene will show up in any of the other Scenes/Collections.
  • Render Changes on Collections will work between Scenes. e.g. turning a Collection off in one Scene, will not do this in another Scene. At least not in 2.93.4.
    That way you can set up Collections in a logical way in the base Scene, to be able to split up things for rendering in the copies.

Hope this makes sense.

It could/might be better to finalize your scene, copy the Scene as a ‘full copy’, set all you (new) Collections and overrides and render the results. You’re more flexible like that.

If anyone has a better workflow I’m all ears.

p.s. if you need a example file, just pm me.

p.s.s. edited some sentences to correct myself :wink:

I do it like this:

Make your scene with all your geometry and put your geometry in whatever collections you want to.

My collections are usually something like this:

01_Cams
02_Lights
03_Geo

Name your scene 01_Intro or something.

Then press the “new scene” button and select “Linked Copy”.
call it 02_HeroAppears

Now, If you insert a new object in collection 03_Geo it will be in both scenes.

If you create a new collection in 01_Intro called “04_Weapons” and later on want to link it to 02_HeroAppears as well do the following:

Switch to “02_HeroAppears”
Go to the Outliner → DisplayMode Dropdown → Blender File → Collections → RMB on “04_Weapons” and select “link to scene”

If you want to get rid of a collection in only one scene RMB the collection and select “unlink”.

Yes, they will as long as you created a linked copy and place your new objects into a collection that is linked in the other scene.
If the collection is not present in the other scene then of course the object will not be there. You have to link the collection to the other scene as well.

Yes, because they are the same objects. If you want to make changes to objects in one scene but not in the other you duplicate the collection. RMB on collection and then either “duplicate collection” or “duplicate linked”. Both create new objects but “duplicate linked” keeps the object data linked.
Then you RMB the original collection and chose “Unlink” to remove the old collection.

changed a small sentence in my original post.

And you’re correct on the other workflow, but it makes things even more complex imho. :wink:

Well I think I will stick with the method I’m using then. Creating a completely new scene for render setup. Link my parent collection from my animation file, then create a library override. For those that maybe didn’t know, that opens that object up so you can do things in the view layer like enable/disable other collections, and override things like indirect only. But you can’t move anything or make really any adjustments unless you create further library overrides.

This way, I get an exact copy of my scene collection, but with the ability to override just a few things and I can now set up my render outputs. Of course, that’s Another annoyance, but I’ll post another question about that in a different post.

1 Like