Home Website Youtube GitHub

Foot Scaling Issues when blending IK/FK

Hello all,

I stumbled upon a weird issue. I’m on MGear 3.0.5 and building a rig with the standard “foot_bk_01” component. When the rig scale via the “world_ctl” is not set to 1, and I use the “FK/IK Blend” attribute on the legUI, whenever the value is somewhere between 0 and 1, the foot scales weirdly.

So far I have not been able to debug this, so I’m happy about any input.

Thanks a lot!
Pascal

Hello @pascalf

What type of skinning are you using? Linear or Quaternium?

Cheers

Hi Jerome,

thanks for the quick response. This is Linear. DQ Scale issue was my first guess too, should have added that info, but in this case this is not the problem.

Thanks a lot!

-p

Just in case, you can use scale with DQ now since Maya 2017 or 2018 (don’t recall exaclty) that been said you need to turn on the scaling option on the skin cluster node.

I think this issue comes from the fact matrix composition/decomposition happening in the joints not interpolating correctly. You can do the following to solve this.

Thank you Jerome! I will check this immediately!

As we are talking about this: I have cases where I use DQ skinning and turn on the Scaling Option and also connect the scaling group of the rig to the DQ Scale values of the skinCluster. Can you agree to this setup. I didn’t do this before, it seems to work fine, but maybe I can get your 2Cents while we are at it!

Again, thanks so much!

-p

Yes you can connect your global scaleX, Y and Z to the skin cluster scaling thing but that is not going to drastically change anything (I often leave it without connections) because this only interacts on each joints when there’s rotations involved (mainly) so unless you only have one single joint been the one scaled there is no point to do so (to my humble knowledge)

Thanks Jerome,

there is DQ Values (weight blended) on the hands, so when I rotate the fingers and scale the rig with the Scaling Option turned on and no connection of the rig scale group to the DQ scaling values, the fingers will break. When I connect the scaling values correctly, then it works fine. That’s why I opted for that solution.

As to the original problem of the post, you wouldn’t happen to easily know the fix for when not using “Separate joint structure” as I’m using it currently? I can see that “leg_L0_eff_loc” is getting the wrong scaling values from a scale constraint. I will need to dig deeper but wanted to ask or inform you anyhow.

Again! Thanks!
-p

Sorry, the connection was a decomposeMatrix, not a scaleConstraint. Disconnecting the scaling from the decompose and resetting scale values to 1 on “leg_L0_eff_loc” seems to work. Is that legit though? :slight_smile:

@pascalf For the DQ blend method yes that makes sens. Thanks for pointing it out.

For the separate joint structure this should work as well. I’ll need to talk with @Miquel to see if we implement this as a real fix in the components of Shifter or if I am missing something. I was just trying to provide you with a simple and fast solution. Whether it will hold up in animation I haven’t check enough to confirm this but I think it might :smiley:

This issue still seems to be around in mGear 3.2 using the default biped template.

If you scale the world_ctrl to 10, and set IK/FK between 0 and 1, the leg_L0_end_jnt gets a scale of 0.1, and the foot_L0_0_jnt gets a scale of 10. Visually the characters heel goes tiny, while the toes are in the correct position and scale.

I don’t think it has anything to do with skinning method, as it’s scale values on the actual joints that are incorrect.