EDIT: I solved it by simply making smaller rotation increments with more keyframes. Would still be interesting to know the cause and if there's a better solution though.

So I'm trying to simply animate the rotation of a bone using the 3D cursor as a pivot. When I rotate it myself it works fine this way:

enter image description here

However when I animate it, the rotation ends up looking like this instead:

enter image description here

What's the cause of this and how can I fix it?


1 Answer 1


This is the way animation work when you add a keyframe you store the variables values (loc, Rot, Scale) at that time, and when you play the animation blender try to interpolate ( guess ) the values of the variable (between keyframes ) depending on the last and next value and the type of interpolation used (this can be seen in the F-curve )

enter image description here

so whatever happens between keyframes is lost and new value will be calculated

in this case of the bone

  • the location of the bone is the location of its head
  • the bone will rotate around its head

in this example i keyframed the first and last states only : enter image description here

the result motion :

the bone will follow straight path from the first pose to the last (blender can't regenerate the original motion from those two states only) while rotating around its head

enter image description here

To prevent this you can :

  • add more intermediate keyframes.
  • or use an empty as a parent at the center of rotation.
  • or use curve as guide for the motion

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .