Action Editor: Stash Action Operator

This operator (the snowflake icon, beside the pushdown button on the Action Editor
header) adds the currently active action to the NLA stack in a muted track, then
creates + loads a new action ready to be populated with new keyframes.
Since the NLA is being used to hang on to all the actions here, no actions are
getting lost.

Usage Notes (there will be some additional tweaks to make this nicer):
* To preview different actions that have been "stashed", simply click the "Solo"
  toggle for the track containing the action in question. Playing back the NLA will
  now show the stashed track
* To edit a previously stashed action - simply enter tweakmode on it in the NLA
  while the "Solo" toggle is enabled.

Todo:
* Add some more operators here to polish up the Action <-> NLA bridge to make the
  layered and stash workflows smoother. Examples include some tools to easily
  switch between the different actions layers in the stack, as well as making it
  easier to get out of tweakmode (and sync up the action lengths)

* Review and cleanup the behaviour of the "new" operator here to avoid the old
  problems that users were running into

* After the next release - Implement the full Action Libraries functionality, with
  ways to bridge the stashed strips over to a full-blown library.
This commit is contained in:
2015-02-28 03:32:13 +13:00
parent 7af4690295
commit ac30378e3e
6 changed files with 124 additions and 2 deletions

View File

@@ -126,7 +126,7 @@ class DOPESHEET_HT_header(Header):
row = layout.row(align=True)
row.operator("action.push_down", text="", icon='NLA_PUSHDOWN')
row.operator("action.push_down", text="", icon='FREEZE') # XXX: "stash"
row.operator("action.stash", text="", icon='FREEZE')
# Grease Pencil mode doesn't need snapping, as it's frame-aligned only
if st.mode != 'GPENCIL':