Dev:Ref/Release Notes/2.75/Animation

From Blender Developer Wiki
Jump to: navigation, search

Blender 2.75: Animation

Animation improvements include: The new dependency graph which is the base needed for developing loads of neat features in the future (disabled by default), new features and updates aiming towards the planned workflow enhancements were made, the Action Editor got new features for unlinking Actions and to prevent unwanted/unintentional loss of data, strips in the NLA Editor now update their influence and time curves properly, new rigging tools, a bunch of Grease Pencil improvements, ...

Action Management

Following on from the initial stopgap measures introduced in 2.74, this release introduces some additional features and polish to flesh out the planned workflow enhancements (see the planning docs for more details about the plans).

Switch to Next/Previous Action Layer

With this feature (bcf1abb), it is now possible to quickly switch between different actions stacked/stashed on top of each other in the NLA Stack without having to go to the NLA Editor and doing a tab-select-tab dance, thus saving quite a few clicks. It was specifically designed with Game Animation / Action Library workflows in mind, but also helps layered animation workflows.

Simply click on the up/down arrow buttons (between the mode selector and datablock selector) to go to the action in the NLA Track above/below the NLA Strip being whose action is being tweaked in the Action Editor.


  • These still work when you're not editing the action used by a NLA Strip. If you're just animating a new action normally, it is possible to use the "down arrow" to temporarily jump down to the previous action without losing the new action you're working on, and then use the "up arrow" to get back to it once you're done checking the other action(s).
  • If there are multiple actions/strips on the same layer/track, then only the one closest to the current frame will be used.
  • The Next Layer/Previous Layer operators will take into account the settings to view/edit the action in isolation (i.e. Solo and NLA Muting). This was done to make it easier to preview different stashed actions.
    • If moving from a solo'd NLA Track to the active action, the NLA stack will be muted so that the action can be edited in isolation.
    • Likewise, if the NLA stack is muted when editing the action action, the NLA Track below it will be edited with solo enabled.
    • If switching between NLA Tracks, the solo status for the previous track will be transferred to the new track.

Safety Fixes for Browse Actions Dropdown (Action Editor)

The "browse" button in the Action Editor had a number of bugs, causing it to do "Evil Things (TM)". A number of fixes were made to fix these problems:

  • When in NLA tweakmode, the Browse menu would clobber the NLA state. Now, it exits tweakmode first, before trying to assign a new active action. (e4fbc8f)
  • When changing away from a newly created action, this action will now get stashed in the NLA to prevent it from being lost. Although no data loss will happen now in this case, it is still recommended that previewing / switching between actions should be done using the NLA (i.e. enter tweakmode on the action you wish to preview) or Up/Down buttons (Action Editor header) instead. (a0e1b65)

Safety Features for Unlinking Actions

Dedicated operators have been added for unlinking actions (X) from Animation Data/Animation Editors, in place of the generic datablock unlinking that used to be performed (53f4aa7). This allows us to perform a number of additional safety checks that provide some additional protections when unlinking actions.

These protections/conveniences are:

  • If the Action doesn't have any other users, there will now be a popup that data is going to get lost, with suggested ways to remedy this. It WILL NOT attempt to stash or retain that action in any way by itself.
  • When in Tweak Mode, it shouldn't be possible to unlink the active action. Now, the unlink button acts as a convenient way to exit tweak mode in such cases.

Hotkeys for Entering/Exiting Tweak Mode, Changing Editors, etc.

  • ⇧ Shift⇆ Tab in the NLA Editor will enter and exit tweakmode as usual, but will also make sure that the action can be edited in isolation (by flagging the NLA track that the action strip comes from as being "solo"). This is useful for editing stashed actions, without the rest of the NLA Stack interfering. (097801e 097801e)
  • (Other hotkeys for switching between editors while toggling tweakmode were planned, but have not been included in this release due to a lack of time)


NLA Strips - Local Keyframes for Time and Influence Controls

Fixed a long standing bug (T36385) with how NLA Strip Time and Influence properties were getting animated. (2b4ff14 - 7a1e729)


