What exactly are in the graph editor

I just hope there is a simple answer to clear things up, I know the basics, what i can’t understand is why the x y z locations are not working as I would expect.
Given for example the hand ik controller of the rigify rig: the graph values are not correspond to nor the global nor the local orientation of the bone.

moving on either the local y or on the global z (which are about the same orientation) results that on the graph the x value will change the most…
but what is also strange that actually all 3 graph values are changing, no matter what… but mostly the x…

The torso bone is also strange… lowering it in space results in higher value on the graph…

these are coordinates from bone’s individual space. you can see them via
enabling “Axes” checkbox in Armature settings (Display section)

bone-axises

*edit. I have realized that the x y z values always represent the resting position’s directions. So even if the bones get rotated, thus the local axes will aim in different directions the graph values still change according to the rest position.

Correct, that’s how it works. Think about it, if local matrix was changed along with the bone’s rotation you wouldn’t be able to trust your location keyframes, because they would mean something entirely different if the bone was rotated just a little bit.

Now I’m confused again :slight_smile:
I can not explain this behavior. in the pic I moved the clavicle in global Z, otherwise everything is in rest position. Yet on the graph the Y value moved the most, which corresponds to the global X…
So it’s not the globalb axis, not the rest pose’s local… what is it then? Not just the shoulder, but everybone is strange including the pelvis which serves as root.

seems this particular bone location is tracked in parent bone space
(chest bone) which is oriented Y up. try moving parent bone,
the values for child bone in graph should remain same.

You are rigth, it does use the parent bone space… good to know how these thing works…

(btw : this whole question came up when i tried to move the location transforms from the pelvis to my root bone. it was suggested that I just copy the graph values from the pelvis to the root and it works… even though they have completely different resting position… now it seems it worked because the pelvis had the values in its parent, the root’s space… that makes sense…)

The math for kinematics is actually kind of complicated – each bone works in its local space and the various rotation matrices (quats, actually …) are combined to produce the final effect in world-space.