Home Website Youtube GitHub

Bug with placement of joints IK chains

Hello,
I’m not sure if anyone has reported what I believe to be a bug before.

When using the following components:

chain_FK_spline_variable_IK_01

chain_IK_spline_variable_FK_01

chain_variable_IK_01

They don’t place the joints where the guides are (if we move them from their default position).

This is unlike when we use chain_02, for example, which does it correctly.

I’ve attached a screenshot of the four components (with the animation controls hidden) to show the difference.

Thanks

That is not a bug, that is a feature.
In the variable types your joints or controls are set based in the component settings


Hi Miquel,

Yes, I’ve used those options quite a few times to override the number of controls and joints when needed.

But that’s not what I’m referring to. If you look, once the guides (the yellow spheres) are moved to a different position from the default, in this case, I moved the first yellow guide (chain_C*_0_loc) one unit to the right, the joints (I don’t have Joint Override enabled, and even if I did) no longer align with the position of the locators or yellow spheres; instead, they interpolate. Therefore, we have no control over where we want the joints to be located.

It’s true that the FK and IK controls do align with the yellow locators, but the joints don’t.

For example
If we want to make a tail or a neck, formed by different pieces of different lengths and sizes (not a single surface, so it already works as is), I need to be able to choose the positioning of the joints, so that they rotate exactly from the pivot I want.

The animators wanted to animate using IK, but since they couldn’t precisely select the joint positions, I had to choose another component, chain_spring_gravity_01, which did allow for that precision, even though it didn’t have IK.

The behavior I would expect is the same as chain_02, for example, where the joints do coincide with the position of the locators or yellow spheres (first image of the screenshot).