Can I use Armatured Characters in a different .blend file?

Are you linking the all of the characters from one .blend file into the other, i.e. they aren’t in their own separate files ? I’ve seen things like that happen. For example, if I modify my armature, I’ll have to relink that in to get all the constraints copied, assuming I’ve modified them. If I just try to link the armature in, it causes problems with my other links from that file. So, I end up re-linking all of the objects from that file, in my case its the meshes for the character model, hair, eyes and clothes, as well as a couple of armatures. All of them have to be re-linked.

If you have your characters in separate files, do you have some things named the same ? I used to have all my armatures called Skeleton, but have switched to calling them CharacterName.Skeleton. I also insure that I have different names for everything that might end up getting linked.

Wish I had time to play with this and offer a more concrete answer, but I was headed to bed when the email notification arrived and don’t have time now to crank up blender again and play with this. Hopefully some of my questions will help though and I’ll check back tomorrow when I should have some time to play with this.

Thanks for the suggestions! The characters are in seperate files, one for each character. I played around and made sure there were no overlapping names, but that didn’t seem to affect the problem.

After further fooling around, it seems as if appending anything will remove all the links in a scene. The workaround to this, then, is to append all the objects you’ll need in a row, then append:link all the links. This way nothing gets lost. This is a bit obnoxious, however, since appending anything else later on would mean re-adding and attaching links to everything. This is a workable annoyance, but if there were a way to keep the links from getting lost on an append, that would be more ideal.

A further problem with the above solution: Blender won’t let you edit linked IPO curves or vertex keys. In fact it crashes if you try to adjust the sliders in the Action Window. To fix this you need to append the IPO curve object seperately. But when you do this, yup – all the links in the scene are lost, so your object is no longer dynamically updated. And if you add them again, the unalterable IPO data from the linked file replaces the copy you appended. This effectively seems to prevent combining relative vertex keys for facial animation with a dynamically linked model. Help?

I can only more or less confirm what you found after playing with this for a bit this morning. I looked at the code and think I understand what’s happening, but I am not familar enough with that part of the code to be sure, let alone fix it. I believe this is simply a bug that’s been hanging around for a while (2.28c acts the same way, possibly earlier versions as well).

I had done this before, but I wonder if I didn’t Append all my models and then Link the ObData in. Also, I would have only done this as a test to see if I could get it to work at all and then only with armatures and meshes, i.e. no VKs. It looks like I missed or simply didn’t play with it long enough to tickle this bug. Most of my blender time since I started this has either been working with one model linked this way or on the cloth simulator and I haven’t even had much time for these in the last month or so.

The only partial success I had with working with more than one character linked into the scene without appending all and then linking was to link the characters separately into the scene. I could then use the NLA as normal, but since I couldn’t parent/reparent the armatures to paths, this is pretty limited. If I linked a path into the scene that the armature was already parented to, I was unable to make the path local to allow me to change that.

I think the problem you’re having with the VKs has to do with where the association happens between the IPOs and the mesh it controls. There’s some poor behavior with some of these things in blender. I filed a bug report about vertex keys that explains what I observed there. It appears a similar problem exists with vertex keys.

The basic problem with the vertex groups I documented in the bug report above is that, apparently, some of the data for vertex groups is stored on the mesh itself, but other data that references that data is stored with the Object the mesh is connected to. Constraints seem to suffer from the same problem and I wouldn’t be surprised if vertex keys do also.

At this point, with blender’s current funcitonality, I’d have to conclude that the only time you should be using this is if you’ve more or less completed work on your models and armatures so you can follow the append all then link all the obdata procedure. Then this is only useful if you aren’t using VKs or your VK IPO curves stored in the linked blends are appropriate to use in the new scene.

I think its time to file a bug report or more on this. Possibly one big one addressing all the issues surrounding making linking this way useful and/or several smaller bug reports dealing with some of the individual underlying issues. I’ll try to get something filed in the next few days.

BIG THANKS to all you guys for continuing to focus on this issue. I really really drool over the idea of having all my characters in separate files, so if I decide to (back to my idea) put Elvis in the blue sequin jumpsuit, I just modify Elvis.blend, and then, shazam, Hawaii.blend is now a much better comeback special.

It just goes back to my graphic design background, where photoshop manages the images, and the image itself might appear in 4 different places in a document, but I only need to modify the one image.

And yes, I know I’d still need to re-link/append(?) Elvis.blend for the new changes to appear.

Um. I think. I’m going to fiddle with this whole meatball today.

I filed a bug on the issue of appending breaking all the links. After I filed the bug I realized I had a misunderstanding of a global variable and realized it was probably reasonable to fix it. So, I spent some time hacking and mostly fixed the problem. The patch for the fix is attached to the bug report right now.

The caveats to the patch are:

  1. Its only been tested under linux and only while I was working on the patch, so there’s not a lot of mileage on the code.

  2. I haven’t looked at this part of blender before so I easily could have made some bad assumptions and it might be buggy as heck in some very subtle ways, :).

  3. While it preserves your links when you append, for each blend file you can only do one or the other. For example, if you link stuff from ollie.blend and then try to append something later you will be warned that it will break the links. You can however, append stuff from ollie.blend and then link stuff from that file, but once you’ve linked, if you append, the links are broken, although you are warned now that that will happen. If i had the time to understand the code and data structures better, this could be eliminated also, maybe one of the developers can resolve that issue if I don’t get around to it some time.

  4. It doesn’t address LordKuruku’s issue with the IPO curves and vertex keys or other things along those lines. However in reviewing his post, I wonder if you broke the link for the IPO curve before you imported if you could append the ipo curve and then link the mesh in. That may or may not work, just something I thought of as I write this post.

  5. The patch may or may not ever be applied to the official blender source code. There are various reasons why it might or might not, I can’t predict if it will be adopted or not. The code is pretty isolated though and unless something else resolves this issue better, I’ll be keeping a copy of this patch up to date against the code for my own use at least.

Zaz, thanks a lot for the info on linking/appending. That was very useful.