PDA

View Full Version : orientation understanding and transfering


rhythmone
08-28-2003, 03:48 AM
I have a skeleton that is completely FK. I want to be able to rotate the joints using geometry.

Here's my problem:
The joints initial orientation is different than the geometry.... so if I rotate the geometry in X, that doesn't correspond to the way the bone needs to rotate to create the same movement.

I have tried creating orient constraints, parenting different combinations of stuff..... does anyone know how to accomplish this?

I guess I need to be able to set the geometries Local Rotation Axis the same as the bone..... but if I do that how can I then reset the geometry rotations to be zero?

loked
08-28-2003, 09:01 AM
Hey,

One way to go about it is to create a null node by grouping while nothing is selected. Now point and orient constrain this null node to the joint node. This way it will have the same translation and orientation as your joint. Now delete the constraints, so that the null node is not affected by anything. Now select the null node, then select your joint and orient constrain. Now the joint will be controlled by the null node. So all you do now if parent the null node under your geometry and when you rotate your geometry, the joint will rotate accordingly.

Hope this helps, let me know if it doesnt:thumbsup:

later:wavey:
loked

rhythmone
08-28-2003, 06:07 PM
Yes.... thanks for this detailed reply.... the functionality really works and is quite simple to setup.

I did, however, find a slightly more complicated approach last night by duplicating the joint, deleting it's children, aim constraining to its original child (which is now geometry) while using an object for an up vector..... this gives me a "zero" rotation value base to start with (just like the joint), so now I can copy the animation back and fourth.

I will test them both out over the next couple of weeks... thanks

rhythmone
08-31-2003, 03:55 AM
... after some further testing I like your approach better... thanks

ACFred
08-31-2003, 04:26 AM
You could always parent the shape node of your object to the joint.

Use "parent -r -s objectShape jointName".

Then, you pick the shape and it'll actually select the joint.


Alec

loked
08-31-2003, 08:59 AM
Originally posted by ACFred
You could always parent the shape node of your object to the joint.

Use "parent -r -s objectShape jointName".

Then, you pick the shape and it'll actually select the joint.


Alec

This is how I setup most of my FK stuff, but if you want to isolate motion, then you have to use orient contrains and hierarchies. So for my head joint, I usually isolate motion. With hierarchies, you can also set things up so you can switch between isolating motion and having the child rotate with the parent. Grouping and hierarchies are very powerful when understood properly and used correctly.

Later:wavey:
loked

dmcgrath
09-01-2003, 06:42 AM
For a tutorial on exactly what Locked is referring to, check in my Signature Area Below. I laid it out quite well, and is hopefully understandable by all.

XD-0608-U
09-04-2003, 12:10 AM
I've tried this in the past but just gave up and used control objects that aren't zero to begin with, but I'd love to get this right so that everything is "clean" when I begin animating.

I'm trying what was suggested but if you parent the null node under the the control geometry, then don't you end up with what you began with? Two different local rotation axis that don't match up.

For example my joints and nulls y-axis point down the joints but my y-axis for my control object still points up. So now when I parent the null under the control object and rotate my control in y, the joint (and null) is actually rotating along it's z-axis. Am I doing something wrong?

rhythmone
09-04-2003, 09:33 PM
I think that it is important to state what you are trying to do in order to get the answer you are looking for... looking back I may have been a little unclear as well.

In my case I wanted to transfer the animation of the geometry to the rig (and therefore the joints)....
When I first thought about it, I pictured myself extracting the rotations of the geo and applying that to the joints (this obviously will not work).... but in using the locator approach, I am NOT using the locator data either, I end up using the data from the joint that is driven by the locator.... so the locator is just a medium between all the animation.... and therefore doesn't need to be zeroed out..... instead I extract the data from the joints driven by the locators and then pass that data to the joint in my animation rig.

for me it was more about changing the way I pictured the process.

kiaran
11-03-2003, 08:29 PM
loked- One way to go about it is to create a null node...

Oh man! I've been trying to figure this out for the past couple days. I'm setting up the controls for some FK arms and for the life of me, I couldn't get clean zeroed controls. Almost made me resort to pure IK arms.

Thanks a bunch,
Kiaran

miasmaswitch
11-10-2003, 08:21 PM
I'm not sure if my problem is related to this issue or not, but this is my situation. I have one hand skinned and ready to animate. I want to duplicate it for the other arm but in doing so the rotation of the joints inverts. I could overcome this by just mirroring the orientation of the skeleton, but that would mean detatching the skin.

Is there any way of scaling a skeleton by -1 without inverting the axes in this way?

rhythmone
11-10-2003, 09:23 PM
Do you know the calculation that needs to happen?

Like R index x.rot = 30
so L index x.rot needs to be -30.... or 150.... something like that??

Cause if it is a consistent conversion you could script the pose fairly easily.

miasmaswitch
11-10-2003, 09:28 PM
Thanks rhythmone but i've just sorted it out. I put the pivot of the mesh and the skeleton at the origin, duplicated the mesh in -1 to create the opposite hand, then mirrored the joints and attached the skin. Then I renamed the joints to the same as the original skeleton and used Mirror Skin Weights across the origin.

It seems obvious now, but for some reason its never worked for me before.

CGTalk Moderation
01-15-2006, 11:00 PM
This thread has been automatically closed as it remained inactive for 12 months. If you wish to continue the discussion, please create a new thread in the appropriate forum.