Armatures and Groups won't link or append?

This is strange… I have a very simple armature (created from a BVH file). I group some of the bones in it, and save it to a blend file.

I open my new blend file and try to do a LINK/APPEND. I select the Blend file I just saved out, and no groups show. If I select the armature, and click load, the load dialog goes away, but the armature has not been appended.

There is no error message or anything… but the armature is not there. Neither are the groups.

I exit that file, and pull up the first file… and there are groups and everything. But it WILL NOT append or link in (I have tried both.)

Am I missing something obvious?

This sounds suspicious to me. You mean you grouped these bones in pose mode?

In order to link a character you need to be in object mode, select all of the objects (meshes, armature (object!), lattices, etc…) that you want to include in the group for appending/linking and press ctrl+G. It’s a good idea to name the group something you recognize in the object panel as well. Then in the new file, from the append/link screen select ‘groups’ and it should be listed. If you choose to link the group, it will not appear in your scene until you choose “add->group->(your group)”

Also note that going to the “armature” import list will not append the armature ‘object’. To do that you would need to grab it from the “object” import list. If you import the armature what you are doing is importing the bone information without the object to attach it to… just like vertices of a mesh without an obect - the object is required to display the information into the scene. Because objects are nothing more than a placeholder for location information in 3D space.

To understand what I mean, try this:

in a new scene, import an armature from the ‘armature’ option in the append menu. Then add a new armature object ‘add->armature’. Go to the edit buttons of the armature and you should see an AR: field and OB: field both with the armature name ‘Armature’. Click the rollout menu next to AR: and you should find the name of your armature that you just imported. Select it, and the current armature object will connect with the bone information of that armature :slight_smile: (The constraints don’t seem to be included though, so I don’t know why you would ever do this lol)

Yes. In Pose Mode.

OK, I thought I could have just the bone grouping go over… but I guess not? The smallest subset I can have in a library group is an armature then?

ummm… what are you trying to do exactly? Just bring a few of the bones into a new scene?

Trying to import only a few of the bones from an armature is like trying to import only a few of the vertices from a mesh. You’ll still need the object node itself in order to display or manipulate the data in any way.

Bone grouping is more like a tagging system, it organizes the bones within the armature object for animation in the action editor, and allows colorizing the bones. But it still requires membership of an armature object to be of any use at all… as far as I know. I really am uncertain of what you are wanting to do though.

I guess I misunderstood the hierarchy.

I see now it goes:
–ARMATURE
------armature
-----------bones

And armature is unchangeably linked to ARMATURE

I thought that I could take a group of bones, import it into another scene and attach it to the same ARMATURE, so I would have:

–ARMATURE
------armature
-----------bones
-----------newBones

But, clearly that can’t happen. I think I understand the limitations now…

I am still somewhat unclear as to why I have ARMATURE and armature. That seems redundant to me. And it would be nice to be able to cut and paste from one armature to another… For some reason that seems like it should be possible to me ::: shrugs :::

I think little quirks like these are exactly what has spurred the 2.5 rewrite :slight_smile: If you dig deep enough things seem to stop making sense at some point lol

linking armature data is only useful for prepping a scene for animation - since the armature becomes uneditable from the linked file. And appending the data will give you the same information as you had in the previous file, so it is only necessary if you have for example a mesh in one file and an armature in another that you want to bring together in the same file…

If you are wanting to move bones from one armature to another you can do this by selecting the bones you want to extract in edit mode, press ctrl+alt+p to seperate them, then select the newly extracted bones in object mode, shift select the armature you want to merge them into and press ctrl+j. I have experienced problems with bones that either have constraints, or are part of a bone group when doing this though… but is that what you’re wanting to do?

Well, that is really good to know. It isn’t exactly what i was wanting to do… but it is a good thing to know.

I was hoping I could sort of set up a library of rig parts and then reassemble them as the need demanded. In other words, say I have a three finger hand rig, and a five finger one. I have a leg with Bendy capabilities (and stretch and squash) and one without. All of these are stored in various .blend files.

Then, when making a new rig, I could bring in the appropriate piece and simply add it to the new armature. To build up rigs out of pre-assembled piece, in other words. It’s not a big deal, but it would be cool if rigs were reusable not only at the armature level, but at the sub assembly level too… or, maybe I am crazy…

(When I have time, I need to look at the Python scripting more… this might be possible to be done via a script…)

Anyway, thanks for the input!

Oooh I see what you’re thinking of doing now :slight_smile:

Yeah I don’t think Blender currently has this ability (have you mentioned this to the 2.5 devs?). The closest thing I would suggest would be to have a collection of rig parts that you can join together using the steps above. It would require some tweaking but could still save you time.

I don’t feel qualified to be making suggestions… I’ve only been using Blender for two weeks now…

you can do this by grouping the different parts of the final armature,

for example:

group - body
group - hand3fingers
group - hand5fingers.

the group - body must have an empty, which is at the position of the hand and parented to the underarm of the model and the hands must have their center at the same point, so that when parented the vertices of the hand and the underarm fit each other perfectly.

the setup for this would consist of an sensor, an python controller, an addobject actuator and a parent actuator.
using python you can then add the armatures you need and parent the hand to the empty.
i would advise you to use one blend file for all the groups and link into the main file from that file, unless you need multiple files for your workflow.
i also shouldnt forget to mention, that the logic for parenting should be apllied in the group.blend, not the main.blend and the logic will be rather complicated, so i wont be posting a blend, since i got to work, and havent got the time, sorry
in a few weeks i will be writing a script which does that for our game, if you havent got it till then and i remember, i will post the blend here then.

hope that helps and is understandable,
greetings
manarius