11
$\begingroup$

I want to have a Cube in scene A, and linked in scene B, but with different material.

The solution for this problem was found on BlenderArtists.

click the material tab and you will see a little drop down that says "dat" or "Data". Click that and change it to "Object". Now you can assign the material to the object instead of the mesh or "Data Block".

But what if I have 5000 Cubes in scene A, and I want 4999 of them to be in scene B with different material X, and 1, with material Y.

If I try to "link material" in scene B, with new material, it won't copy "Object" selection. I would have to go over 4999 cubes and change them to "object" in material tab.

I can't join them, and then separate - all objects are in a mess after that (and blender crashes anyway).

Material override for whole scene won't work for me.

Is there any option to override materials in groups? That would solve the problem in some way.

$\endgroup$
  • $\begingroup$ I think that gandalf3 or David answers is what you asked, maybe you want to try them and accept one. $\endgroup$ – PhoneixS Apr 24 '14 at 16:59
3
$\begingroup$

(step 1 from gandalf3's answer)

  1. Set the material datablock to Object, then right click on the drop down and select Copy to selected This is important, if you skip this step 2 will not work.

    material data

  2. Select all the objects you want to have the same material, with the active object having the material to be copied to all the others selected. Press CtrlL, and select Materials. It will now link the materials to the Object and not the Data.
    make links
$\endgroup$
1
$\begingroup$

That is something you can solve with a little bit of python, you can enter this into a text block and click Run Script or just type it straight into the Python Console.

It loops through bpy.context.selected_objects which means you can easily choose which objects you wish to change.

import bpy

for obj in bpy.context.selected_objects:
    for matslot in obj.material_slots:
        # options are 'DATA' or 'OBJECT'
        matslot.link = 'OBJECT'
$\endgroup$
1
$\begingroup$

I'm not exactly sure of what you are trying to do, but you could try this:

  1. select the cube you want to have a different material and press U> Materials+Tex to unlink that cube's material data.

  2. Create a new material.

Or you could:

  1. Select all the objects which should have their material linked to Object.

  2. Set the material datablock to Object, then right click on the drop down and select Copy to selected:

    enter image description here

$\endgroup$
-1
$\begingroup$

There are a number of solutions.

  1. Select the desired objects, CtrlL to link materials data, then go to the material tab of the one object you want to be different and click the number next to the material name to make a single-user copy. Then it can be whatever you want.

  2. You probably can join and separate, you just have to replace your object origins after you separate: select all, objects->transform->origin to geometry.

  3. In your user settings, you can specify what gets copied when you duplicate an object, including AltD which makes a linked copy.

There are many options, you just have to understand how they work.

Lemme know if I can clarify anything.

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.