[Sorry for the long post, I tried to keep it short but that's the best I was able to do] I tried to make the question as simple as I could but I think it will be clearer with an exemple (animators familiar with 3ds Max might find it easier to undersand because that's something Max does by default):
Imagine you have an object, a cube, and you animated the position (location) of that cube. So you have, for exemple, 4 keyframes:
- Frame zero: 0,0,0
- Frame five: 0,5,5
- Frame ten: 5,10,5
- Frame fifteen: 5,10,10
After you set the keyframes you realized you needed the cube to start not at 0,0,0, but some other location (like 100,100,100). But you still want the animation to play the same relative to the initial location, regardless of where that initial location is. In 3ds Max, you just turn off auto-keyframing, and then you can simply move the cube to the new starting location and the animation will update relative to the change you made, without setting any new keyframes. So, with auto-keyframing turned off, you go to frame zero and move your cube to the desired starting location, for exemple 100,100,100. Then the animation will be:
- Frame zero: 100,100,100
- Frame five: 100,105,105
- Frame ten: 105,110,105
- Frame fifteen: 105,110,110
The animation keeps exactly the same, but offset by the change you made when auto-keyframing was off.
As you all know, Blender doesn't work that way: if you try to move an animated object with auto-keyframing turned off and you don't set the keyframe, the change just doesn't 'take' and the object's location reverts back to where it was in the animation. If you set the keyframe, the location will be update only in that keyframe, but other keyframes won't be updated relative to this new location. I know I can parent the cube to an empty and move the empty, and that works for a simple animation such as the one I described, but now imagine the cube is actually a bone in a complex bone chain, and you are animating the rotation instead of the location. It's already parented to other bones, and parenting it to something else will break the armature.
So that's the question: is there a way to make a single change that 'offsets' the values of all the keyframes in the animation?