0
$\begingroup$

I'm trying to setup a rig that allows IK/FK (via influence property), where the forearm twist joint automatically alleviates part of the twist of the hand. Not necessarily as part of the IK - just something that makes the wrist help the hand twist, automatically.

So I have this setup:

Shoulder -> Elbow -> Wrist -> Hand ..where Elbow & Wrist are the same forearm bone, with a single twist rotation in between them.

So when the hand twists along its length axis (for either FK or IK), I would like to make the wrist automatically twist along that same axis. I would be fine if the wrist assumes 100% of that rotation, but would rather be able to customize the amount it rotates.

Has anyone setup something like this? Or do you typically just manually alleviate the twisting of the wrist by adjusting the bones on each frame of animation?

My character will be exported for the Unreal engine, so I am limited in the types of bones and solutions I can use. I'm pretty sure bendy bones won't work for me. I've tried simply adding a driver to the wrist bone to make it assume some of the rotation of the hand in the appropriate axis. But I also have the IK constraint applied to that same (wrist) bone, which apparently causes very bad transform issues. The mesh ends up stretching and exploding in that area.

I'm trying to find a solution and will post it on here if I do before anyone can help.

Thanks!

$\endgroup$
  • $\begingroup$ Add a copy rotation constraint to the hand bone. Invert every axes, set the target to the forearm bone and set both Space to Local. $\endgroup$ – FFeller Aug 8 at 17:08
  • $\begingroup$ That's a great idea. I can see how this will help to get it working. I tried something similar by making the hand not inherit rotations, but this is far better because it still inherits other parent rotations. But this alone doesn't make it automatically twist for the hand, right? Did you mean to use this along with something else? Which bone would you use for the IK constraint? I'm currently using the wrist (2nd forearm bone). Should I be using the hand? $\endgroup$ – Robert Aug 8 at 17:52
0
$\begingroup$

I found the solution I was looking for. The trick is to not use the same bones for twisting and IK. Use one set of bones for twisting, and another set for IK.

  1. Setup a rig similar to what I intially mentioned (two forearm bones for twisting)
  2. Add a new "parent forearm" bone that will serve for IK (or manual posing) purposes, parented by the upper arm or shoulder bone. It will run from the elbow, all the way to the hand. Set this bone to not deform. For IK, this bone serves as the primary forearm. For FK, it serves as a handle, basically. A container - so you don't have to manually pose both twist bones. If you export for game engines, you won't need to include this bone.
  3. Setup both twist forearm bones as children to the parent forearm. These should be full deforming bones with weights or whatever.
  4. Set the hand bone as a child of the parent forearm, inheriting full rotations.
  5. Add the IK constraint to the parent forearm bone. You will need some other bone as the target for the chain.
  6. Add a copy rotation of local Y to the twist forearm bone closest to the hand. If you use more than one twist bone, you will need to add this to the others as well.

I think that's it. Let me know if I missed something. I found this video, which helped tremendously: https://www.youtube.com/watch?v=Vm7ST03SW8Y ..I honestly don't like the way he set up his vertex weights, and don't think its necessary to use more than one joint for forearm twisting, but otherwise, the setup seems solid and achieved exactly what I needed. Hope this helps someone looking to do the same thing.

$\endgroup$
  • $\begingroup$ I have a very complex setup for this one that uses a chain of twist bones to interpolate the rotation between the hand and its default position using the transformation constraint. There must be a bone for the default position/rotation of the hand and a bone for the hand-roll controller. The twist bones twist along local Y a little bit each one to reach the same final rotation as the controller. Using a the transformation constraint instead of copy rotation makes it possible to twist past 180 degrees. An interesting side effect to this is that I can use IK while inheriting the hand's rotation. $\endgroup$ – Joseph Brandenburg Aug 8 at 20:02
  • $\begingroup$ Obviously I can't explain it all here, but that should be enough to help you think around the problem. Maybe when I have time I can do a tutorial series. $\endgroup$ – Joseph Brandenburg Aug 8 at 20:03
  • $\begingroup$ I use a roll setup for the legs, where it can pivot from the toe joint, toe tip, heel, or sides. But I tried to keep things simple for the hands. I'm hoping I don't regret that decision later. My hands can pivot from the area right before the finger joints and from the area right before the wrist joint. I assumed that would be enough. But I haven't started creating animations yet, so hopefully I know what I'm doing. $\endgroup$ – Robert Aug 9 at 21:57

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.