Local axis animation and f-curves

Hi there!

I am animating for long time but maybe I was doing it wrong all the time.
I have notice that or I am doing something wrong or I miss something or blender is weird.
Imagine I have very simple rig like root ->body->arms and I want to animate body. When I do simple rotation around it’s local z axis on f-curses few more curves appear in all other axes! It makes t very hard to control when I have to move all axis at once. It’s weird because I have my viewport to show local axis and I animate using r+x+x to set to local (for example) so why f curves show global? Does it always show global but I have never noticed? I could swear I had once made it show locals… but I don’t remember what I have done.

Cheers!

Blender only records one set of curves for each object. It’s a little more complex for bones.

I think these curves are all relative to the bone’s rest position.

So how do I set rest position in local space?

When you edit the rest position in edit mode you are setting each bones 0,0,0 for location AND rotation, and it’s 1,1,1 for scaling.

I can be sure there are no fancy rots/locs for my bones. Or maybe I don’t know where to look.

What position are your bones in in Rest position?

I believe 0.0.0 but as I sad maybe I look in wrong place… Can you give me screenshot of where should I look?

In edit mode, the selected bone’s XYZ etc is relative to the armature object. In pose mode the bone’s ZXY etc is relative to it’s rest position.

(see transform panel to the right of the 3D view)

As far as I know, objects are in global space and bones are in local space in the graph editor. Same as Maya. I think that originally, the idea was keyframes establish the graph and not vice versa. So you may have a new request item to suggest.

Create a keyframe using the i key. Go to the Graph Editor and delete the unneeded channels.
Then next time you want to make another keyframe, use the i key again and select the Available set. It’ll only set keyframes on the existing channels rather than create new ones (like it does when you select the Rotation or LocRot / LocRotScale sets).

You can also use it with auto keyframing. In the Timeline editor, turn on the red circle button and the keys button, and select the Available set in the keying set field.
You can do something similar by selecting keying sets other than Available and turning on “Only Insert Available” in your User Preferences > Editing tab. Similar behavior.

This doesn’t work
I have done r+x+x to make bone loc around local x axis. I made it i+available and then I got keyframes on all axis… it sees it as global rotation. I don’t know what happened it works that way.

Read my post again bro, step by step. You’re missing one of them…

The first time you keyframe with the Rotation / LocRot / LocRotScale keying sets, it creates all channels, and I know that’s not what want.
But after this go to the Graph Editor and delete the unwanted channels (click to select, press X), then next time create keyframes using i + Available keying set, instead of Rotation or LocRot or LocRotScale keying sets.

But what if I want rotation in other channels but just in other part of animation ? : /

Use the magnifying glass filter for that. You can type just the channel you want to isolate like “X Location” and then that is what you will see in the graph editor.
You can restrict it to just the selected bone as well.

…and turn on the “Only Insert Needed” option from your User Preferences > Editing tab. From the docs, this option makes Blender “only insert keyframes if the value of the property is different.”.

Wow - there’s another neat Blender trick I didn’t know about!

Credits to the Character Animation Toolkit ($) course for pointing that setting out.

I don’t know where I am doing wrong…

One thing that is still trigering me it’s that when I add keyframe in y channel by hand in f-curve editor it rotates differently than when I do r+y+y… What I am doing wrong here?

Sir why when I do r+y+y bones move differently than when I add keyframe in graph editor in y axis and move it ?

What rotations type are you using quaternion, Euler?