PDA

View Full Version : Easiest Auto-Forearm setup tutorial


edwardG
02-16-2009, 09:56 PM
Hey all! I just wanted to inform you of my new Rigging Blog that I'll be updating periodically with Tutorials, Tips, and Tricks.

My first tutorial is up, it's an efficient Auto-Forearm that's pretty easy to set up!

Here it is:

http://rigginghierarchy.blogspot.com/

Enjoy!

DanHaffner
02-18-2009, 02:59 AM
Thanks for the tutorial. Plan on playing around with this and some others I know of to see the differences. Thanks for taking the time to share your ideas with us.

edwardG
02-18-2009, 07:09 PM
Thanks DanHaffner!

I'll admit that this is a very low-level tutorial, so I decided to make my next tutorial about animatable pivots.

mlefevre
02-18-2009, 10:18 PM
Thanks DanHaffner!

I'll admit that this is a very low-level tutorial, so I decided to make my next tutorial about animatable pivots.

Can't wait for that...will keep my eyes peeled.

-matt

Leffler
02-19-2009, 12:04 AM
Thanks DanHaffner!

I'll admit that this is a very low-level tutorial, so I decided to make my next tutorial about animatable pivots.

Does your system work even if the object is the driver via constrains to other stuff? Thatīs where the systems Iīve seen so far break down

/Otto

uiron
02-19-2009, 08:33 AM
for twist type like that, aim constraint on the twist is far far more robust than orient constraint for one euler axis out of three.

edwardG
02-19-2009, 04:41 PM
Does your system work even if the object is the driver via constrains to other stuff? Thatīs where the systems Iīve seen so far break down

/Otto

You're talking about the pivot, right?

edwardG
02-19-2009, 05:11 PM
for twist type like that, aim constraint on the twist is far far more robust than orient constraint for one euler axis out of three.

Mind being a bit more specific about how you would set up the aim constraint?

If it's what I'm thinking about, then basically the same thing is occuring, the only difference being that the aim constraint controls the up vector to ensure that it doesn't flip. Correct?

Leffler
02-19-2009, 09:35 PM
You're talking about the pivot, right?

Yes.

//Otto

mberglund
02-19-2009, 10:22 PM
That seems similar to the Art of rigging forearm setup. When i tried setting it up years ago, it would always flip. I'm fairly certain this is because it is constraining only one axis, and I think it can get corrupted values from that.

AdamMechtley
02-19-2009, 10:37 PM
Hi,

I recently put up a video on my site with the aim constraint method: http://www.6ixsetstudios.com/tutorials/rigging/#02_forearm

The orient constraint method does in fact flip in some situations where the aim constraint does not, but they are so far outside a normal range of motion that I would not be too concerned about it (e.g. if the hand bends laterally/medially some places between 45 and 90 degrees). My primary consideration however, working on games, is that I have no idea what the orient constraint is doing mathematically when you limit it to one or two axes only (which is also why I cannot tell you why it flips when it does). An aim constraint, on the other hand, not only avoids flipping but is very easy to recreate programmatically. The procedure is basically only two cross-products (so something like as few as 6 VPU cycles depending on hardware).

edwardG
02-20-2009, 06:47 PM
Ok, here goes...

@Otto: You'll see. :)

@mberglund: This setup is VERY different from Kiaran's Forearm setup in Art of Rigging. His is one of those setups that requires you to move the end effector of the IK handle (which is something you'll never have to do with this setup). Another Key different is that his wrist bone never twists, only the forearm does. The last Key difference is that the twist is driven by the rotation of the wrist control. Visually, my setup looks similar to the one in AdamMechtley's video tutorial (the twist bones are parented to the elbow, and the wrist bone is as well.

@AdamMechtley: I've noticed that the videos play much better through your vimeo page and lose some quality on your website. Very good tutorial, I enjoy tutorials that can go down to that level of explanation and detail.

So from what I could tell in your video and if I did it correctly, the Aim constraint will end up flipping with extreme lateral rotations, correct? I'll agree that computationally, the aim constraint is much less expensive, and in game engines would be a much better choice.

When I put both methods side by said, there really isn't a noticable difference until you go to the extremes (as you stated in your post).
---------------------------------------------------------------------------------
I'll admit that I'm not as knowledgable about the math going on in the background, so perhaps my reasoning behind the orient constraint is wrong. Here's how I view it working in my setup:

The forearm is orient constrained to the wrist and the elbow. Computationally, since I have constrained only the X axis, all the computer is figuring out is the local rotation of the forearm by this equation:

forearm.rotateX = {[wrist.rotateX * (wrist W0)] + [elbow.rotateX * (elbow W1)]} / 2

We'll assume that the influence weights are both at 1. So, if I rotate the wrist +30 in X, here is the equation:

forearm.rotateX = (30 + 0) / 2 or +15.

All of this is, of course, in Local space, so I'm not sure how the computer takes that math and applies it into world space.

The last thing I'd like to point out about this tutorial is that the goal was to create an efficient forearm that was easy to set up. I think that the orient constraint is a little easier to set up over the aim constraint method, but there is no denying that the aim constraint method is very useful.
-----------------------------------------------------------------------------------
At any rate, I have updated the tutorial to include a new picture of the completed joints + hierarchy, and I have also added a Tip section for writing scripts.

Let me know what you all think! Thank you all very much for the comments.

AdamMechtley
02-20-2009, 08:48 PM
I've noticed that the videos play much better through your vimeo page and lose some quality on your website.
You have to pay for Vimeo plus to do HD embeds unfortunately. So what you see on my site is SD and its HD actually on Vimeo.
So from what I could tell in your video and if I did it correctly, the Aim constraint will end up flipping with extreme lateral rotations, correct?
Yes; at exactly +/- 90 degrees the up vector is 180 degrees from its target.
forearm.rotateX = {[wrist.rotateX * (wrist W0)] + [elbow.rotateX * (elbow W1)]} / 2
This is not the case. If it were, the behavior would be the same as doing the direct connection that I show in my video. Namely, the forearm would stop working if the wrist were Gimbal locked. Because this does not happen, and because the orient constraint method flips in weird places, it's pretty much anybody's guess. :surprised

CGTalk Moderation
02-20-2009, 08:48 PM
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.