Blender Git Loki
Git Commits -> Revision 5c21c17
Revision 5c21c17 by Joshua Leung (master) June 5, 2009, 05:18 (GMT) |
NLA SoC: Operators for 'tweaking' strip actions (TAB-Key for both) In this commit, I've introduced the mechanism by which actions already referenced by strips used in the NLA can be edited (or 'tweaked'). To use, simply select a strip you wish to edit, and hit that TAB key to start tweaking that strip's action, and hit TAB again once you're done. What happens when you enter 'tweak mode': 1) The action of the active strip temporarily becomes the 'active action' of the AnimData block. You are now able to edit this in one of the Animation Editors (DopeSheet/Action, Graph Editors) as per normal (i.e. sliding keyframes around, inserting keyframes, etc.). The 'action-line' will therefore get drawn immediately above the active track containing the active strip, so that it's clear that that's what we're editing. 2) All the NLA-tracks (and all the strips within them) that occur after the track that the active strip lived in get disabled while you're in tweakmode. This is equivalent to travelling back to an earlier state in a construction history stack. 3) The active NLA track also gets disabled while in tweakmode, since it would otherwise interfere with the correct functioning of the tweaking for the action of interest. 4) The 'real' active action (i.e. the one displaced by the active strip's action) gets put into temp storage, and will be restored after you exit tweakmode. 5) Any strips which also reference the action being tweaked will get highlighted in red shading to indicate that you may be making some changes to the action which you don't really want to make for the other users too. Please note though, that this is only a rough prototype of this functionality, with some niceties still to come. i.e.: * NLA-tracks after the active track should still get drawn above the 'tweaking action line', but perhaps with different appearance? * Various tools will still need awareness of this to prevent corrupting operations from taking place. How to proceed is still undecided... * When exiting tweak-mode, the strip the action came from still needs some form of syncing with the modified action... there are a few tricky issues here that will need to be solved * Evaluation code doesn't totally take this into account yet... --- Also, fixed a number of bugs with various code (notably selection, and also a few drawing bugs) |
Commit Details:
Full Hash: 5c21c176fa0a571f3ba47af8ad2c7906a5dc375f
SVN Revision: 20646
Parent Commit: f6cac5b
Lines Changed: +514, -54
19 Modified Paths:
/source/blender/blenkernel/BKE_nla.h (+4, -0) (Diff)
/source/blender/blenkernel/intern/anim_sys.c (+10, -5) (Diff)
/source/blender/blenkernel/intern/nla.c (+100, -0) (Diff)
/source/blender/editors/animation/anim_channels.c (+5, -7) (Diff)
/source/blender/editors/animation/anim_filter.c (+113, -5) (Diff)
/source/blender/editors/include/ED_anim_api.h (+5, -1) (Diff)
/source/blender/editors/include/ED_screen.h (+1, -0) (Diff)
/source/blender/editors/screen/screen_ops.c (+6, -0) (Diff)
/source/blender/editors/space_action/action_select.c (+2, -2) (Diff)
/source/blender/editors/space_graph/graph_select.c (+1, -1) (Diff)
/source/blender/editors/space_nla/nla_channels.c (+1, -1) (Diff)
/source/blender/editors/space_nla/nla_draw.c (+53, -28) (Diff)
/source/blender/editors/space_nla/nla_edit.c (+137, -0) (Diff)
/source/blender/editors/space_nla/nla_intern.h (+8, -0) (Diff)
/source/blender/editors/space_nla/nla_ops.c (+56, -0) (Diff)
/source/blender/editors/space_nla/nla_select.c (+1, -2) (Diff)
/source/blender/makesdna/DNA_action_types.h (+1, -0) (Diff)
/source/blender/makesdna/DNA_anim_types.h (+9, -2) (Diff)
/source/blender/makesdna/DNA_scene_types.h (+1, -0) (Diff)
/source/blender/blenkernel/intern/anim_sys.c (+10, -5) (Diff)
/source/blender/blenkernel/intern/nla.c (+100, -0) (Diff)
/source/blender/editors/animation/anim_channels.c (+5, -7) (Diff)
/source/blender/editors/animation/anim_filter.c (+113, -5) (Diff)
/source/blender/editors/include/ED_anim_api.h (+5, -1) (Diff)
/source/blender/editors/include/ED_screen.h (+1, -0) (Diff)
/source/blender/editors/screen/screen_ops.c (+6, -0) (Diff)
/source/blender/editors/space_action/action_select.c (+2, -2) (Diff)
/source/blender/editors/space_graph/graph_select.c (+1, -1) (Diff)
/source/blender/editors/space_nla/nla_channels.c (+1, -1) (Diff)
/source/blender/editors/space_nla/nla_draw.c (+53, -28) (Diff)
/source/blender/editors/space_nla/nla_edit.c (+137, -0) (Diff)
/source/blender/editors/space_nla/nla_intern.h (+8, -0) (Diff)
/source/blender/editors/space_nla/nla_ops.c (+56, -0) (Diff)
/source/blender/editors/space_nla/nla_select.c (+1, -2) (Diff)
/source/blender/makesdna/DNA_action_types.h (+1, -0) (Diff)
/source/blender/makesdna/DNA_anim_types.h (+9, -2) (Diff)
/source/blender/makesdna/DNA_scene_types.h (+1, -0) (Diff)