Append makes links instead of appending

Sorry for coming here and just asking for help all of the time, but I have another problem. As before, I’ve spent literally hours searching around for an answer, and I am apparently not able to come up with the right search terms to get me anything close.

I understand, or THOUGHT I understood the difference between linking and appending. Instead of referencing data in another file, append is meant to make a copy of the selected data in the current file.

However, I’m finding myself unable to make that work. When I append from another file (yes, I’ve checked that is is appending and not linking) a lot of the time, but not all of the time, instead of getting a local copy all that I get is linked objects. Sometimes I can use the “make local” option, but other times the option is not present in the context or space menus.

Sometimes the whole linked scene instead of the objects or group I selected. Other times all I get is a single empty with the name of the thing I was trying to import, but nothing else, in any scene or any layer.

This also happens with copy/pasting between different blend files. Yes, I’ve made sure that I do not have the “copy attributes” addon enabled.

I’d append blend file, but it happens with a lot of different files, and behaves differently for different objects and groups within a file. I can if asked to, though it seems like it is something with my system, be it a setting, an addon, or something else.

I can try resetting all configurations and the addon list back to stock, but getting things back how I have set them up will be enough of a pain that I thought I should ask here first, in case it is something obvious.

Thanks for taking the time to read this. I appreciate any response.

I have never had issues with appending. I’m guessing that your issues are related to misunderstandings of datablocks. It’s hard to say without knowing more of the details.

You may well be right. I’ll post a more concrete example if I find one that doesn’t involve enormous blend files. I can’t replicate it if I just make a simple file with a few cubes.

I THOUGHT I understood enough about data blocks, given that I’m programming literate and familiar with symlinks in file systems and whatnot, but blender’s system particularly for linking/sharing assets is… involved.

I don’t know if this helps, but I’m running Blender 2.78 x64. The settings in the append dialogue: Select, Active Layer, and Localiza all are selected, and Instance Groups and Fake User are NOT selected. I THINK that is correct, but even looking at the wiki, I’m not 100% sure

What kind of datablock are you appending exactly? Some of them can be referencing other datablocks and making it local does not localize the links, just the top level entity.

You forgot to tell us what are you clicking when you try to append.
Make sure you choose “Object” folder to append a “real” object

Ah, whoops. Key information. One of the cases where I had that issue was trying to append groups… and now I’m thinking I may have gotten myself muddled about that, remembering that putting a collection of things (like a character rig and mesh) in a group was good for LINKING… but perhaps not for appending?

However, I just tested, and if I create a new blend file and try to append various things from the blend that contains my character rig, objects that don’t have any relationship to other things in the wold (like a brand new cube) append to the blank file just fine. However, if I try to append a mesh object that is in any way connected to the character rig (yes, through the Object folder) I get a link instead.

For further troubleshooting, I made another new blend file and started appending different objects from my character blend… and the append worked as expected. Until it suddenly didn’t. I think the common factor is appending one of the rigs from the character blend… after which everything else I select becomes a link instead of an appended copy. That seems significant.

Is perhaps Blender doing something clever when I append objects that have relationships to other things in the library file that I am NOT appending?

I will do more process of elimination trial-and-error tomorrow, but it is bed time.

For the benefit of any other newbies finding this: yes, that was it. Appending things that reference data blocks in another file that you are not appending creates links.

Thanks for nudging me in the right direction!

you’re welcome!

For the record: it sounds quite logical it behaves as it should

Oh, certainly. Once I’ve been through the chain of reasoning it does make sense. It’s just that when you’ve only been using it for a few months, what is the reasonable thing for it to do is not always immediately obvious. That’s why being able to ask things on this forum is amazingly useful. :slight_smile:

Okay, I feel as if I’ve gotten a handle on the basic principles of linking/importing. I do have a process question now, though.

Say I have a character rig in a blend file, and I want to use that rig on another character. This means I will want to import the rig to the new character’s blend file, along with scripts, associated bone widgets, and so on. But if I try to just import the rig itself, other objects the rig references, like the widget meshes, are just linked from the original file. This makes sense to me now, but if I don’t want this new character file to be dependent on the old one, obviously links are no good, and I want those to be all local.

I thought I could do this with “Make Local” -> “All” but in this scenario it doesn’t seem to actually do anything. I am still left with a local rig object that depends on a bunch of linked objects from the original file. Perhaps I am misunderstanding what “make local” is meant to do?

As always, I have read about it in the Blender manual, and googled around, and explored options in blender itself before asking for help here. I’m doing my best not to be a pest XD

I’m having this issue too…

Normally I try to use a sensible linking/proxy character workflow, but i’ve got an issue now where I’d like to just ‘append’ the whole character rig while still being able to access the shape keys of the character mesh directly, because I don’t have time to set up complex bone controllers just yet.

If I append the character group, I just get a bunch of linked stuff and can’t even pose the armature… Would like to know if there’s a way to do this.

I’m sure I don’t have a great understanding of the data system, but a simple way to actually make things local would be great.

As I understand it, to override the settings of a linked object you must create an override called a proxy. The proxy object holds the local data (animation keys etc) but still allows the linked object to be updated when it is modified in its original location. For character rig you must make a proxy of the rig object and if you have objects not part of the rig that you want to animate, make proxies for them too.

To make everything local there are no simple solutions. As links can reach through several files hierarchically the localization should be hierarchical but to my knowledge you can’t accomplish it with a single command. You must use a combination of make local, link group objects to scene and so on.