Apparently dragging the character with the inspector causes the character to not move if both IK pins are active (even if not fully pinned), but when moving it through code then it works as expected. So i guess the issue is solved.
It looks a fair bit off but i'm sure i'll be able to improve it.
Still, i'm curious as to why changing the solver's position or positionOffset fields didn't affect the feet positions at all.
I guess i was right to be worried. :P
I've followed your suggestion and the core idea works: the animator has 2 animated floats that determine "how pinned" each foot is. 0 means unpinned, 1 means fully pinned.
Whenever a float reaches a value of 1 i read that foot's position and that becomes the IK target.
If instead of using a curve i only set those values to 0 or 1 then the leg that is "catching up" will teleport in order to match the animation, which looks unpleasant.
If both floats are above 0, then the character is unable to move as it can't drag any limb, so i can't "smooth a limb" while the other is pinned.
If i apply smoothing before the other limb is pinned, then it'll cause both legs to be raised at the same time.
So instead of setting the IK weight, i've tried to lerp the IK position while keeping a weight of 1.
If i set the target to the foot's position every frame, then the legs won't move (as i'm reading the effective foot position instead of the animation's foot position).
If i set the FBBIK target as the foot's transform itself, then it will always match the animation regardless of IK weight.
Additionally, using the solver's .position and .positionOffset fields won't allow me to change how the solver behaves (i'm doing this in the update loop).
For example if i set the offset every frame to (100000,0,0) i see absolutely no difference, likewise if i set the position to the same value nothing changes.
So the questions are:
How can i read where the foot is supposed to be in order to match the animation?
Why can't i change the position or the positionOffset if the IK target of the limb is the transform of the foot?