BPorter
08-28-2009, 08:53 PM
Hi, what I'm trying to accomplish is here http://www.youtube.com/watch?v=gxusrZiYzbw ... In IK mode, he pins the hand to the head, shoulders, hips, and world space without any popping. Now I did searches for space switching but I can't find anyone who had the same problem as me.
I will explain the way I have it set up, and then you can tell me the way I should have it set up. I have the 2 groups and the controller as follows: Parent|Orient|IK Controller. The parent node gets the parent constraints (head, shoulders, hips). The Orient node gets the world space transformations to avoid popping or movement (this is where my problems are). and then the IK Controller is obviously what the animator uses to animate.
Now I can get it to work if I zero out the IK Controllers translate and rotate values. I don't want to do that because cleaning curves would probably be a pain for the animator.
To get the translation, all I do is get the world space of the IK Controller before the switch (where it needs to be), switch it, get the orient node world space values, then the IK Controller's translate values, subtract the the new IK Controller's values from the original IK Controller's values and set that to the orient node. I hope you got all that! =P
Now the problem is in the rotation because the rotate pivot of the orient node is not in the same place as the IK Controller, so the IK Controller will do more of a revolution rather than spin at the center. I'm sure I'm going about this totally wrong, so I'd appreciate if anyone knows how to accomplish this. Thanks
I will explain the way I have it set up, and then you can tell me the way I should have it set up. I have the 2 groups and the controller as follows: Parent|Orient|IK Controller. The parent node gets the parent constraints (head, shoulders, hips). The Orient node gets the world space transformations to avoid popping or movement (this is where my problems are). and then the IK Controller is obviously what the animator uses to animate.
Now I can get it to work if I zero out the IK Controllers translate and rotate values. I don't want to do that because cleaning curves would probably be a pain for the animator.
To get the translation, all I do is get the world space of the IK Controller before the switch (where it needs to be), switch it, get the orient node world space values, then the IK Controller's translate values, subtract the the new IK Controller's values from the original IK Controller's values and set that to the orient node. I hope you got all that! =P
Now the problem is in the rotation because the rotate pivot of the orient node is not in the same place as the IK Controller, so the IK Controller will do more of a revolution rather than spin at the center. I'm sure I'm going about this totally wrong, so I'd appreciate if anyone knows how to accomplish this. Thanks
