PDA

View Full Version : The aiming arm setup


Chinwagon
07-25-2007, 06:43 AM
Here's an idea I came up with for a new limb setup technique.

The whole thing is based on the position of two objects, one to control the wrist position, the other the elbow.

Instead of an IK blend value to swap between two separate modes, both control objects have an attribute called "lock to control" which does just as it says. The idea is that an animator who perhaps would know almost nothing about CG could still use the setup intuitively.

This setup has various benefits over the standard IK/FK setup:

- Less UI clutter. Uses the same two controls for both IK and FK posing.
- Give the ability to easily pin the elbow to a surface.
- No rotation required so no gimbal lock.
- Easier to make an FK pose than rotating two controls.

The only potential hazard I can see is that the in-betweening will be slightly different when in FK. This is because it is based on the position of objects rather than the rotation. However, once you get used to using positions to dictate an FK arm animation, it becomes really simple and straightforward to use.

http://www.bradnoble.net/rigging/Aiming arm demo.mov (http://www.bradnoble.net/rigging/Aiming%20arm%20demo.mov)

This setup doesn't use any exclusively maya techniques and can be easily reproduced in 3dsmax for example.
I'm not 100% convinced that this should replace all standard IK/FK setups but everyone I've showed it to really likes the concept.
What do you reckon?

:¨)

eek
07-25-2007, 07:11 AM
Ah nice, yes this is basically what Jason schleifer was doing with his arm setup - ability to lock the elbow and drive the wrist with the same control was a nice sytem. The quarms i have with a system like this is drifting controls - but if you have all you transform spaces worked out that shouldnt be a problem. Over at www.characteranimator.com (http://www.characteranimator.com/) - he has the same rig working in his cartoony character. Personallly im not into lots of blend sliders.

cheers,

Chinwagon
07-25-2007, 07:36 AM
Heh, funny. I just posted this on www.jonhandhisdog.com as well! I could be getting some heat for that. I haven't seen Jason's setup, honestly!
:¨A

eek
07-25-2007, 07:48 AM
Heh, funny. I just posted this on www.jonhandhisdog.com (http://www.jonhandhisdog.com/) as well! I could be getting some heat for that. I haven't seen Jason's setup, honestly!
:¨A

Hehe yes check out his Animator Friendly Rigging blog - he's got vids and pics of it. A lot of riggers have tried ideas similiar or even the same. It is a nice setup though, i do personally find it frustrating in my rigs having to blend back an forth between ik/fk - when everything else is simple. I guess you want all the functionality of that plus it acting like a chain when you need it - hmm.. maybe you could blend to a pseudo ik chain of drive it into a pose.

PEN
07-25-2007, 12:11 PM
Looks great Brad, I have played with similar things as well but not got this far. Part of the problem that I see is you are not using rotations. Many actions are just smoother when animated that way. I see how this is still rotating the arms like the are in an FK setup but I wonder if that will still be as smooth to work with once animating.

Looks great and I would love to hear what you are doing to get this to work.

benytone
07-25-2007, 01:25 PM
Here's an idea I came up with for a new limb setup technique....

:¨)

You can use constraints too, I donít know about maya, but in cinema 4d you can use basic Aim & PSR Constraint (simple and easy setup)



.

Chinwagon
07-25-2007, 02:35 PM
Yeah, it's a pretty straightforward setup all in all (which is another benefit in that it doesn't lag).
One IK chain with the wrist control as target and elbow control as pole vector, a couple of aim/lookat and point/position constraints for the end result arm chain and you're most of the way there. The aim/lookat's up vector for the upper arm is the wrist control which means that the forearm only ever rotates on one angle.
Paul: most people's reservations about the setup are that rotation is done away with completely. The only way to know if this becomes an issue is for it to be animated with on a project, not just by wiggling the controls around and setting a key or two - which is as far as I've gone with testing it as a way to animate as an FK chain.
:¨)

eek
07-25-2007, 06:22 PM
Its a nice idea , i tried it out very quickly - the only bug i have with it is not having the ability to lock the hand to a surface, as Paul was saying you'd have to wiggle it. Im thinking if we can lock the hand without having to stretch it i can see it being a great setup.

cheers,

Chinwagon
07-26-2007, 12:23 AM
Yeah, I was thinking that and I guess the solution would be to have the wrist control be able to rotate as well as move. This means you could constrain/link that control to a surface and then the hand control below it would have an attribute dialed up to inherit the rotation of the wrist control.
:¨)

eek
07-26-2007, 02:55 AM
Yeah, I was thinking that and I guess the solution would be to have the wrist control be able to rotate as well as move. This means you could constrain/link that control to a surface and then the hand control below it would have an attribute dialed up to inherit the rotation of the wrist control.
:¨)

