I have recently implemented skeleton animation in my custom engine by following this tutorial. I made several improvements based on that, and was able to load/play simple humanoid animations without problem, like the final output in that link. Now I'm very excited to try out more animations, unfortunately it doesn't work all the time. For example, this model comes with a small sample animation, I can correctly play the legs, arms, necks, fingers and eyes, everything. But if I try some MMD-style animations (exported from Blender as FBX), or those downloaded from Mixamo, none of them works, the animation is still playing but looks very weird, the legs/feet are not moving when they are supposed to, instead the hips bone is rotating (luckily the mesh is not broken though).
After some trials and errors, I found such weirdness might be related to inverse kinematics, because when I play the same animation in Blender but have all IK disabled, it looks just like how it would appear in my own engine. It seems that both Mixamo and Blender have built-in IK support, but I don't know what to do in my case, do I need to implement IK from scratch? Or is there a way to "bake" IK into the animation? Perhaps I'm not using the correct import settings? Does Assimp have an import flag specific to this? I'm still not 100% sure it's caused by IK, just want to know if other people have encountered the same issue, could anyone give me some hints as to what might be the cause?