Issues when switching between FK and IK rigs

Issues when switching between FK and IK rigs

GBLL
Explorer Explorer
6,928 Views
7 Replies
Message 1 of 8

Issues when switching between FK and IK rigs

GBLL
Explorer
Explorer

I was following Antcgi's rigging tutorial https://www.youtube.com/watch?v=4cBlRF_dr90 , but arrived  at some issues when switching between FK and IK after binding skin.
The rig who is not being used at the moment of the bind skin becomes deformed, so I was wondering if there is any solution other than redoing the rig.
This problem occurs on the left arm and the right arm which was mirrored and the controls duplicated and flipped, however while the mirroed leg rig is also deformed when switching, the original left leg rig becomes just slightly  deformed. While I clicked on the main rig system to bind skin the IK was the one selected

maya_Oq6Fh9LOXs.png

maya_b2rrXJXNC7.png

The IK rigs are a bit off-position than the FK rig, I believe that is caused because of the ik handle or pole vector, but even so the orientention of the joints and position aren't so off that it deformed the rig that much.
I don't know if it makes any difference but all the bind methods give the same results.
Screenshot of the Shoulder joint orientation

maya_ivx68eC7lN.png

0 Likes
Accepted solutions (1)
6,929 Views
7 Replies
Replies (7)
Message 2 of 8

mcw0
Advisor
Advisor

"The rig who is not being used at the moment of the bind skin becomes deformed"  

That's a bit unclear what is actually happening.  Rigs usually don't deform other than maybe the controllers?  It's the mesh that gets deformed by the rig.  So that isn't clear from your statement.  

I didn't watch the tutorial.  But how a switch is supposed to work is you have an IK result and an FK result.  And the switch allows you to blend from one to the other.  Now you're correct in that if there's a mismatch in the FK and IK joints, you will see a slight deformation change between the 2 states.  And this is usually caused by the pole vector on your ikHandle.  I'm assuming you duplicated your FK joints to create the IK joints or vice versa.  But in any case, the 2 systems should have been in sync at some point.  The last image of the shoulder joints is odd in that it appears the local rotation axis is different between the 2 joints.  Or did the joint orient values get changed somehow?

 

This is also unclear what's happening.  "While I clicked on the main rig system to bind skin the IK was the one selected".  Did you bind your mesh to your IK joints?  Maybe in your case to keep everything clear, you should have 3 skeletons.  An FK, an IK and a bind skeleton.  And obviously bind to the bind skeleton and create your switch/blend with your FK and IK as the inputs and output to the bind.

0 Likes
Message 3 of 8

GBLL
Explorer
Explorer

Sorry for the confusing post, I have 3 rig systems for the arms/legs, the IK one, the FK one, and the main one that I selected to bind the skin.
"The rig who is not being used at the moment of the bind skin becomes deformed" 
I meant to say that on the fk/ik switch controller, if the value is set to 0 (FK) while I select the main rig and the mesh and then bind the skin, the FK joints/controllers work fine, but if I switch to the IK controllers, the mesh becomes deformed.
The FK/IK orientantion seem to be both the same,so much so that it seems to only show the axis for only one of them, and the main rig joint is slightly tilted.

0 Likes
Message 4 of 8

mcw0
Advisor
Advisor

Take note of the rotation values of your main joint that is deforming strangely.  Set your switch to FK and note the values.  Then switch to IK and note the values.  They will not be the same.  You will need to compare your FK joint with your IK joint to determine where the mismatch is coming from.

You might want to do a simple test of duplicating your FK limb joints and creating an ikHandle on the duplicate and see if it matches the FK.  Maybe something went astray when you created your ikHandles.

 

Also, just looked again at your original images that you posted.  In those images, the FK is the one that has the problem...at least in the legs.  Usually, it's the IK that would have issues if something went wrong.

Message 5 of 8

GBLL
Explorer
Explorer

You are exactly right, either my IK_Handle or pole vector changed the rotate values on the main rig. 
Now, if I simply put 0 on the rotate values they just go back to what they were if I try to move them, is there any fix for that without having to redo the IK handle ?  I ask that because I'm afraid that deleting and creating a new ik handle might mess up other parts of the rig

0 Likes
Message 6 of 8

mcw0
Advisor
Advisor
Accepted solution

Usually, it's the pole vector that's the culprit.  If you disable IK solvers and zero out your IK joints, everything should line up, correct?  Deleting and recreating the ikHandle shouldn't be too destructive.  Only things to be careful with are connections.  But if you don't want to chance breaking something, then create a duplicate as I've outlined earlier.  Duplicate the FK joints and create a new ikHandle on the duplicated joints.  Create the pole vector and confirm that nothing changed from the FK to the duplicate joints.  If nothing changed, then you can just snap your original pole vector target to the position of the new pole vector target.  Then delete the duplicate joints.  I hope that was clear.


0 Likes
Message 7 of 8

GBLL
Explorer
Explorer

I've just did that and it seems to be working properly now, this vid helped me https://www.youtube.com/watch?v=JTHJd5EnDDs 
Now the only thing left is to connect the new IK rig to the main rig and delete the old one, so I believe I just need to delete the parent constraint and add to the new IK aswell as changing the node connection on the switch controller

0 Likes
Message 8 of 8

GBLL
Explorer
Explorer

Just finished reconnecting everything, it works !! thank you some much for the help !

0 Likes