View Full Version : Max Clavicle movement base on Elbow height
03 March 2006, 07:53 AM
I am trying to set up an auto clavicle with the basic looking control. It's like the one in the 3d max tutorial, but I want to see if it is possible to have to lookat controller to change weight when the moving target is higher than itself. That way, when our hand is at or below the shoulder level, the look at controller will look at the shoulder target and nothing will happen. Once the elbow target is higher than the look at controller, the weight will change to the elbow target.
03 March 2006, 02:07 PM
You could use the raction manager for this. Paul neale also has a technique for doing it with expressions in his rigging dvds.
03 March 2006, 08:17 PM
Hi!... in case other people dont know what is this all about the basic auto clavicle thing can be archived in several ways... here I will try to explaing the basics of one of those ways...
In the pivot of the clavicle bone you put an expose transform point helper and a simple point helper, make the parent of the clavicle (ie. the chess) the parent of those points.
then; put another point helper in the Elbow, make it child of the forearm or arm bone.
now, assing a look at controller to the point helper in the clavicle, make the controller look at the point helper at the Elbow... now it will rotate to look at the Elbow.
You must be sure to understand how this point is orientated and base on what (latter you wil find this very important when the rig is rotated this thing would be rotating apparently, whitout reason).
to make things more graphic you can activate the axis tripod checkmark in the clavicle point helper.
by now (assuming that the ik chain and controllers in the arm are already setup) you can grab the wrist ctrl and check how the point in the clavicle rotates to keep track of its target, nice... but not quite ready.
now, you need to aling the expose helper to the look at point in the clavicle, and set it up to show the rotation offset between itself and the look at point. Once this is setup you can create reactions in the reactor manager to drive the rotation of the clavicle bone based in the data that the expose helper gives you.
I recommend to reset the rotations in the clavicle bone before start with the reactions, it will give you values of zero to start with making the process less dificult.
about the weighted controller question, I think that you can setup a single reaction that give you all those states without a second point to look at. I dont see the need of that second point... maybe I quite dont understand what you are trying to acomplish...
maybe Mr. Neale, eek give us another master class about it :scream:
03 March 2006, 08:45 PM
This technique is covered in our RiggingPro (http://3dquakers1.com/webroot5/download.php?det=27) training DVD.
Here is a super easy way to do it though:
Just create a point helper (let's call it midpoint) and position constrain it midway between the hand IK control, and the swivel control. That way the midpoint will react to the motion of both the hand and the elbow.
Create a dummy animation of the hand moving up and down. Add an Expose TM and select the midpoint as the exposed node, and the arm wrapper (the point to which the whole arm is connected) as the reference node. You need the monitor the Z position of the Expose TM.
So now open the reaction manager, set the zpos as the master and the Yrotation of the clavicle as the slave.
Scrube your timeline, when the arm/elbow move up, you can add new states to control the rotation of the clavicle bone, and so forth.
Simple way, great results. I hope that helps a few folks.
03 March 2006, 08:47 PM
korben, i'd do it pretty much the same, except the lookat should point at the elbow instead of the wrist for best effect
i also use exposeTM to drive the shoulder off of the lookat's rotation, but i use parameter wiring instead of reactions... personally i think both the reaction manager interface and scripting reactions is pure hell, for me wiring and expressions are easier and faster to use
something like "if rotx > 0 then rotx else rotx * 0.3" usually does the trick for shoulder up and down movement (it should follow all the way if the arm is going up, if the arm goes down it should only rotate slightly to get some nice organic motion)
03 March 2006, 09:02 PM
wow!... now we are talking...
thanks for expand and enrich this thread!
Yes guys... the reaction manager is very unstable (but some consider it easier), about the elbow you are right too... I will edit my previous post... this things are what cgtalk is all about!!
03 March 2006, 02:12 AM
:lightbulb Thanks guys, it works great! I used the Expose TM method to get it to work. It is much cleaner than the one shown in the Max Tutorial.
3DQUAKERS, when will the Rigging Pro come out. I check the site out but it didn't even mention anything about it. I saw the video demo, great stuff! Looking forward to it.
03 March 2006, 05:56 AM
RiggingPro is coming out sometime this week. There will be an announcement here and in the MAX forum.
03 March 2006, 02:27 PM
don't forget to also include an additional clavical animation control so that animators can make adjustments manually. Add another Euler XYZ rotation controller within your clavical bone's Rotation List's 'Available' slot and link the clavical bone to the animation control handel so that the handel controls the clavical and arm rigg. better yet, link the wrist control handel (which should also be driving the IK goal at the wrist) to the clavical control handel too.
03 March 2006, 03:22 PM
I didn't read all this therad but since my name came up I figured I should pipe up and explain why I do it the way I do.
If you have a look at Maxine that ships with Max 8 in the samples folder you can see a solution that is set up.
I use a system where I have a lookAt con on a point helper that is aligned to the clavicle. This look at looks at the wrist control and the elbow control and is weighted 75% to the wrist and 25% to the elbow.
I then use expose TM to get the rotation of the object that the lookAt is on. It is best to have that object linked to another that has the same orientation, this way you don't end up in a gimble state right off the bat.
I then use reaction manager to drive the clavicle or actualy another point helper up and down based on the rotation of the lookAt object. I then constrain the clav to the point helper. I thnk any way, I would have to look at it. The reason for reaction manager and not wire as has been suggested is that I can effect a function curve for the rotation so that I can ramp in and out of the rotation. This way I don't get an unnatural start and stop of the rotation on the clavicle as it will slow down just before stoping. I also don't want the clav to rotate down as fast as it rotates up so again I can smooth the transition from one to the other. With a wire you would get a sudden speed up or slow down in this case with out some fancy scripts involved.
One thing that you should do it make sure that you have a way to turn off the autoclav as it isn't always a good solution when animating. It is good for generic animation but when you get into things like throwing a ball it just gets in the way as the clavicle should lead the motion not follow it.
03 March 2006, 03:29 PM
What if the characters upside down? is the autoclav based off distance?
03 March 2006, 03:47 PM
Doesn't matter if the character is upside down, make sure that you set the up node of the lookAt to the object that it is parented to.
03 March 2006, 01:33 AM
How do you avoid a dependency loop when you have the auto clavicle being affected by the elbow's position but the elbow's position (when using IK) being affected by the clavicle's rotation? Do you rig a seperate IK arm to get the original elbow position and then rig the result to the arm used for skinning?
03 March 2006, 02:29 PM
I think if you provide the animator with a control handel that will drive the clavical, the animator can always click and move the clavical into position. It will make your life and the scene less complicated in the end. Since the shoulder provides a lot towards the overall motion of a character's arm, animators will most likely want to move the shoulder manually anyway (that's the key point here - excuse the punn).
What would be of interest is to find ways of limiting the bones twist and rotational movements so that they won't get twisted into un-natural ways and ripping the mesh apart. Still provide the animator with 'full' control but up to a limit where that control would undermine the rig. Perhaps when the rotation of a bone reaches a certain value, stop rotating.
Beyond that, I find it very interesting to learn new ways of doing something...just don't want to get caught into the nitty-gritty details that may never get used in the end product. I've got a family to spend time with...you get the idea. Enough of my ranting..
03 March 2006, 02:49 PM
Chinwagon: the loop dosent affect this setup if you make the reactor helper child of something outside the IK herarchy like the top of the spine.
virtualmesh: I think that the limit controller in max 8 do this just fine...
03 March 2006, 03:45 PM
Brad, you don't run into that problem here. It is a bit of a dependancy loop of sorts but it doesn't cause any problems.
Ryan, this has to be one of the few automated features that I have added to rigs that animators like. The clav rotates alot but unless we are doing specific motions then it works well. I ofcourse add a feature to ramp it off for those ocasions. It also depends on what the level of animation that you are trying to achieve. For Pixar level well you might want it off more then on, for TV series animation you might want it on most of the time as you need to bang out animations fast. It is all a matter of what is required.
03 March 2006, 03:45 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.