Controlling Bones

General discussion about JPatch

Controlling Bones

Postby dcuny » Thu Feb 14, 2008 9:47 pm

While playing with various IK systems, I seem to invariably "tangle" the puppet up. Often the IK goes wonky, or I accidentally twist an arm into an impossible pose, and so on.

Obviously, more practice would help a lot.

I found it particularly irksome that, once tangled up, there was no simple way to "untangle" the character. There's no tactile feedback, no pressure from the puppet when it's at a limit, and no tension to return to some default pose.

That got me wondering if there were a better way to manipulate the puppets - something that would help get "inside" the performance a bit, instead of fiddling with Rotate manipulators.

In moving my own limbs, I noticed that I tended to thing in terms of relatively simple operations:
  • Flex/Relax a knee or elbow. Some joints (like fingers) can Overextend in the opposite direction;
  • Twist the wrist or ankle; and
  • Swing the upper arm and upper leg.
Each of these actions is associated with a particular type of joint.

JPatch can already deal with these sorts of things with the Rotate tool. For example, you can restrict a joint to a single axis, and only that degree of freedom will appear. But I'm wondering if perhaps there's another way to map the actions.

One of the problems that I'm trying to solve is that the Rotate control is a pretty precise control, and (for me) it doesn't really map well to moving limbs. It just doesn't feel right, and I tend to overshoot my target. (Obviously, this only applies to FK)).

For example, Flex and Twist have only a single axis, so simply waving the mouse in one direction or the other should be enough to manipulate it. That is, if there were some sort of "Tweak" mode where the joint got focus, just click and drag to move the joint - no need to click on a particular axis of the Rotate tool.

On second thought, I'd probably rather grab the end of the bone (like in IK mode) and drag the mouse. The limb would loosely follow, but constrained to its axis.

I'll go so far as to argue that, in most cases, rotating the bone at the joint is terribly unnatural. That's probably my biggest beef with using FK. (Of course, using sliders is another step removed from that. :?

Art of Illusion has FK handles that, when grabbed, show the possible movement along the axis, which is pretty neat (click the image for a larger version):
FK Handles in Art of Illusion

Like a lot of things, in AoI, I think it's a great idea, but the implementation needs some work. For example, it's hard to see the FK Handles, and the plane of rotation is hard to see as well. I'd like to be able to adjust the joint by just moving the mouse back and forth - not by tracking it to the rotation plane. That would give a constant rate of movement when adjusting the joint angle. Tracking to the plane of rotation is problematic when the disk is skewed, so it moves faster in one direction than in the other. (I can't recall off the top of my head how AoI does it).
It would also be nice if there were some sort of "Relax" option, so a twisted joint could slowly rotate back into a default position.

Swing is a bit more complex. To me, it's more of an aiming operation, sort of like IK without being IK. My only thought here is that working with a Rotate tool feels a bit cramped. What I think I'd like to do is be able to grab the end of the bone (the knee or shoulder) and drag it into position.

Thoughts? :?
Posts: 2902
Joined: Fri May 21, 2004 6:07 am

Return to General discussion

Who is online

Users browsing this forum: No registered users and 8 guests