I think the trick would be to force with a switch, the elbow control to only move around the axis of the system i.e like a swivel/pole vector - i.e press a button which locks the current angles of the chain and then drive the joints like a swivel about the elbow control. Or force the elbow control itself to act like that - you could use weak referencing im guessing.

edit: sorry i think you have that working in your rig. Nice! and i think i have a pretty simple solution for it(ish).

Chinwagon
07-26-2007, 08:24 AM
I've gone and done a very quick and dirty animation test with this arm setup to see what it was like to use for actual animating.

http://www.bradnoble.net/animation/aiming arm throw.mov (http://www.bradnoble.net/animation/aiming%20arm%20throw.mov)
(The hand animation is done just by animating the rotation of the boxes.)

It was really easy to switch between FK and IK and back to pick up the ball, but the only problem I found was posing in FK. It could definitely be done, you didn't have to be so precise about your arcs as opposed to animating purely with IK and the in-betweens worked predictably (I would say more so than rotations going through gimbal lock). However, it doesn't really feel right to adjust the rotation of a limb with the position of two objects. It seems to take a lot more moving things around to get the exact angle you're after.

So that last point in the first post about it being easier to pose using these controls as opposed to rotating, I think is wrong. It felt easier in theory, but was more fiddly in practice when trying to achieve a specific angle because moving one object changes the angle of both parts of the limb. There's a lot of back and forth between the two controls trying to get the pose right.

Maybe it's something that you could get used to as the setup has a lot of benefits. It's just that its one drawback is pretty fundamental to posing a character.

:¨\

eek
07-26-2007, 07:13 PM
I think the key to this is that you want to drive the elbow as a rotation, the shoulder could be positional, and even the twist. I have an idea as to how this could be implement with ik but id have to do some r&d.

Chinwagon
07-27-2007, 12:35 AM
I'm just thinking out loud here, but you could have the elbow control's position dictate the angle of the upper arm and have its rotation dictate the forearm making it so that only one object controlling the FK arm. It would mean that when you move the elbow control the forearm angle won't change as the elbow control's rotation angle isn't changing. However, you could change it with a lookat/aim constraint pointing to the shoulder which the elbow control would be influenced by. This would essentially mean that when you moved the elbow control, it would rotate the upper arm and the forearm would rotate too to match the angle of the elbow control. On top of that you would rotate that control to rotate the forearm angle.
...although having the rotation influenced by an aim/lookat will raise up-vector issues.
Might have to do a test...
:¨)

PEN
07-27-2007, 02:50 PM
The animate looks good, how ever, that same animation could be done with a stright up FK chain. Just playing devils advocate here Brad and in no way ditching what you are doing. I like what you are trying but so far I don't see it as being easier. Eek said that he doesn't like having an IK/FK blend spinner but so far your rig has far more controls to deal with in the UI. Less in the viewport how ever.

One of the things that animators have always complained to me about was UI's they didn't understand how to use. For the most part animators are whiners that don't want change or they might have to learn something new...(Time for all the animators out there to jump on me for that). I was an animator so I can say that, and still do animate and find that if I have to think about how to use the rig it stops me from thinking about timming in the animation.

I havn't used your system that you have built so I don't know how intuitive it is so I'm just talking out my a$$ at the moment.

One advantage that I do like in your rig is that you can lock down an elbow. I have had to do this with a third chain in the past. How ever yours will have to stretch, this isn't something that you want nessesarily. I have done it by stringing a solver from the clav to the elbow on the third chain. This way I can some flex without stretching. Even stretching in cartoon characters isn't always what you want to just have happen. You can get away with it more but control over the amount of it is nice.

I wish that I had time to play along with you on this. You are on to some good things but there are still several that you need to work out. Like if you can't lock a hand down there is no point in having IK at all.

