Animation Improvements for 2.8


#1

These are a list of things that I think could greatly benefit user experience for animation purposes, they’re in no particular order, but just things that I’ve been having trouble with before in 2.79, and some that just appeared in 2.8.

Timeline / Dopesheet / Grease Pencil… :

As of now we actually have 7 different “modes” under the dopesheet

…but none of these can see all the keyframes at the same time, something that makes handling all the keyframes on the scene a headache, at least one of these modes (dopesheet probably) should be able to be used to display and move all the keyframes at the same time.

Auto Keyframe:

Auto Keyframe should only keyframe attributes / properties that have been keyed by hand already:

Example: I have a cube that has no keyframes, and I have auto keyframe on, it shouldn’t add keyframes on it no matter how much i move it, that way we avoid having keyframes on everything which is a common problem. Only after I manually hit I or add a keyframe through an attribute that and only that property will key further keyframes automatically.

Snapping:

Snap the frame indicator to the keys and or markers when you drag it by holding control, kind of like what happens when you drag the frame indicator in the VSE by hitting ctrl…

And same thing vice versa if im moving a keyframe hitting ctrl should allow it to snap to the frame indicator and the markers.

*Should work in the graph editor, dope sheet and every timeline type of editor.

Mute Keys:

Ability to "MUTE" keyframes making them be skipped from evaluation / interpolation… (like when you mute a node in the node editor.)

Channel Filtering:

  • When you select a channel isolate it (turn the rest off) and frame it.
  • There isn’t a quick way to also do this for several selected objects, example I have 10 objects and I only want to see the Y translate of all of them, the closest now is to use the magnifier glass and write “x eul…”

Channel Pinning:

Pinning independent Channels not only the whole group and also channel pinning should work in the dope sheet as it does in the graph editor.

Value Input:

Be able to input or have the active keyframe input work for several keyframes at the same time instead of just the active one.

Curve Modifiers:

As with value input it would be incredibly nice that modifiers would get modified together if multiple channels containing modifiers with the same name are selected.

This would also be a lifesaver if it were true for driver’s modifiers and drivers variables.

Smart next / previous keyframe:

When using next and previous keyframe jump only on the keys of the selected channel, curve, and if no key is selected jump between keyframes of all of the selected object / objects / armature / bones.

“Filters” option:

Currently there is a big button “filters” in the graph editors header, though its pretty unuseful and misleading for the most part because it filters keyframes from object data and not object types: so the expected behaviour is that if I uncheck the bulb button, it will not show me the keys related to my moving lamps, though it does because that’s transform data, so even if I do not disagree that all of these options exist, I think it would be great to have filtering of animation by object type and it would make much more sense, so for instance you could show only geo keyframes (no matter if the keyframe are in its materials, or textures or modifiers, etc.)

Snap Keys Menu (Shift S):

Flatten handles: to me doesn’t really fit here, and it’s the only actually very useful option, maybe it should find it space under the V.

The menu is missing “cursor from selection”, “snap to cursor y” and “snap to cursor x” from the view properties in the n panel, and we could get rid of that entire tab… options that completely make sense to have in this hotkey as you’d find also in the 3d Viewport,

Other Channel things :

Problem: When you set a key in location vía “ I ”, you get in the channels a “group” named “rotation” under which the rotation channels are grouped, but then if you go and set a key by hovering on the translation channels (in the transform panel under the n) and hitting “I” you get the translations with no such group, all this leads to confusion and disorganization in the graph editor and dopesheet.

Possible solution: Should it just create the transforms under the actions with no grouping, unless you manually group channels?.

“make cyclic / clear cyclic”

Problem:

  1. You have the option to do this in the dopesheet (same hotkeys as in graph editor, shift E), but it doesnt work, it does nothing… this is probably just a bug but it’s been there forever.
  2. Very many times you make cyclic a lot of channels at the same time, but if you want to make any changes then you have to go copy and paste one by one the modifier to each channel you want to affect.

Possible solution to number 2:

Be able to modify curve modifiers on several curves at the same time.

Keyframe adding.

Problem: when you add a keyframe it changes the shape of the curve in some cases as portrayed in the following images:

A: + B:

Result:

Breakdowner for Objects… Self Explanatory (?)

Breakdowner for graph editor that can create new keys and or breakdown and handle the selected keys.

Like this:

Timeline:

the timeline in blender "only" supports up to 1048574 frames, but the space for the frames in the start, end and current frame is there all the time yet nobody ever goes above 4 digits in real life (i mean for the most part), so maybe the start, end and current frame number could be shrunk to the 4 or 5 digit mark and if the number gets bigger than that grow it that way we’ll take waaay less space in the header.

Graph Editor:

Some tidy up could be done to free space in the header and put stuff in a more logical way:

I stole this screenshot from this proposal, out if it all i think is the only part that is still relevant from it.

Waveform:

Have waveform drawing in the timeline / dopesheet

It would be nice to be able to either have a mixdown of all the audio in the vse to display the waveforms in the dopesheet and or timeline for when doing character dialogue or hand animation to the rhythm of the music, if this was achieved then the process would be much less of a hassle.

Just as a side note:

Here is Alan Camilo’s animbot tools a set of tools for maya that I currently use, and I can say that i don’t use it on a daily basis I use it on a minute by minute basis, it makes the process a lot faster, but definitely many of these could be implemented as an addon since are really animator focused… check it out.

http://www.animbot.ca/

Tools from animbot/atools I’d like to see in blender:

http://www.animbot.ca/help/#share_keys -

http://www.animbot.ca/help/#easein_out -

http://www.animbot.ca/help/#smooth_rough -

http://www.animbot.ca/help/#pull_push -

