Tuesday, June 21, 2011

GSoC11 - Animator Poll #3 - Filtering Option Defaults

Here's yet another poll, this time for more animation-orientated matters. Please keep responses here about the questions for this poll only (i.e. don't reply to a previous poll here at the same time), to make it easier for me to keep track of where things are. Cheers!

From various discussions I've been having with people, I've been hearing a few common themes relating to feelings that the default filtering options in the animation editors aren't quite right most of the time.

1. What do you mostly use DopeSheet vs Graph Editor to do? Do you use one over the other for certain workflow stages?

2. Are the channel filtering defaults in each of these editors appropriate to what you usually do? Or do you usually end up setting another set of defaults when animating most of the time? Why?

3. Do you frequently change the datablock filters, or is it just the selected/hidden/text-search that you end up using most? (Or perhaps none of these?)

4. In the Graph Editor, what are your preferred settings for keyframe display (from the View menu)?

5. Are the ways that the channels are open/closed by default appropriate for what you usually do? That is, do you usually end up expanding/collapsing things before starting work, or is it good the way it is?

Hopefully these are some helpful hints to think about.


  1. 1- I jump back and forth between both (shift f6 and shift f12) quite frequently, but I'll tend to be in graph editor more towards refinement stages (of character anim), and stay in stepped/linear in the beginning. for simple animation, I tend to only use the graph editor.

    2- I jump back and forth between filter selected / all, use the summaries a lot, etc. graph editor showing all is not terribly useful for complex scenes / animations, but is nice for simple ones where you're only animating a few things. but filter selected is more often on than off for me.

    3- haven't been using the datablock filters that much, probably since most my keys are in one or two datablocks anyway.

    4- show all, but I admit I like to hide handles sometimes. However, I still havent' gotten used to the combinations of options and find them unintuitive; that could just be me.

    5- I expand/ collapse a lot. I wish I could organize a bit more here.

  2. Well that´s a tought one without a graphical way to describe it but here it goes, in my animating workflow of a bone based character ...
    (very alike to what I´ve seen in Sintel workflow)

    1)As an animator, you should put the KEY POSES, and the desired rought timing, constant interpolation. I use The dopesheet for that. NO tinkering with Fcurves.
    2)As the overall timing gets right, I work the EXTREMES (dopesheet) and then, if everything goes right, I do some BREAKDOWNS. constant(for timing) linear (for good poses) and bezier(to see the flow) interpolation tests. (again dopesheet)
    3)Everything alright? yes? go next number, no? the scary Fcurves have hopefully the answer: use the bone ghost to see if there are nice ARCS, if not then you should out middle keys to make them...or manipulate the Fcurves to soften, roughten or retime certain channels. scary...specially quaternions in bones.
    4)rants and more... :)

    In 2.49, on Actions window > channel > grouping, you had chance to "synchronize to armature", it meant that every bone assigned to a bone colour group, had a coloured channel group in Actions window (e.g. Legs group (red), Arms group(yellow), Abdomen group(blue or whatever) so, you had not to filter anything, everything was on it´s own bone channel group, with the same colour codes of the armature;
    and the most awesome thing was that you could colapse any group, and keep the bone group channels in view that you were working on, so no filtering again...(at least the filtering was only by colapsing groups).
    5)Now, in 2.5+ I don´t see a filter for channels that have a key assigned to them, and showed them in my animation point of view logic, like leg/knee bone channels BELOW body/neck/head bone channels. I only see dozens of channels (of bones that control animation) that seem far away from one another in the list, and I would like to have them close together, in logic order.

    My solution? Maybe rename control bones to match a criteria, but this is the right way?... 2.49 seemed so make a little more sense to me...not to mention a lot easier to set up.

    So, my final thoughts are:
    a) Yes, 2.5+ animation system is far superior in most aspects to 2.49
    b) but, I humbly guess Coloured Bone Groups in Dopesheet are the way to go (at least in bone based animation).
    c) Not everything old is a failure.

    I can send you a nice 2.49 example of what I mean.
    As always, I don´t try to rant over your excellent work. I love to visit your site.
    Is extremely rare that a developer opens up to share and request for ideas.


  3. 1. I typically have both the dopesheet (or action editor) and the graph editor open simultaneously. I generally use the dopesheet/action editor more heavily than the graph editor. For me the graph editor comes into play for controlling ease-in-ease-out and as a visualization tool (e.g. seeing another representation of what I'm doing in the 3d view). Occasionally I use it for shifting the values of entire sections of keys together or flipping quat rotations. But typically I do most animation editing via dopesheet+3d view. There are no hard-and-fast rules, of course, but that is fairly typical for me.

    2. For the graph editor I usually filter by selection -- the kinds of editing I do in the graph editor are typically very local and do not require an overview of all curves; I just want to focus on the thing that I'm editing. With the dope sheet, I usually switch to the action editor as a kind of "filter". But it's a bit of a mis-use of that, obviously. None of the filtering options suit my typical use case for the dope sheet. I want to be able to specify complex arbitrary sets of data to be displayed persistently -- like filter by selection, but persistent instead of disappearing when I change my selection. Maybe a "display set" system, where the user could create named collections of properties that they can switch between viewing... (pipe dream).

    3. I rarely (if ever?) use the datablock filters. IMO, they mostly just clutter up the header, taking up space that could be used for other things, and forcing me to scroll the header to get to things I actually care about. By contrast, the selected/hidden/text-search filters are definitely useful.

    4. I usually turn on "Only Selected Keyframe Handles". Keeps the view from getting too cluttered and obscuring the actual curves. Sometimes I need to do handle selections that aren't possible in that mode, though, in which case I will disable that. I never have handles completely disabled.

    5. The current default is great for the dopesheet. However, in the graph editor I always expand it to list the individual fcurves.

  4. What do you mostly use DopeSheet vs Graph Editor to do? Do you use one over the other for certain workflow stages?

    We at Iloura always use Graph editor as it's the native workflow for the other 3D apps we use in house (max/maya). Most of the freelancers don't use the dope sheet as the graph editor is pretty much the industry standard (This is for film, not sure about games or other).

    Are the channel filtering defaults in each of these editors appropriate to what you usually do? Or do you usually end up setting another set of defaults when animating most of the time? Why?

    I always turn on most of the filtering. I only want to see selected the selected object’s transformation curves and then only the tangents of the currently selected curve. Generally there is too much clutter in the graph editor. It should be simple by default with more exposed when needed, not the other way around.

    Do you frequently change the datablock filters, or is it just the selected/hidden/text-search that you end up using most? (Or perhaps none of these?)


    In the Graph Editor, what are your preferred settings for keyframe display (from the View menu)?
    Only selected keyframe handles
    only selected curve keyframe
    show all handles
    show sliders

    Are the ways that the channels are open/closed by default appropriate for what you usually do? That is, do you usually end up expanding/collapsing things before starting work, or is it good the way it is?

    I close down everything.
    I still think the UI is confusing, what is a tick as opposed to a lock as opposed to an eyeball.
    If you turn off the eye on x and z and then turn off the parent eyeball (the one that toggles them all) it should restore your choice, that is, all off or back on the way you toggled it with x and z off.
    Need a photoshop style click and swipe to tun off the icons. There are so many channels present, I'd like to click one off and swipe the rest off as you do with layers in photoshop.

    Glenn Melenhorst

  5. @Glenn:
    "Most of the freelancers don't use the dope sheet as the graph editor is pretty much the industry standard (This is for film, not sure about games or other)."

    That is typical in the games industry as well. Most animators are never taught to use the dopesheet, and considering what a buggy useless mess it is in Maya (not sure about Max) that's totally understandable.

    It's a shame, though, because well implemented dopesheets are quite useful, especially in the blocking/breakdown phases, or any time that you want to be able to see at a glance what is keyed on what frames.

  6. 1: I most use the DopeSheet for creating and moving/duplicating keyframes, and do more ALL of my timing of keyframes in the DopeSheet. I do all of my "curves-tweaking" in the Graph Editor, only occasionally adding/deleting keyframes in the Graph Editor.

    2: More than often, I stick with the filtering defaults

    3: I too use mostly selected/hidden/text-search for the datablock filters

    4: I do prefer "fancy drawing", but find, on rigs with many bones, that it brings my very powerful system down from 30fps for animation preview, to around 15fps, or lower. So I must almost always turn OFF fancy drawing, so I can retain full FPS display on animation previews(in the editor windows). I also dont usually use the sliders, so I turn them off. I usually enable "show all handles".

    5: Due to the MANY parameters of the complex rigs that I animate. I almost always find myself closing most or all of the individual blocks containing the individual X,Y,Z channels, its SO VERY CLUTTERED on an even mildly-complex rig. It just becomes a mess with a large number of bones, especially any rig with a facial rig, or dual ik/fk rigs. Sometimes, I think it would be nice if the interface could automatically(initially speaking) only expose the individual x,y,z channels for bones that are proportionally(for the scale of the rig) not close(within a certain proportional range) to at least 2 other bones. So the bigger bones in a character rig might be initially expose/expanded, but not the 15 bones in a facial rig.

    a few extra thoughts:

    1#: I'd like to be able to assign groups for bones that could be revealed/hidden or using a single click of a custom group. Even allowing for the same bone to be in multiple groups. Perhaps similar to the way groups were added to the outliner in 2.5x. Keying sets might even be able to be the source for such a custom datablock set. If the search field properly allow for the searching of booleans, or groups of terms, this wouldn't be an issue for me. I wouldn't have to constantly turn on "Only Selected Keyframe Handles" & "only selected curve keyframe" if such an ability was built in(clearing up the inevitable clutter).

    2#: It would be very helpful if some kind of popup would appear showing the object/bone that the currently HIGHLIGHTED curve is linked to. By this I mean not to SELECT the curve, just mouseOver it to see a visual display of the object/bone(s) that curve is linked to; then with a right click I can select that curve(as is the case currently). Again, I think that anything that can bring some order to the visual chaos of the B25 graph-editor display, for even a semi-complex rig, is VERY welcome. Thanks for allow us all here to share our thoughts, and offer input.

  7. I'm pretty happy with the current state of the dopesheet and graph editor.

    I'm a novice animator here.

    The dopesheet is great, but it could be handy to incorporate some of that info into the timeline itself.

    By this I mean that as I am blocking in poses it would be nice to see where the important poses are.
    Maybe the tick could be thicker if more objects are animated on that frame.

    Likewise it might be nice to have a similar feature in the summary portion of the dopesheet.

    I am constantly using the dopesheet for the current project I am working on. The whole thing is incredibly efficient - but could still use some improvements.

    I'm finding that I am only really using the graph editor to clean up my curves.

    I mainly use the default view. But I find displaying only selected handles is less cluttered. The Fancy Drawing setting seems to do very little if anything at all.
    And pressing N seems buggy and doesn't always bring up the properties of the keyframe.

    Who cares about industry settings?
    Most animators do what they want anyways to get the job done I'v noticed. And since the industry isn't going to embrace blender anytime soon as long as its in autodesk's pocket, why be concerned what other apps do?
    Blender should aim to do it better and more intuitively.

  8. Most animation I've done in there is more technical/camera/fx type animation, so rarely use the dopesheet. In fact the main reason for jumping in there is to switch to action editor in order to unlink an action (it's hidden and inconvenient, and there should be more ways to do this)

    Default filters are usually pretty good for the stuff I've done.

    Default viewing options are usually fine for me (btw 'fancy drawing' is not a very communicative title at all. 'high quality display' or something is better. to most people drawing is what you do on a piece of paper.)

    Unrelated comments:

    One thing that I have found is that either in the dopesheet or the curve editor, apart from being very visually cluttered and hard to find things in general, it's also very hard to find your selected/active/objects that you're working on.

    For many non-character animation tasks, it's really really handy to have all the objects visible there in the list, but it's very difficult to find the selected ones that you're interested in - you have to keep scrolling the list to try and find it. IMO it would be great if the selected objects were highlighted in a better way - at the moment it's the curves/channels themselves that get highlighted, and while I understand there needs to be some kind of feedback for their selection state I wonder if it needs to be so strong.

    Are people often scrolling that list looking for the selected animation channels? I don't know but in my experience I usually end up with a whole heap of miscellaneous channels selected on the left, until the next time I need to do something with a channel, when I select and act upon it immediately. It's not something I need to be able to find easily when scrolling that list, and often ends up distracting more than helping me.

  9. With some danger to reiterate things already said:

    1. I would LOVE to be able to select and move keyframes in the timeline (and duplicate them- for me that is only MAX animation feature worth mentioning)

    2. It would be nice to be able to select visibility of the bone group (and/or multiple bone groups in graph editor)

    3. I would love to be able to select only translations or rotations with a single click on the appropriate (now hypothetical ;) ) button in the graph editor.

    4. I would like to be able to make all the bones in the rig with the euler rotations at once (and not on per bone basis)

  10. Mostly covered by others, but here goes...

    I use dopesheet for blocking and timing... would find it useful to have a very simplistic way of setting ease in/out and breaking continuity from here!

    Not sure what others think, but Messiah had a nice feature: you could "non destructively" make all keyframes "stepped"... the actual keys would maintain their interpolation types, just the interpolation was overridden by the stepped type. Very useful for checking blocking!

    I also find it strange that I have to switch to teh action editor to change action... actions should be manageable in more places!

    For filters, more often than not "selected" is always on! I do sometimes organise my scene so I can do a crude filter by turning scene layers on and off as well though!

  11. 1. I use the dopesheet mostly as it's really easy to alter the timing of your work by just dragging around little diamonds. I use it all the way up until I need to start polishing a curve or sometimes I use the graph editor to do a baseline curve. I swap between dopesheet and graph editor ,rarely do I have them both open at the same time. I still use the action editor, for you know editing actions. But I'm not sure it needs to be seperate so much.

    2. Not sure about it.

    3. No idea what this is, or how to use it.

    4. I'm unsure as to why you are forced to use "Show all handles" else the other options "only selected keyframe handles" and "only selected curve handles" don't work. So I check them all. Everything else is default there. I do however hide all but the selected curves, as showing me all of my curves is useless.

    5. I expand as needed. Usually I group things by my bone groups and keep everything collapsed as much as possible until I need to open it up.

  12. I believe many people would be surprised at how many film animators do so much of their work in the timeline alone - till very late in a shot.

    Such a shame not to be able to do this type of re-timing of selected items within the timeline without requiring the real-estate, and importantly, the "left brain" toll of a larger editor.

    Especially considering how well Blender's auto-tangents work.