Chinwagon
07-29-2007, 06:03 AM
There are definite pros and cons with this setup I've found.
All animators work in different ways, the more traditionally leaning tend to pose everything in scene, doing little curve editing while there are those who've learned purely using CG and so are familiar with how curves relate to motion and use the power of the graph editor/trackview to make their lives easier. Some exclusively use IK for their arm animation as it's quicker to pose, some only use IK for when a hand is on a surface as FK provides better arcing in-betweens. So as all TDs know, having a setup that works for all animation styles is almost impossible.
This setup would of course need an extra option to lock the hand to surface for it to be complete and one of the main benefits it has is that it has a very shallow learning curve - only 2 controlling objects and whether you want to lock that part of the limb to that object. In terms of blending from IK to FK it's extremely simple, the issue lies with how it is to use for FK.
With regular IK/FK arm setups you have 3 curves for the rotation of the upper arm and a curve for the forearm. For the forearm particularly you can relate the animation curves to the limb rotation very easily, while with this setup, it's more difficult to know what curve is driving what part of the arm.
For pure FK work using 6 animation curves instead of 4 isn't desirable. However, using 8 curves on 2 objects to control the whole arm (2 XYZ translates and 2 lock to control attributes) is less than the 11 curves on 4 objects (upper arm XYZ rotation, forearm angle, IK target and pole-vector XYZ translations and IK blend value) we use on regular IK/FK arms (you can add another 4 curves to each setup for IK target rotation and an inherit IK rotation attribute to lock the hand to surface).
The more I use the setup, the more I think it's geared toward animators who like to use IK for their whole animation. It's kind of like an IK setup with options to inherit chest and/or waist transforms and not be as stringent about locking to the IK target so they can get easier arcs on their in-betweens.
It's definitely a good option some animators might really like with their rigs, but I don't think it's the be all, end all arm setup.
:¨)

Ruramuq
07-29-2007, 04:22 PM
what your trying to do is creative, I tried similar without the stretch, but, this rig, is not FK, and is not IK completely, I think it may bring a benefit, but overall, I can't convince myself of its possibilities, perhaps simulating an IK solver using maxscript, would bring much more control to experiment in much more situations. because this rig as it is, might have much more limits if you try to implement new rigging characteristics. perhaps I'm wrong

besides, stretch does not seem a good option as a complement in a rig, it should be like an extra effect

"ability to easily pin the elbow to a surface", well that is another thing that is subjetive, when we analyze real characters with flesh and bones, there is a direcction, a force, I mean shoulder and chest pushing against the elbow, somehow I think there lies the best method for this.

keep experimenting..

eek
07-30-2007, 06:42 AM
what your trying to do is creative, I tried similar without the stretch, but, this rig, is not FK, and is not IK completely, I think it may bring a benefit, but overall, I can't convince myself of its possibilities, perhaps simulating an IK solver using maxscript, would bring much more control to experiment in much more situations. because this rig as it is, might have much more limits if you try to implement new rigging characteristics. perhaps I'm wrong

besides, stretch does not seem a good option as a complement in a rig, it should be like an extra effect

"ability to easily pin the elbow to a surface", well that is another thing that is subjetive, when we analyze real characters with flesh and bones, there is a direcction, a force, I mean shoulder and chest pushing against the elbow, somehow I think there lies the best method for this.

keep experimenting..


Im getting down the process of keeping things purely modular and pretty simple. With modular deformation and dynamics as secondary layers. IK/FK lives within all this and is somewhat subjective.

Stretch is process of the rig itself with deformation and/or dynamics riding ontop for free. I wouldnt classify stretch as an extra affect as more of an option to allow a rig to act like.

Deformation being twist, curve control, shape deformation, jiggly should really rid on the rig - it cleans up the controls for the animator and allows the finer process of fixing twist a second, third, forth 'fidelity' pass. This doesnt mean the skin has to live by this hierachy - it could be completely skinned to the deformation layer or just partly.

I dont know if this is the way to go, its just areas im kinda driving towards - IKFK is really the result of the process, its hard to pin down that process as its all brain reactions and external events - what the animator wants is control.

Ruramuq
07-30-2007, 10:48 AM
what you say about "modular deformation", gives me curiosity. surely somethin I want to comprehend. it'll be good to see your tests/results

stretching.. it should be an option,yes, and if the rig can work without that option, it is a good sign to me,

when somebody is trying new things, the animators needs are secondary, because this is unfinished work, something not debugged and not simplified yet, no much control for the animator. I think these threads are interesting because of that.. inspiring topics

eek
08-03-2007, 07:03 AM
Has anyone though of using VCK with a transposed arc length method to get rotations about the elbow? Basically VCK 'vector coupled ik' is an ik chain driven by the vector magnitude to positioning the goal whilst having standard rotation for general fk, it basically allows you to break the ik and add nice arcs to the animation - the problem i see with it is you cant drive about the elbow. But what if we use a transposed arch length method, which would ontop drive the general rotation and the magnitude we could get rotation about the elbow- this could even have its own fk controller driving additively over the top i think -you need just a few variables such as bone length, as you drive it as an additive to the main control i.e a layer over the top.

http://adventuresinstorytelling.com/VCK/VCK_poster.pdf

I now must go to bed.

Edit: I think law of cosine would be a better solution than transposing arc length method.

CGTalk Moderation
08-03-2007, 07:03 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.