Sorry for the late reply. Before starting you should know that there are a few ways to implement platformer physics. Looking at your code, I'm not really sure what approach you're using, but read more about a similar subject here (kinematic vs dynamic): https://forum.goocreate.com/t/camera-collision-not-working/154/4
Rigid bodies never follow animations. Not colliders either. They don't follow anything actually, unless you run
ctx.entity.rigidBodyComponent.setPosition(position) (but that ruins the simulation, so you should avoid that). What rigid bodies do is taking velocities and forces as input and produce position as output. Then they update the position and orientation of the entity they sit on. So, what you probably should do is set the velocity on the rigid body when jumping, and then let the body do its magic. You probably have to adjust the animation so that it doesn't add any up/down movement (the rigid body does that movement already).
I'm not sure what you're doing with the quaternions, but you should probably avoid them. Instead, put the player mesh in an own entity, as a child to the rigid body entity. To rotate the player, just set the rotation of the child entity:
Another suggestion: lock the rotation and Z position of the player rigid body by doing this:
ctx.entity.rigidBodyComponent.constraints = goo.RigidBodyComponent.FREEZE_ROTATION | goo.RigidBodyComponent.FREEZE_POSITION_Z;
This way the player won't drift away from the 2D XY plane, and it won't rotate