Thursday, June 30, 2011

GSoC11 - Small Usability Tweaks

Over the past day, I've been working on a bunch of smaller tweaks aimed at improving the animation-management workflow. Here are a few (most visible) highlights in quick rapid-fire fashion...

Animation Editor Header Cleanup
1) Icons for the Mode menus
2) Datablock filters now hidden behind a "show more" button. They still apply, but are just not shown in the header by default anymore, since most people didn't seem to be using them that often
3) Shuffled order of filtering options so that group and F-Curve name filters are now closer to the start, since they are used more often.

Action Management from the Outliner
I bet many of you aren't aware that you can see the animation attached to some datablock (i.e. Object, Mesh, Materials, etc.) from the Outliner, in the traditional "Scene" modes. Well, take a look below:

And now it's just gotten sweeter, as you can now unlink actions from the Outliner in this way, making it easier to clear animation from objects without having to go through some clunky ways involving the NLA editor. You can also use this to make an action single user.

To use:
1) Simply find the "Animation" entries in the Outliner
2) RMB on the action entry underneath this. It should be the first child.
3) Select one of the options from the popup menu

Of course, this doesn't mean that I'm not looking into making it possible to deal with non object-level animation in the Action Editor. This is just another way that you can do this, which may be easier/nicer to do.

I was also thinking of extending this to allow changing the action, but I quickly found that doing so would end up being quite hacky still. Will have a second look tomorrow with a fresher head.


  1. Very nice on the outliner stuff - would be great to have that capability in an RMB menu in the fcurve editor/dopesheet etc too!

    As for extending changing the action, have a think about drag and drop too, maybe there might be a cool application for that?

    Re. the filters button I think it needs work... I don't think the
    [ (funnel) more... ]

    is very self-descriptive about what it does at all. "More what?" The funnel icon is not so communicative or often-used that people will immediately think "Ah, datablock filters!" when they see it. Why not just have:

    [ (icon) Filters ]
    [ (disclosure triangle icon or (+) icon) Filters ]

    The advantage of the latter is that it's used commonly around the interface to represent expanding UI elements, and won't be confused for something that actually performs an action.

  2. 1) RMB menu in anim editors - good idea. Will add that to my list.

    2) Drag and drop... I'm not too fond of it myself, by then again, a lot of people are. Part of the problem here is that you can only end up changing to actions that you can find around the place, which may not be quite as useful.

    3) About the filters button

    I really struggled with that getting something good there ;)

    Earlier, I tried something similar to [(icon) Filters], with [(funnel) by type...].

    I'll probably give your latter suggestion a try.

  3. Ever thought about merging the timeline, the graph editor and the action editor into one?
    They are basically the same thing, just on different levels.

  4. so let say, i have a character, lucy, try to kill her self with a knife, and then lewis came and tell her to stop and to drop the knife... so what i need todo is to key the influence of the "child of" constrained in the knife to the lucy left hand IK kontroler. and at certain frame to set the influence from one to zero, so i can move the knife freely to the floor without influenced by her left hand. (or at anytime later i can edit the key of those object)

    so to make the dope sheet less cluttered, i usually use that "only include channels relating to selected objects and data" tool. to view only lucy left hand IK controller and the influence within...

    the question is, is blender dopesheet or curve editor won't allow me to do that, or am i just doing it wrong ? :-|