View Full Version : arm shoulder rig problem
illusory 06-28-2006, 02:29 AM I'm working on a shoulder rig, and it deforms my human mesh very nicely. It lifts the scapula and clavicle at the right time and deforms the deltoid properly. Still needs a couple refinements, but the deformation is good here.
There are 2 mechanical problems though that I just haven't been able to solve.
1. As you raise and lower the arm by the ik null (y direction; this shows the deformation), there is a 'catch' as it nears the zero position. It goes the opposite way that you are moving it, then corrcts itself and continues correctly. Really screws up the positioning when the arm is straight out.
2. As you pull the arm in with the ik null, it fails to bend at the elbow. It was doing this fine before I did some work on the shoulder bones (!), but I can't see what I've done that could be messing this up??
I believe these 2 problems have the same cause, and that it has to do with the smaller bones at the shoulder.
Is anyone interested to take a look at this rig and see if you know what's wrong? It might be useful to others if we can straighten this out...
I'd be grateful for any assistance anyone can give,
NJ
|
|
lanosrep1
06-28-2006, 04:38 AM
I am no expert on rigging unfortunanetly.. but i would suggest you take a look at some of the examples on the yahoogroups site. There may be something in the tutorials that come with Project Messiah too.. but I personally found one on the groups site recently that i liked.
Here is the link ( you will have to sign into groups.yahoo.com first..as always:
http://groups.yahoo.com/group/pmGmessiah/files/Sample_Content_Public/Marco%20%22Sil3%22%20Peixoto%20Stuff/
Download and play with the: goblin_sil3_rig_final.mpj (http://f1.grp.yahoofs.com/v1/wP6hROtOWK5fZ2T0WKUcWyK6iuNY17APHWiexvjFzBEcpZCx-DtaX74N-SLLbYbYl7bSDtZsDWs9hX8cZ9guIOLNmSa_DSw/Sample_Content_Public/Marco%20%22Sil3%22%20Peixoto%20Stuff/goblin_sil3_rig_final.mpj) file. I found it quite enlightening.. still trying to understand it all... but the arms\shoulder\legs in this rig are pretty good i think.. Bonus is the other effects that he has applied.. like melt on the shoes.. just a cool example.
I just checked and there are other examples as well. Good luck and welcome to the best little animation software on the planet!!
G.
JoeCosman
06-28-2006, 03:16 PM
your IKhand nulls are in the same heirarchy as your arm. this forms a constraint loop that freaks out, and you get opposite movements when you try to translate it around.
IK hands and feet should be outside of the heirarchy they are controlling. I would make them equal siblings to the hips.
with that said...
run the stiffness of Bicep1 up to 1 on pitch, and that should solve the elbow bending prob.
illusory
06-28-2006, 09:53 PM
AHA! The pitch stiffness! That fixed EVERYTHING! And it makes total sense -- after I split that bone to get the extra shoulder bone (bicep _R_root), is when these problems arose. I did that because I like the shoulder (deltoid) deformation method you showed on one of your mini-tuts, Joe, and wanted to add it to my rig. Didn't see the need for pitch stiffness there, but I sure do now. YOU ROCK JOE!!!
So, the IK does seem to work fine now while in the arm hierarchy. I did that at a suggestion from either Marek or Thomas (forget which), when I asked how to get the wrists 'unpinned'. You see, I'd really like to use some aspects of FK with the IK, and this seemed to be the best way to do it. Working with the IK__FK sliders, as you showed in your tutorial (i have them all now, great stuff), leaves me with animation problems I don't know how to solve. It would be a great idea for you to make a CD that shows how to use the character rig you make in Rigging 2, in an animation situation.
The problem that arises for me is this: If I push the slider to FK and move the arm, when I switch back to IK, it does not work from the current position of the arm. The arm jerks back. To it seems pretty useless to me to have that slider. I even tried hooking an armature button to an expression to move the IK null back into position after the FK manipulation, so that it would work from that position. But it only partially worked. The arm still snapped out of position when I switched to IK. All this was happening when the IK null was out of the hierarchy, as you showed in the tutorials. It was because of this that I put it in the hierarchy. I wanted to be able to move the whole upper torso without the dang hands getting stuck in space...
Can you please explain how the slider is supposed to work in use, and/or how to choose to 'unpin' the hands when needed, when the IK null is not part of the arm hierarchy?
A million thanks, Joe -- it's because of your tuts that I am able to delve into Messiah and I'm enjoying the learning process very much.
NJ
PS Thanks again G for the goblin ref
lanosrep1
06-28-2006, 11:44 PM
NJ
PS Thanks again G for the goblin ref
No prob.. let us all see what you got cookin' when you get happy with the results!
JoeCosman
06-29-2006, 02:10 AM
The problem that arises for me is this: If I push the slider to FK and move the arm, when I switch back to IK, it does not work from the current position of the arm. The arm jerks back. To it seems pretty useless to me to have that slider.
Ahh, therein lies the rub. the IK/FK switch is pretty elusive when it comes to just plain user-freindliness. don't worry, it's behaviour is the same in other apps as well...
I'm a fan of the K.I.S.S principle, and sometimes simple means the artist has to do a bit more work. in this case, the IK/FK slider needs to be keyed, as well as the IK goal, when it's not in use. I'd even say this was standard practice, even.
so.. when using IK/FK switches(at least in the tutorials) the steps would be this:
key the sliders to FK. Set your FK keyframes. move to new time. simple.
..Switching to FK....
set your keyframes, move the IK goal and align it to the FK hand. key sliders to IK.
set your keyframes with IK
yeah, it takes some extra steps.
what you are trying to accomplish would be a perfect expression set or plugin,
such pseudocode would go like this:
while Expression() is 0
-hidden Null in scene moves to and aligns to bone position
otherwise, while expression() is 1
-set calculated key on hidden null in scene
-deactivate moveto and align code
-show hidden null, hide bone
-IKAlign() bone to null
...something like that.
So, the IK does seem to work fine now while in the arm hierarchy. I did that at a suggestion from either Marek or Thomas (forget which), when I asked how to get the wrists 'unpinned'.
Errrr, sorry, but that must have been a misunderstanding - I certainly never suggested to put the IK goal into the same hierarchy as the arm/leg (nor did Thomas I believe). This way you get an evaluation cycle, as Joe said, that's why you get that flipping, and that's why the wrist doesn't follow the IK goals correctly. What I suggested was to have the IK goals be childs of the main body control, such as the COG control, and have a dynamic parenting expression that lets you "move" them out of the body control hierarchy. ;)
illusory
06-29-2006, 06:30 PM
Ok, I can see I'm going to have to take it up a notch...will need my brain in gear today ;) Meanwhile I did manage to make some nice knee (jeans) deformations using hold bones driven by expressions. So, I've got some courage...
Currently, the 'catch/reverse' thing with the shoulder is fixed, after setting the pitch stiffness. But I find that the elbow will not rotate past 90 deg. So I guess that is from the parenting problem.
G, I will post something after i figure out how to render a simple animation in Messiah. I've only been at Messiah a few weeks, and I've been completely immersed in the rigging and testing. It's great to finally get my hands on an app where I can have so much control and flexibilty to really develop a good rig for one of my models.
Thanks SO much Joe, and Maks for clearing up the parenting thing and all your great advice. I'll try this stuff out!
NJ
illusory
06-30-2006, 01:16 AM
"What I suggested was to have the IK goals be childs of the main body control, such as the COG control, and have a dynamic parenting expression that lets you "move" them out of the body control hierarchy" -- Maks
ok, I've learned about dynamic parenting and how to do it. I've changed the IK arm null to be parented to the main body null. I've made two nulls, mother and father ;), which are parented to the main body, and located at the same point at the wrist that the ik null is located. I did the expression with two sliders (as in the manual's tutorial) to change parents between father and mother, and the on/off slider.
Problem is, I don't know what to do with this!
If I move the IK null "out of the body control hierarchy", where do I move it TO?
And how does this help with the unpinning of the hand?
Do I make move and align expressions to keep the Mother and Father nulls attached to the wrist?
Looks like I need a little more explanation of what youre suggesting.
Sorry for my density,
NJ
illusory
07-08-2006, 02:47 AM
Joe, I hope you're still listening to this thread...
I'm trying to follow these steps you mentioned:
"so.. when using IK/FK switches(at least in the tutorials) the steps would be this:
key the sliders to FK. Set your FK keyframes. move to new time. simple.
..Switching to FK....
set your keyframes, move the IK goal and align it to the FK hand. key sliders to IK.
set your keyframes with IK
"
But I'm not clear what you are saying here, and it doesn't work for me. I try to keyframe the IK slider position to fk, move the ik goals to where the wrists end up, and key them (all in one key, frame 10). But they don't stick when i scrub back and forth from zero to 10. . Considering that I'm far from understanding Messiah's keyframing systems (they don't ever seem to work as described), I'm choosing each item and specifically creating a key for it. I also have autokey on, and key 'all items'. (I've also tried it with groups, hierarchys, everything). But the goals never stay put. Just setting ONE SIMPLE FRAME to test this, it doesn't work. No matter how I try to keyframe each and every thing, the arm also still jumps backto where the iK goal WAS before I moved it(and the goal jumps back too of course). This is very frustrating!
Could you please be more specific what you mean here? Exactly what does one do, on which key, and in what order? It's not clear from the above quote. (or maybe i'm just stupid).
Say i wanted to do the following simple thing:
1. Rotate the torso and have the arms free to swing and follow it (FK on), say on frame 10.
2. Position the hands from where they ended up in frame 10, using IK, say, frame 20.
What would be the steps to do this?
Please give me a hand here, i'm really not getting this.
thanks,
NJ
CGTalk Moderation
07-08-2006, 02:47 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.
vBulletin v3.0.5, Copyright ©2000-2012, Jelsoft Enterprises Ltd.