h3ro said:
If I want the foot to be fixed, and the parent proportions change, I need to update same of the rotations as well for the foot to be able to stand still?
correct, i did mention a few posts earlier that u may have to adjust some rotations, and u can do so by adjusting the angles of rotation as u showed or earlier, OR if your bone rotations are relative to parent, you can try this in their local spaces:
// pseudo, right-to-left multiplication
new.rotation = inverse(target_bone.rotation) * source_bone.rotation;
where
source_bone.rotation is the quaternion in the source skel bind pose when no animation is applied to the source skel
target_bone.rotation is the quaternion in the target skel bind pose when no animation is applied to the target skel
new.rotation is the quaternion that cancels orientation differences in bind poses when no animation is applied to any of them
once u get this, then u animate as usual to get animated.rotation from your system:
animated.rotation = … get it from your animation calculation in the current time t
then u can apply animated.rotation to new.rotation to get the final rotation:
final.rotation = animated.rotation * new.rotation
right, depending on your maths, u may have to invert source for target …
remember another thing is you can create a quat from angle and axis:
// pseudo
quat q(ratio * angle, Axis(a,b,c));
there u go, not sure what system you got, but this is plenty to play with…
you're not too far from it;
see how it goes ?