3
$\begingroup$

I have a collection that contains linked assets. I would like to override their materials and give them a unique material. Is it possible to assign a material to a whole collection, and how ?

Thanks !

$\endgroup$
1
  • $\begingroup$ but if you append the assets - updated geometry isn't reflected in the linked files... so a override option is urgently needed $\endgroup$
    – nw42
    Commented Jun 13, 2019 at 21:16

4 Answers 4

6
$\begingroup$

You can override the materials from linked sources that are part of the same collection, just the same way you can override not linked ones.

In the scene context section you can find the options for override, you can select a single material and that will be used for all objects.

enter image description here

From the blender manual:

Material Override

Overrides all material settings to use the Material chosen here.

Examples of where this might be used:

To check lighting by using a plain diffuse material on all objects. Render a wireframe of the scene. Create a custom render pass such as an anti-aliased matte or global coordinates.

$\endgroup$
2
  • 6
    $\begingroup$ Worth noting: at this time, this only works with Cycles. When using Eevee, the Override panel is hidden $\endgroup$
    – z0r
    Commented Jul 16, 2019 at 0:21
  • 1
    $\begingroup$ @z0r Yes. That feeling like "I know I saw it before! Am I losing my mind? Maybe it's been moved in this version..." click, click... click-click-click Finally: "Arrrrgh! It's just hidden in this render engine." (I realize hiding contextually unusable items in the UI reduces clutter, but I wouldn't mind a setting to show them temporarily as greyed-out - maybe even with some visual cue that it's a Cycles feature (so we know why). Keeping track of all the subtle ways the UI changes conditionally depending on the render engine can be daunting at times.) $\endgroup$
    – Mentalist
    Commented Jun 2, 2022 at 7:57
2
$\begingroup$

If your model consists of only one object you can link the mesh/object data rather than the whole object, then create a new object in the scene and set the mesh/object data to the linked one. You can then add any material you want (as only the mesh is linked) and any changes done to the original mesh will still be made to the linked one. Note however that modifiers will not be linked this way and you will have to re-add them yourself.

Edit : Here is a clear answer with pictures :

1 - Create your model 1 - Create your model

2- Notice the name of the object data : enter image description here

3- Duplicate the object using Alt-D to maintain the same object data (as shown) : enter image description here

4- Go to material settings for each object and change material link to object instead of data (data is the default option). You can also do this step before duplicating if the number of objects is big : enter image description here

Now you can assign different material to each object : enter image description here

Any changes applied to the mesh will affect all objects but each will have its own material : enter image description here

Notice that modifiers are object specific and if you change the modifier settings of one object it won't reflect on the duplicates (only mesh changes are shared) : enter image description here

$\endgroup$
1
  • $\begingroup$ Hello and welcome to the site! As of now your answer is quite hard to follow. Could you add some screenshots or menu directions so it's easier to understand? $\endgroup$
    – palkonimo
    Commented Jun 26, 2019 at 11:00
0
$\begingroup$

What i found is: Mark the whole Collection, press CTRL+L, select Material and select the material you want.

That will Link the selected material to the whole selection.

source

$\endgroup$
1
  • 1
    $\begingroup$ Yes ! Working ! But what I would love is to be able to set a material to the collection (an object would keep its own materials but it would be overriden by the collection material). $\endgroup$
    – gordie
    Commented Oct 19, 2020 at 7:45
-1
$\begingroup$

The only way to do this is to change the materials in the original file(s).

The whole purpose of linking is to have one source in eventually multiple projects. Change the source and all the projects get updated, that have links to that source.

In your case, the collection should be the source and other projects should create links to this collection. If you do it the opposite direction, the collection doesn't make much sense.

$\endgroup$
6
  • $\begingroup$ Okay, but what if I have a collection of assets I reuse often in a file, with each assets having several materials assigned... But that for a specific project, I don't need materials, just a unique one / clay / whatever ? How would you handle this ? $\endgroup$
    – gordie
    Commented Apr 10, 2019 at 6:49
  • $\begingroup$ @gordie - you would append the asset to that specific project. Appending creates a "local" copy in the new file, that can be modified. $\endgroup$ Commented Apr 10, 2019 at 10:11
  • $\begingroup$ The idea is to have kind of a clay material for the whole scene... $\endgroup$
    – gordie
    Commented Jun 14, 2019 at 7:30
  • $\begingroup$ @gordie - where's the problem with that? You just assign that clay material to every object. Can even be done in one step. $\endgroup$ Commented Jun 14, 2019 at 23:23
  • $\begingroup$ in each file then, not in the scene containing my linked objects ? $\endgroup$
    – gordie
    Commented Jun 16, 2019 at 9:46

You must log in to answer this question.

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