I posted this yesterday, but here’s the shorter version!
I have two .blend files (File1, File2), each with one object in it.
2 ) Each object uses the same material, linked (using absolute path, not relative) from a third .blend file (Materials.blend).
3 ) When Append-ing the objects into a new .blend file (Project.blend), the first one maintains the correct linked material, but the second comes in with no material assigned, as shown below:
Is this an error in Blender, or am I doing something wrong?
I think you can fix that by changing from relative to absolute file paths in your user preferences, if I am wrong about that, try saving twice, which I believe will also fix it.
I have never used the “Relative Paths Default” button in the user preferences. Just to make sure everything is absolute, I used the File > External Data > Make all Paths Absolute menu option for each file, resaved them, then tried the append again, but no luck.
I tried saving twice, closing reopening etc. several times (like you do to clear unused materials) but it still refuses to assign the material to the second object when it is appended.
Unless anyone else can confirm if this is normal behaviour, I’ll need to report it as a bug. For now it is preventing me from creating a central material library for all my projects.
i think this is a known problem,
i run into something similiar, not only with material, with full object.
It is not possible to link in multiple instances from one blend-file.
It was only possible to duplicate the blend-file (for example using a file-link,
so it was still possible to edit only the first one and all others had the same changes)
and append one instance from every blend-file to have 2,3, …x independed linked-in objects.
You can try this if you link-in one object from a blend-file and then if you try to append again the same object, it wont work. Even if you try one time to append it and the second time to link-in. The reason seems to be in the naming of the dependancys based on the file-name, because if you try to append again from the same file, you would end up with the same object-name. The automatic numbering to generate unique names works not for this … till now …?
edit: note, if someone try to duplicate a scene, there will be some re-naming too if you select to duplicate everything. And with the new names(appended numbers) you may notice that some things based on name-relations would not work any more. You have to change the relations appropriate for the new names.
I would have expected there to be a simple check when appending an object to see if each of the data items being appended (Material, Mesh, IPOs etc.) already existed in the current .blend file. If so, Blender would then give the user the option to:
Use Existing [appended object will take open .blend file’s existing data of that name] Use Imported [appended data will update everything in the .blend file of that name] Keep Both (Rename) [exactly what happens currently - .001 is appended to the name to make it different]
In my example above, I’d just choose Use Existing each time, and my second object would then take the same (linked) material as the first. Better still, it would be possible to make one of the three options the default. Then, I could select Use Existing as my default, and every time I appended a new object it would automatically use the existing materials in Project.blend (i.e. all of which are linked to my master materials file).