Now the keyframes for these settings are added to FCurves stored on the NLA Strips themselves, instead of these being FCurves included as part of the actions included in the NLA stack as before. The old setup did not work well as there were problems with lag, as well as it being unsuitable for use with a renderfarm. This was because by the time the NLA stack has been evaluated (and thus, the FCurves for these properties that were included in an action in that stack), it would already be far too late to alter how the NLA strip time/influence values were getting interpreted.

These can be found in the Dope Sheet/Graph Editors under the NLA Control Curves headings per datablock. These look like group channels, and they appear before all the groups/FCurves for that channel.

Backwards Compatibility
Unlike many other changes, it should be safe to round-trip these files into older versions of Blender without any data loss (since there was already data-level support for the per-strip control curves already).

Older versions of Blender will not be able to actually do anything with these control curves as there was a bug preventing that working. But, they should still be able to save the curves and leave them untouched.

As for files created in older versions, the existing animation should still work (albeit with the lag issues still). However, it will not be possible to add new keyframes into the F-Curves anymore by using I over the relevant NLA Strip properties. Doing that will only create keyframes in the control curves instead, and will make the old animation stop working.

NLA Editor

  • Name based filtering of animation channels works in the NLA Editor too now. Enable this by toggling the magnifying glass icon in the header, and type the text to filter by in the box beside it. This is case insensitive, and does not support regular expressions or wildcards. It checks the names of the tracks and strips for matches. (1e48880)

Animation Editors

  • Proportional editing support has been added in the graph and editor editors, they can be toggled by using O key
  • Clean keyframes has been moved to a menu in X key and is now operating only on selected keyframes.
  • Auto normalization feature now uses the full range of the editor.
  • View current frame operator added for action and graph editor by pressing 0 NumPad
  • Name-based filtering of animation channels now updates in realtime as you type (i.e. live search) (34d4ad3)
  • Double clicking on a channel selects the channel keyframes (3174cbe).


  • Add Armature Symmetrize tool, to make make armatures symmetrical, creating bones where necessary (156921114)
  • Armature/Pose select hierarchy now works more predictably, always following connected bones (881e05fc5)
  • The direction of bones created using the "Fill Bones" tool now point towards the active bone instead of the 3D cursor (c0be69f)


  • Several tweaks have been made to the "Propagate Pose" tool (in Blender since 2011!):
    • The "Selected Keyframes" mode will apply the pose on the selected bones to all selected keyframes, instead of Blender trying to guess which ones it should fix. (97f6bff)
    • It can now be found from the toolbar and by using AltP in Pose Mode. (838c350)
  • Numeric input now works for the Push, Relax, and Breakdowner tools (dad2850)

Dependency Graph


The new Dependency Graph has landed (bac735380189c63d)! This commit integrates the work done so far on the new dependency graph system, where goal was to replace legacy depsgraph with the new one, supporting loads of neat features like:

  • More granular dependency relation nature, which solves issues with fake cycles in the dependencies.
  • Move towards all-animatable, by better integration of drivers into the system.
  • Lay down some basis for upcoming copy-on-write, overrides and so on.

The new system is living side-by-side with the previous one and disabled by default, so nothing will become suddenly broken.

Using the new depsgraph
The way to enable new depsgraph is to pass `--enable-new-depsgraph` command line argument.

It's a bit early to consider the system production-ready, there are some TODOs and issues were discovered during the merge period, they'll be addressed ASAP. But it's important to merge, because it's the only way to attract artists to really start testing this system.

There are number of assorted documents related on the design of the new system:

There are also some user-related information online:

Grease Pencil

  • Added hotkeys for quickly showing/hiding layers (2cac2e7)
    • H hides the active layer
    • ⇧ ShiftH makes the active layer the only one visible
    • AltH makes all layers visible
  • A small and simple warning/indicator is now displayed in the top-right corner of editors when Stroke Edit Mode is enabled (f5adbcc). This makes it easier to tell what mode you're in.
  • Clicking outside the current viewport where you are drawing (e.g. on the properties panels, headers, or in another editor) will exit Continuous Drawing mode (be0dcd4). This makes it easier to work with just a pen, without needing to have a keyboard handy for pressing Escape to exit.
  • With the new depsgraph enabled (using the --enable-new-depsgraph option), it is possible to use drivers on Grease Pencil properties. This is useful, as it can be used to automatically adjust the stroke thickness as the camera moves through the scene.