http://www.animbot.ca/help/#scale_from_frame -

http://www.animbot.ca/help/#scale_from_neighbor_left -

http://www.animbot.ca/help/#scale_from_neighbor_right -

http://www.animbot.ca/help/#world_space - for the breakdowner which is similar to the tweener

http://www.animbot.ca/help/#align_selected -

http://www.animbot.ca/help/#fake_constrain -

http://www.animbot.ca/help/#smart_goto_frame_keyframe -


#2

thank you for making this list here and i’ll add a simple one, possibility to select the curve itself which selects the channel’s keys.


#3

yes, i totally miss that !


#4

Ok, leave it here too.
My proposals:

  1. Keyframe types on curves should be added in GraphEditor https://blender.community/c/rightclickselect/6kcbbc/ …

  2. Stacked mode for curves in Graph Editor https://blender.community/c/rightclickselect/4jbbbc/ …

  3. Retiming video in Graph Editor https://blender.community/c/rightclickselect/Gkcbbc/ …

  4. Switching between graph editor and dopesheet by a hotkey. there was addon for switching it but it would be nice to have this function built-in.

It looks like #1 and #4 are not hard to implement


#5

regarding your point 4.
maybe should be like in the 3D view, with a piemenu to quickly jump to the different editors.


#6

Nope, pie menus are not so fast and comfortable. You can test this addon in 2.79. https://github.com/Pullusb/TapTapSwap It is sooooooooooo handy.


#7

Yes i know a one key tap will be always faster than a quick pie menu, but a pie menu can hold 8 related items to move quickly too instead of just 2.
so i think sacrificing a little speed for the use of just one hotkey is a good compromise.


#8

It is ok to have pie-menu for all editors, will be useful enough, but when you splining or polishing you mostly use only two of them, GE and Dopesheet, so I think possibility to switch between them is ‘must have’ tool anyway. Switcher+additional piemenu looks like good solution


#9

Agreed!
maybe just with tab to go between “graph editor and dopesheet” and then ctrl tab to get the pie menu to swich to the other less important ones.


#10

also this should be fixed.


#11

note the default color of the channel group, in the worse case scenario group colors should be off by default, they arent useful at all.


#12

This one looks pretty handy too - https://blender.community/c/rightclickselect/0kcbbc/at-least-animation-editors-overlapping-option


#13

only as long as the impact in performance is minimum.


#14

Akeytsu style :heart:


#15

#4 is done, officially.


#16

yes , i heard !, so glad!


#17

Feedback:
It’s impossible to select two side handles of two different keyframes at the same time, e.g: if you want to perform the same transform operation on both sides of two different keyframes at the same time.
You can either select both keyframes entirely (which selects both side handles) or one single side handle of a single keyframe.

This is a very old papercut… but I guess it would be something for Alexander Gavrilov to check, since he is the one doing sort of an “animation revamp” on Blender right now.

Another related papercut is the impossibility of scrubbing the timeline on the graph editor (now with right click) without moving the “horizontal bar” (Cursor Y) as well, since you must click on the editor active window, which then repositions both bars at the click location. Would be good to be able to “Lock” the horizontal bar at a certain value, if one wishes to (sometimes we animators use the horizontal bar to do transforms on keyframes based on it)

It’s also really sad that we cannot add drivers (and keyframes?) to curve’s keyframes values and it’s modifiers options. For example, you cannot drive the left handle value of a keyframe curve, or the Scale factor of it’s noise modifier, or it’s Restrict Range start and end values. But this would be a proposal, not a papercut. Maybe this could be part of the Everything Nodes, since I guess driver relations will be part of this project…


#18

yes adding drivers to those things doesnt make any sense unless it was for an interactive setup, but now that we dont have an interactive module it makes 0 sense.
All the rest you mentioned i agree…


#19

Looch, by “interactive” mode do you mean the BGE?
I’m a rigger and animator, and I don’t use drivers only for logicbricks-driven stuff… I have already felt the need sometimes to create dynamic rigs that used drivers that required changes to an animation curve, or a curve modifier value. Some rigs require the viewport to be in playback mode for the rig to be affected, this is true, but it doesn’t necessarily requires BGE or logic bricks to achieve dynamic behavior. That’s why I mentioned such points.

For example, imagine the following rig:
A character will walk on a very cold scenario (Spring Project? :wink:) …For that, I want to create a controller for his uncontrollable shakiness. It will have a slider for “shakiness”, which goes from 0 to 1. The main control bones of the character have a Noise modifier on it’s X/Y location curves. This ‘custom properties’ slider has a driver that controls the Strenght of the Noise Modifier. When it’s at 0, the Noise intensity on the curves is 0. When increasing it up to 1, it increases the strenght of the Noise modifier to 1, making all the bones of the character shake.

This is impossible right now, because I can’t add drivers or keyframes directly to the curve’s noise modifiers (or any modifiers) values.

An example for the curves keyframe’s handles:
Imagine an object on top of a table with an animation of it falling to the ground below. I want to have a slider that controls how long the object will take to accelerate to the ground (fastest way to do it would be to change the top keyframe curve handle).

In both cases, there are some obscure solutions. It could be python… or Animation Nodes… or using multiple helper-objects and complex math for the drivers expressions.
But the fact is: Blender has a built-in behavior of allowing keyframing and driving MOST of it’s fields. This restrictive behavior on the graph editor goes against the behavior found everywhere else on the program, which is a behavior of freedom: if you want to, you can.
And even though sometimes we think something has no practical use, I guarantee you that some user somewhere will find a use for it and be frustrated that he can’t do it, and must instead resort to learning code or complex math.


#20

oh yeah once i remember trying to do something like that too, absolutelly true.