diff options
author | Joshua Leung <aligorith@gmail.com> | 2012-05-01 20:19:13 +0400 |
---|---|---|
committer | Joshua Leung <aligorith@gmail.com> | 2012-05-01 20:19:13 +0400 |
commit | ffc9fcb1a1d58bb03b5cb60dc40f0fd91c3e8f3c (patch) | |
tree | a306e8589a8bb4718f1830d24b6fef6889e24c5e /release/scripts/startup/bl_ui/properties_animviz.py | |
parent | fcb84663cd42dfdbb15204a6d65cec82d5ef110d (diff) |
Motion Paths GUI Cleanup
This commit refactors the way that the Motion Paths GUI works. The key problems
this tries to address are:
1) Mode error - Confusion about whether we're dealing with the Object or Pose
level Motion Paths panel
2) Display settings vs Baking Settings
In line with the original design intentions for the 2.5/6 Properties Editor,
I've now split out the actual baking-related settings away from the Properties
Editor:
* Now, when clicking "Calculate Paths" from the toolbar, you'll be prompted with
a dialog to select the start/end frames (and for bones, whether to bake from
heads or tails). This is less confusing than relying on firstly setting the
range via the display range settings (and baking using that), since many people
apparently only used the "around current" mode, and were confused why things
weren't working
* Added a display of the frame ranges of the current baked Motion Path on the
active Object/Bone. This makes it clearer/easier to debug if the path suddenly
starts disappearing after a certain frame.
* Replaced Calculate/Clear Paths in the panels with a single "Update" button if
there's already a baked Motion Path.
Hopefully these changes (in combination with some of the other bugfixes) will
make it more obvious how everything works.
Diffstat (limited to 'release/scripts/startup/bl_ui/properties_animviz.py')
-rw-r--r-- | release/scripts/startup/bl_ui/properties_animviz.py | 46 |
1 files changed, 38 insertions, 8 deletions
diff --git a/release/scripts/startup/bl_ui/properties_animviz.py b/release/scripts/startup/bl_ui/properties_animviz.py index 93feb8adc7a..3f25006766e 100644 --- a/release/scripts/startup/bl_ui/properties_animviz.py +++ b/release/scripts/startup/bl_ui/properties_animviz.py @@ -31,16 +31,18 @@ class MotionPathButtonsPanel(): bl_label = "Motion Paths" bl_options = {'DEFAULT_CLOSED'} - def draw_settings(self, context, avs, bones=False): + def draw_settings(self, context, avs, mpath, bones=False): layout = self.layout mps = avs.motion_path - + + # Display Range layout.prop(mps, "type", expand=True) split = layout.split() col = split.column() + col.label(text="Display Range:") sub = col.column(align=True) if (mps.type == 'CURRENT_FRAME'): sub.prop(mps, "frame_before", text="Before") @@ -48,18 +50,46 @@ class MotionPathButtonsPanel(): elif (mps.type == 'RANGE'): sub.prop(mps, "frame_start", text="Start") sub.prop(mps, "frame_end", text="End") - + sub.prop(mps, "frame_step", text="Step") + + col = split.column() if bones: - col.row().prop(mps, "bake_location", expand=True) - + col.label(text="Cache for Bone:") + else: + col.label(text="Cache:") + + if mpath: + sub = col.column(align=True) + sub.enabled = False + sub.prop(mpath, "frame_start", text="From") + sub.prop(mpath, "frame_end", text="To") + + sub = col.column() # align=True + sub.operator_context = 'EXEC_DEFAULT' + if bones: + col.operator("pose.paths_calculate", text="Update", icon='BONE_DATA') + else: + col.operator("object.paths_calculate", text="Update", icon='OBJECT_DATA') + else: + col.label(text="Not available yet...", icon='ERROR') + col.label(text="Calculate Paths first", icon='INFO') + + + # Display Settings + split = layout.split() + col = split.column() - col.label(text="Display:") + col.label(text="Show:") col.prop(mps, "show_frame_numbers", text="Frame Numbers") + + col = split.column() col.prop(mps, "show_keyframe_highlight", text="Keyframes") + sub = col.column() + sub.enabled = mps.show_keyframe_highlight if bones: - col.prop(mps, "show_keyframe_action_all", text="+ Non-Grouped Keyframes") - col.prop(mps, "show_keyframe_numbers", text="Keyframe Numbers") + sub.prop(mps, "show_keyframe_action_all", text="+ Non-Grouped Keyframes") + sub.prop(mps, "show_keyframe_numbers", text="Keyframe Numbers") # FIXME: this panel still needs to be ported so that it will work correctly with animviz |