problems with parenting/unparenting

Hi there, I have a problem with parenting seperate eye meshes from one armature to another, be it a specific bone or the armature object in general. Heck even in rest pose, when I unparent the eyes, they jump back quite a few units behind the head…
I suppose I could manually jot down the global locs and reinput them afterwards, but I’d rather understand what I’m doing wrong, or why this is happening, and how I should fix this.

And no, clear parent and keep transformation didn’t do the trick either.

Well, when you parent, the object’s location properties become relative to the parent. If you move the parent, the child’s location STAYS THE SAME. So, when you UN-Parent, the location become back relative to 3D space and the child jumps back to its ORIGINAL location (or whatever values are in the N properties panel). That’s why the eyes jump when you unparent them.

I think what you need to do is select the eyes, shift select the NEW parent, and ctrl P, then move them where you want them. The child will be adopted by the new parent.

Done that shift select new parent thing, that’s not it.
And no, it’s not because of the translation thing, because when you unparent there is also an option to keep the transformation, when you choose that option, the unparented object will adjust it’s local translation to match the global one.
It can’t be the reason why the eyes jump back. Before I parented them in the first place, I put them in the correct global position. I then parented them to a bone in pose mode. The parent’s location is by the way x0y0z0 and scale x1y1z1 and rotx0y0z0.
Regarding scale and rotation, the eyes don’t have an offset rotation and their scale is 1 as well.
The eyes shouldn’t move at all, because they may not move locally because they inherit from the parent, but the parent didn’t move either, meaning local=global!!

hmmm maybe I can append them from an old file… but I just really want this fixed…

Which brings me to another question:
I was thinking about joining the eye meshes with the main body, and just weight them to bones by using full influence, this would save me 2 objects hanging around.

However, this main body mesh allready has quite a number of shapekeys, nicely organised and named and driven and all that. How will these react to me merging these new eyes with the mesh? All these eyes should do is follow along with 2 bones they are assigned to.

SO 2 questions:
1.How do I fix the unparenting/parenting (sorry, still valid)
2. How do I merge the eyemeshes without destroying everything in the shapekeys/shapekey order/drivers I set up?

ps. One more, maybe I should google for this first, but since I’m allready asking:
What exactly is an ObAction?
I have one in my scene, which has F enabled. But i don’t know if this is some leftover action or if it is something relevant to the armature/driven shapekey thing…

ObAction is the action datablock. The f basically means it has a fake user, which actions automatically get to preserve them when closing actions.
When a datablock is not assigned to anything it is removed from the scene when blender closes unless you have a fake user assigned to it. As mentioned above actions are always assigned a faked user by default.
To remove a fake user you have to press SHIFT-F4 to get into the data select dialog there go to actions and select the action that has the F assigned. It should be listed with a F next to it and a 1 meaning there is one user using it. Select it using RMB and press F. As soon as you save your blendfile the action will be deleted.

Can’t help you with your other question sorry :frowning:

thanks for the suggestion… I knew about the F button, since it’s the same for materials, and probably other things in blender I haven’t found as well. I also knew about the F4 thing, you can also get it by changing window types in the header, but when I go to the actions and remove the fake user, two actions which are linked remain.
These ObAction links are from two armatures.
When I remove them from the armatures by pressing the X button next to the dropdownlist in the action window, it’s users are zero, so it will disappear once I save and reopen the file in blender.
But I just don’t know what that ObAction is doing there in the first place.
I don’t recall creating it. I don’t know what the difference between a regular Action and an ObAction is, and what effects it will have if I just carelessly remove it.

If you happen to know this please share, I can probably read up on this somewhere, but a firm answer doesn’t hurt either.

The other 2 questions are still my main concern though… :frowning:

When you do your parenting did you do a clear parent inverse? It could help.

Holy shit!?!?
I tried it, and it didn’t work, the eyes jumped to the front, probably the mirrored translations or something.
BUT! I tried it the regular way again, eye for an eye, and normal unparent and unparent with keep deformation both WORKED! as it should! close blender, reopened and tried it with both eyes at the same time and it still worked!!

I don’t know how the hell??? But this is how it’s supposed to behave, and I’m very VERY glad at least that works…
Detail: It was behind my pc at work where it didn’t work, and I reopen the file at home, and it works like a charm?!? same version of blender, at work 2.45 windows, at home 2.45 linux.

OKay that’s two questions remaining,

  1. can and if so how? I add those eyes without messing up the shapekeys and drivers that allready exist?

  2. what exactly is an ObAction, why was it created and how can I get rid of it/should I get rid of it?

Thanks for the suggestions so far by the way, been helpfull, makes me puzzle around and find things I didn’t know or almost forgot. Didn’t want to sound like an ungrateful cunt, so thanks dudes.

  1. Yes you can join your eyes to the body without screwing up the shape keys . I’ve added loops directly into faces with shapekeys and adjusted then to fit . So in your situation with eyes that do not even connect geometrically speaking to the body I would think that the shapekey data wouldn’t be messed up . All that shapekeys are is simple vector data for the verts that move in the shapekey . Any verts that do not move don’t get the vector data assigned to them .

  2. An ObAction is the action that a keyed object gets in the Action Editor . You can include an object’s IPO curves/keys in actions when you hit the “drowning man” icon next to IPO type dropdown window . Maybe you accidentally hit that while keying something (maybe the eyes) ?

Okay, thanks a bunch, I will try joining the eyes later today, checking for the shapekeys is gonna be a pain, since there are a bunch of em. But it should be well worth the effort.

As for the second point, then what is a regular “Action” these also appear in the action editor if you start animating. Since I haven’t got anything animated yet, I could then remove the ObAction I guess, correct?
But I do have driven shapekeys, and as they set up as keyed objects in the IPO window, where you also add the drivers, I thought it might be related to that?

Also one the first question again:
it wasn’t solved after all, I can unparent the eyes now without them jumping all over the place, but once I parent them to either the bone, armature or object, they jump out of place again. I found a “hack” to fix this by before parenting, set the 3D cursor to the pivot of the eye, then parenting the eye and snapping the object (eye) to cursor)
But that obviously isn’t the “clean”/right way to go.
Would this be a bug?

I’m having a similar parenting/unparenting/reparenting problem with a light rig. I can scale things and move things around and everything stays in proportion ( I have to readjust the lighting values off course) but once I start parenting, everything jumpout of place!!
And it’s not just some predictable rotations or translations, such as mirrored positions or 90/180 degrees rotations, because I can’t realign them without using the 3D cursor…
This is really starting to become a problem now. WHAT is it with parenting!!!

"Can’t join meshes with vertex keys!.. Mjeah! Darn it…