relating bone position to F-curves

(daren) #1

Okay – so I have made due for a very long time, but this frustrates me. THe XYZ positions relate to the XYZ positions of the bone in 3D space how?

I mean – supposing I move the X-position F-curve in the F-curve editor – the corresponding bone moves in 3D space, but does not move in the X direction in either global, local or normal X-axis? It seems totally random

What is the relationship F-curve to 3D space?


(ridix) #2

I am not getting you. I make test key framed cube move around. F-curve is created. When I look at each curve and move the object around it is following what the curve is set at. Lets say I pick “Z Location” on F-curve. I need to set the 3D window to front view, so that Z movement can be seen as up down movement. Object movement follows exactly along the curve in Z.

(revolt_randy) #3

I really just wanna say, seriously??? :confused: You’ve did like how much work on your little short film project, and you’re asking this???

But I won’t say that… (I typed it instead :p)

Anyhow, create a single bone armature in a blank blender session and turn on axis display in the armature panel. Enter pose mode and insert a keyframe. Advance 10 frames, move the bone along the world’s z-axis, and insert a keyframe, advance 10 frames, move the bone along the world’s y-axis and set a keyframe. Now look at your curves, for the 1st 10 frames the bone’s y curve changed, even though you moved the bone on the world’s z-axis. For the next 10 frames, when you moved the bone on the world’s y-axis, either the bone’s x or z-axis curve changed. So the bone’s curves are for the bone’s axis, not the world’s axis.

Now advance 10 frames, rotate the bone 90 degrees and insert a keyframe, the curves don’t change. advance 10 frames, move the bone back along the world’s y-axis to the same spot as before you moved it on the world’s y-axis, and insert a keyframe. Advance 10 keyframes, move the bone back along the world’s z-axis to it’s starting point and insert a keyframe. Looking at the new keyframes, they are the opposite of the first ones. So rotation has no effect on the bone’s location curves.

Start over with a single bone armature, and rotate the tip of the bone so it’s even with the tail along the world’s x-axis, and repeat the above steps. Looking at the curves, you’ll notice that since the orientation of the bone in edit mode has changed, the curves now refelct those changes.

So the bone’s curves show the changes from the bone’s rest position according to the bone’s axis and not the world’s axis.

Seriously, I wasn’t 100% sure about this, so I did what I just typed, and figured it out. I would assume un-connected child bones location curves would be relative to their parents, but I haven’t tested that. Additionally, rotation values (if using euler rotation) is in radians, not degrees…

hope this helps,

(daren) #4

Revolt – No kidding, amazing how a dude can chug along and ignore the stuff under the hood.

You made the key statement – it’s relative to the rest position. This is where I got messed up. If a bone is rotated -say- 45 degrees – now adjusting the X F-curve goes kind of x and kind of y, – this I kind of knew

but what is confusing is that there is no way to correlate to any visual coordinate system – what I mean is that I can’t set the widget to ‘local’ and be able to see which direction corresponds to the F-curves, and none of the modes (local, gimbal, normal etc ) do either. So I have to guess – grab a curve and move it and see which direction the bone moves.

that was said terribly. Example: the bone moves too far to the ‘right’ in an action. Does this correspond to the x-axis or y-axis in terms of F-curves? So I turn on the grab widget, now I have a coordinate system on the bone. But setting to “normal” doesn’t tell me the ‘x’ direction as the F-curve interprets it. nor does setting to gimbal or local or any other. So it becomes a guess and check, sliding F-curves to make the character not go so far ‘right’. I was just hoping there was something in the 3D view that would indicate the translational coordinate system in the F-curves.

Anways , thanks for the help guys. I understand whats going on now, and I don’t think that there is a solution.