Hi,
I'm curious if anyone has other methods of accomplishing, or explaining, the "Make The Control And Joint Internal Axes Match Up So The Joint Doesn't Flip Out When You Orient Constraint" techniques. To prevent the problem when, for example, making FK controls for wrists, elbows, shoulders, etc, where the orient constraint causes the joint to flip 90 degrees.
I habitually use what I guess is a common method?
- Make a buffer GRP
- Orient Constrain JNT->GRP
- Delete orient constraint on the GRP
- Parent CTRL to GRP
- Freeze Transform on CTRL
- Orient Constrain CTRL->JNT.
It works fine. But, I don't really understand why, at least not to the level of being able to find a visual representation or the numbers that represent why the problem happens, and what is changing in Step 2.
So, I find it kind of tough to teach this method because for some students it just seems arbitrary and counterintuitive, and therefore hard to remember the steps.
Is there another technique for doing this that's more intuitive?
Replies
it's all good though, my wife told me a better way to do it:
- just use Match Transform on the buffer Group node above the control curve
- you do this on the group, not the control, because it will copy non-zero rotations into it and you want your control to be zero-able (not sure I understand why Freeze Transform doesn't work in this case, but it's ok)
- and make sure the control is created with its primary axis the same as the primary axis that points down the bone from the joint you're going to control.
You have a bone and you need control curve to drive that bone and as antweiler said the end result should be chosen for the comfort of the animator so it's really not standardized
Also your wife is right
What is happening essentially is because the controller is inside the group, its rotation is relative to the parent (like bones) and since you've only oriented the group, and not the controller inside the group its transforms are zeroed out, so its already "frozen"
Now if you try and un-parent the controller you would see that it has some rotations, which are the exact ones that the group had, now if you have some transforms to freeze.
TLDR;
You are essentially translating/rotating the coordinate system in which the controller operates
Cheers, and happy rigging