Using ikSCsolver on a leg


#1

I’m actually wondering if there’s any good reason not to use a ikSCsolver on a leg, if you don’t gonna use the poleVector-constraint?

I’m actually just gonna set up a leg where I rotate the group if the ikHandle for the foot to get the kneeSpin. I’ve seen people set up that kind of leg by setting up a ikRPsolver, then create a poleVector, then grouping the poleVector to a group at the pivot of the foot-joint, and then rotate that group to get the kneeSpin.

I’ve attached a file with ikSCsolver’s, havent had any problems with that so far.

I can’t really see the need of a ikRPsolver with a poleVector for that use - or have I missed something?


#2

You can set it up any way you like…as long as you get the control that’s needed for the movement demands of your character.
One quick thing that a pole vector lets you do is to put in somewhere and have it not follow the pelvis, shoulder or whatever. If your setup can do that…rock it out…i guess.
Perhaps you can use and aim constraint on the leg group to make it look like you have a polevector…if that works…but then you might as well have a pole vector.
I don’t have the ability to check out your file right now…but I assume you are testing this in a full rig setup…not just a solo leg. As soon as you add the pelvis movement and all that to the mix, the demands are a bit different than the solo leg test.

Just wondering why you are anti ikRP solver?
Polevectors are a pretty standard thing and they aren’t hurting anyone that I’ve met.
In the perfect world you could have a setup with both options. The standard rig we use at work has pole vectors as well as the ability to just rotate a controller to aim the leg/arm.
Some animator swear by the pole vectors…some by the twist…I dread the day in which we only had one option!


#3

By default it just follows the foot, I’m sure I could set up aim-constraints to acheive that kind of behaiviour, never actually thought about that.

The file attached is only the single leg, but I’ve tried it with a full rig too - I’ll use ribbons on the leg so when I rotate the hip, it will twist down to the knee, then I’ll just manually use the kneeSpin-attribute whenever I need to point the knee somewhere.

The reason why I’m trying to avoid ikRPsolver here, is that I’m setting up the no-flip leg setup where the poleVector is grouped and moved to the side, and then compensated by setting the twist 90 degrees (a setup from art of rigging).
Problem is, if the legs isn’t straight down (a joint in the leg-chain is off-axis), I’ll allways get rotations on the joints after setting up the poleVector and rotating the PV-group, and setting twist to 90. This is the reason why I decided to give ikSCsolver a go :slight_smile:

That’s definetly an advantage with ikRPsolver, that you get the possibility to use both of the options. However, if I know that I’m just gonna use the twist, do you think it’s ok to use ikSCsolvers? I’ve heard that it’s a no-no, and that they easily break - it’s just that I don’t know what they mean by “it easily breaks”? And I don’t know why it’s a no-no.

Thanks a lot for your response! :slight_smile:


#4

I may be wrong here, but what I do is add the IKRP, get the rotation of the joint that turned, and then use that as as the twist offset of the IKhandle.

A lot of animators enjoy the pole vector controllers

I don’t have maya on this machine but it was either that or I duplicated the hip>knee>leg bone chain before applying the ikhandle to the original, which would rotate, and then I would manually offset the twist value offset until both legs matched (then I would delete the duplicate).


#5

That gets pretty close, but there’s still some small rotations on the joints.

Yeah, you could eyeball it, but it doesn’t get 100% accurate, plus it’s impossible to implement in a script.


#6

The reason why I’m trying to avoid ikRPsolver here, is that I’m setting up the no-flip leg setup where the poleVector is grouped and moved to the side, and then compensated by setting the twist 90 degrees (a setup from art of rigging).
Problem is, if the legs isn’t straight down (a joint in the leg-chain is off-axis), I’ll allways get rotations on the joints after setting up the poleVector and rotating the PV-group, and setting twist to 90. This is the reason why I decided to give ikSCsolver a go

Not quite sure I understand here…so you have mastered the setup in Art of Rigging and are now improving on the methods that you learned? Some minor rotations on the joints after putting in your pole vector isn’t uncommon. It can be minimized if you ensure that you a placing the pole vector along the exact plane of the leg joints.

As for your plan to putting a ribbon setup on the upper leg…this seems a bit overkill and of course having the upper leg twist isn’t anatomically correct in a significant majority of humans/bipeds. Which doesn’t mean you shouldn’t do it…but make sure it is worth the effort in the long run. You get points for an awesome rig with realistic deformations…but you can lose points too if your setup is overly complex for little practical gain.

Rock it out my friend… :buttrock:

EDIT added stuff:

That’s definetly an advantage with ikRPsolver, that you get the possibility to use both of the options. However, if I know that I’m just gonna use the twist, do you think it’s ok to use ikSCsolvers? I’ve heard that it’s a no-no, and that they easily break - it’s just that I don’t know what they mean by “it easily breaks”? And I don’t know why it’s a no-no.

If you are just rigging for yourself and then you can do anything you want…but if you want to be a rigger or someone who rigs…you should make sure your setup has both options.
No pole vectors would be a deal breaker for some animators (and I’m not talking diva animators…the nice kind of animators). As for how easily they break? You heard if for a reason…it all depends on the setup I guess. No doubt you will make it work!


#7

Personally I’m not a big fan of the ‘move the pole off to the side’ no-flip setup for legs.

 The way I prefer to do it is to have a group at the same position as the upper leg joint with a rotation constraint on it targeting the foot controller. 
Then I drop another empty group as a child of that and move it out to the side of the character slightly. This I rename something like 'Pole Parent Up Vector'. 
Then I create a 3rd empty group (also at the same position as the upper leg joint) and call it 'Pole Parent'. Then I add an aim constraint to the Pole Parent group with the foot as the target and the Pole Parent Up vector as the Up Vector.

 Lastly I just drop the Pole controller as a child of the Pole Parent group. This means the pole then will point in the same direction as the foot when it rotates in world Y (which gives natural looking poses with less counter animation as our knees tend to point the same direction as our toes) and will not flip no matter how high the foot is off the ground, but the animator can also grab it and point the knee wherever they want. It's also possible then to add a Twist attribute to the Foot controller so that the animator has the choice of using that. In fact if they prefer they can just hide the pole while working and just use the Twist to tweak poses when needed.
 
 I've used this rig on lots of characters and it's very solid, never had complaints from animators about it.

Edit - I’ve written a script that sets this up automatically, little demo here

 HTH,
 Cheers,
 Brian

#8

Thanks for your responses guys, it helps to get some general inputs on this. I think I’ll stick with ikSCsolver as a test, play around with it and try to see if I stumble upon some limitations when animating :slight_smile:


#9

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.