Please explain collection instances in 2.79 vs. 2.92

RC_Karting.blend (2.8 MB) https://blendswap.com/blend/13550

In the attached file from Blendswap.com the car is a collection instance but the collection that it is instancing is not visible in the default mode of the Outliner.

I want to change the color of the wheels.

I can dig into the “Blender File” mode of the outliner and find the “Group_Kart” collection and drag it into the Scene Collection to make it visible in the viewport. I can then select the wheels… but the wheels are also collection instances so I have to find the “Group_roue” collection and drop that in the Scene Collection in order to finally gain access to the materials on the wheel.

Why is it like this and can someone describe the workflow in 2.79 that would lead to this? How would you change the wheel color if you were in 2.79? Is there a better way to change the wheel color in 2.92?

You don’t need to change the behaviour of the Outliner from its default View Layer mode to Blender File. Te car body objects seem to be in a Collection called ‘Collection 11’ which is set to be disabled in viewport. Annoyingly the icon you need to click on to enable it is hidden by default in Blender which is incredibly annoying. It’s here

image

It looks like you’d expect if someone used a number of layers in 2.79. Each layer is converted to a collection. I’d imagine what they set as a Group in 2.79 has been converted to the Collection Instance.

You will notice that if you edit the objects in Collection 11 that has no effect at all on the Instanced Collection. It’s not linked to that. My advice would just be to select the Instanced Collection, do a Ctrl+A and choose Make Instances Real.

I’ve got to double check. I could have sworn editing Collection 11 did affect the instance.

The #1 thing confusing me about Blender after 2 years of using it is: If I make a collection and then want to put an instance of it elsewhere and only render the instance and not the original collection, I’m not sure how I’m supposed to hide the original collection from the render without also hiding the instance from the render.

Using Disable In Viewport or Disable In Render on the original Collection causes the instance to not render as well.

Using Exclude From View Layer does work as expected. However there is one EXTREMELY annoying thing about Exclude From View Layer. I often have various helper objects within a collection that I don’t want visible but also don’t want to delete them. I might need them later. So if I use the Eyeball to hide these objects and then toggle Exclude From View Layer off and on again, all those hidden objects become visible again. It’s soooo annoying. This is at the very very top of my list of things I don’t like about Blender.

The one benefit of this setup that happens when you open a 2.79 file in 2.92 is that the source collection is not in the scene or view layer or something like that, so it never renders, only the instance renders. The drawback of that is all the extra steps to select objects within the source collection and get them visible in the viewport to make changes to them.

This is how I do it. I’ll organize all my sources in one collection, their instances in another, and turn off rendering for the sources.

The actual wheel objects are in collection 6 you can edit the materials from there. The organisation of the file does seem a bit complex to me with instances all over the place! It is a nice model though :slight_smile:

@Renzatic points out a good solution. Although in the example shown there’s no need to turn off visibility or even renderability for objects in the instance sources collection. Unchecking the tickbox for that collection excludes it from everything - visibility and rendering all at once with the advantage that ticking it again honours what’s visible and not visible and the like.

I turn visibility off all my objects in the source collection because sometimes I’ll want to edit an original object, and it’s a pain having to hide everything else I’m not concerned with.

…this is all wisdom I’ve come to earn slowly and painfully.

No, it doesn’t, unless we’re misunderstanding each other and talking about different things.

My mistake. After a quick test I see that re-enabling a Collection sets everything to unhidden. I’d recommend using the Disable in Viewports (wee computer icon) rather than the Hide in Viewport (wee eye icon) in such cases or even add all you helper objects to a sub-collection