PDA

View Full Version : Allow rotating forarm around upper arm roll?


joeedh
08-14-2007, 11:20 PM
Hi. I've been researching upper arm rigs that properly handling twisting of the upper arm, and along the way I came across the interesting idea of letting the animator rotate the lower around *around* the upper arm's roll axis, and having the rig update the deformation as if the animator rolled the upper arm instead.

I've actually implemented a rig supporting this, that properly interpolates the upper arm twist whether the animator is rolling the upper arm or rotating the lower arm around it. What I'm wondering is if this is a good idea. Lots of freedom seems good for animators, and certainly a system like this is required for IK. I'm just wondering if its *too* much freedom.

I've implemented this is Blender, and it seems to work pretty well. It really helps with IK, because with x,y,z rotation order it's impossible to use IK DOF-constraints to make human limbs bend correctly (this is because bone roll rotates the x and z axes, rendering them nearly useless for constraining).

Joe

PEN
08-15-2007, 12:30 PM
THis all sounds good if I fully understand what you have done. Animators need options to get the poses that they want so having extra controls for manual adjustment is great. Just make sure that the extra controls don't get in the way of the main controls that they will be using most often.

joeedh
08-16-2007, 02:40 AM
THis all sounds good if I fully understand what you have done. Animators need options to get the poses that they want so having extra controls for manual adjustment is great. Just make sure that the extra controls don't get in the way of the main controls that they will be using most often.

There's not any extra controls, just the forearm. The wrist bone controls the twist of the forarm, the forearm controls the twist of the upper arm, and the upper arm can *also* twist by itself and still have proper twist interpolation. That's the rig, basically.

Joe

FreakyDude
08-16-2007, 09:51 AM
Ooow I've been trying to get that working for weeks now, if not longer. I have a system which doesn't do exactly that, but pretty much works the way I want it to otherwise. When I start locking axis in the IK chain, when I move the target, the arm jumps all around once it reaches one limit or the other....
In the last version I used segmented B bones to allow the arms to twist, rather than using seperate twistbones distributed along the upper and forearm. I kinda dumped the AUTO twist idea there.

I use blender also, could I take a look at your rig? you can see mine as well if you like to how I did the arms... I'm really curious as to how you set it up.

joeedh
08-16-2007, 10:19 AM
Ooow I've been trying to get that working for weeks now, if not longer. I have a system which doesn't do exactly that, but pretty much works the way I want it to otherwise. When I start locking axis in the IK chain, when I move the target, the arm jumps all around once it reaches one limit or the other....
In the last version I used segmented B bones to allow the arms to twist, rather than using seperate twistbones distributed along the upper and forearm. I kinda dumped the AUTO twist idea there.

I use blender also, could I take a look at your rig? you can see mine as well if you like to how I did the arms... I'm really curious as to how you set it up.

The key to twist bones is to have a locked track constraint that constrains either the x or the z axis in the first bone in the twist chain, so it points to the right place.

You can find a copy of my rig at:

http://joeedh.googlepages.com/BaseRigReleasePre0.blend

The upper arm twist part is in armature layer 3. Note that only the upper arm uses twistbones, the forearm actually just uses bbones.

I actually have a slightly newer version of the rig, with a little better twist behaviour in extreme positions, however I want to test it some more before uploading it.

Joe

joeedh
08-16-2007, 10:24 AM
The key to twist bones is to have a locked track constraint that constrains either the x or the z axis in the first bone in the twist chain, so it points to the right place.

You can find a copy of my rig at:

http://joeedh.googlepages.com/BaseRigReleasePre0.blend

The upper arm twist part is in armature layer 3. Note that only the upper arm uses twistbones, the forearm actually just uses bbones.

I actually have a slightly newer version of the rig, with a little better twist behaviour in extreme positions, however I want to test it some more before uploading it.

Joe

Eh, I actually use a latest SVN build of blender. As far as I know, I'm not using any
new features in the rig except for the new dual quat deformation; as such you might see
some shrinking at the limbs (I removed my morph corrective shapes since they weren't
needed anymore).

Joe

FreakyDude
08-17-2007, 12:41 PM
downloading now, I'm currently more trying to get everything working in linux than blendering, but once I have everything set up, I'll look into it. My rig isn't very complex, but I do want it to be a nice complete base for my characters, so I'm happy with every piece of information I can find.

joeedh
08-18-2007, 07:26 AM
Eek! I just realized that rig is an older version; it doesn't have the rotate-forarm-around-upperam thing. I'll upload an updated version.

Joe

joeedh
08-18-2007, 07:33 AM
Ok I uploaded a new version, the same link should work to download it.

Joe

FreakyDude
08-18-2007, 11:34 PM
well I was looking through it just now, and it looks quite nice, I haven't dug to deep into it, but there aren't too many bones. I am opening this with 2.44 normal, not svn, and the lowerarm displays as a line. I'm going to look how you did that twisting and IK target moving along with the fk.... you're using a number of empties and hooks, I really need to look more into those. Currently I'm trying to get what I want with bones and constraints only.... my mesh isn't that well to allow for better shouldercontrol etc I think.... next project maybe.....
I'll study this a little longer before I call my rig finished.
One more quick question though, you have a little popfix bone, are the twistbones in the upperarm constrained to it somehow? I don't see the name of the bone popping up in any of the constraints I'm looking through.
This is nice stuff...

joeedh
08-19-2007, 02:41 AM
well I was looking through it just now, and it looks quite nice, I haven't dug to deep into it, but there aren't too many bones. I am opening this with 2.44 normal, not svn, and the lowerarm displays as a line. I'm going to look how you did that twisting and IK target moving along with the fk.... you're using a number of empties and hooks, I really need to look more into those. Currently I'm trying to get what I want with bones and constraints only.... my mesh isn't that well to allow for better shouldercontrol etc I think.... next project maybe.....
I'll study this a little longer before I call my rig finished.
One more quick question though, you have a little popfix bone, are the twistbones in the upperarm constrained to it somehow? I don't see the name of the bone popping up in any of the constraints I'm looking through.
This is nice stuff...

Eh I'm not using any hooks. There are some there that I disabled. Basically all empties/hook modifiers are just stuff I forgot to get rid of.

The bones drawn as lines are supposed to be that way; I made a custom draw shape for them. I find it less visually distracting.

Most of the helper/twist bones are in armature layer 3.

[edit]
Oh the IK target is a "without target" IK constraint. this means blender will temporarily add a target for the constraint only while moving the hand. So it won't animate, you have to add rotation keys on the upperarm/forearm/hand yourself.

Joe

CGTalk Moderation
08-19-2007, 02:41 AM
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.