If you haven’t heard of soft IK before, please read http://www.softimageblog.com/archives/108. Andy Nicholas explains the problem very clearly. Essentially it adds a “soft” distance and slow down the movement causing the pop with a formula. Andy showed this in Softimage but the idea works anywhere.
Below are some lines of expression showing the ideas in maya. They are running node-based in my final rig but making the setup works in expression first is faster for me.
// ----------------------------------------------------------- // $d : current distance betw ends // $D : initial distance betw ends // $S : IK softness // // softJ_start & softJ_end // a 2-joint chain with it's IK parented under e.g. foot ctrl // the main IK is point constrainted to softJ_end // ----------------------------------------------------------- float $S = ctrl.soft; float $D_soft = $D - $S; float $new_d = $d; if ( $d > $D_soft ) { float $x = $d - $D_soft; $new_d = $D_soft + $S *( 1-exp(-$x) ); } softJ_end.ty = $new_d;