From BlenderWiki

Jump to: navigation, search
Note: This is an archived version of the Blender Developer Wiki. The current and active wiki is available on wiki.blender.org.

NOTE: This list IS NOT A FEATURE REQUEST PAGE, and also doesn't represent the full set of stuff that may get worked on.

Large Refactors - Essential for Fixing Bugs

These are fairly essential things that need doing, and/or are the cause of a sick number of bugreports.

Animation Channel Filtering Code

  • Split flags for channel visibility from keyframe visibility (Part 3 - r.37728)
  • Double check on flags used for each operator again, making sure they make sense from user perspective
    • Fix the old tabkey bug in tracker (#21276). (Part 3 - r.37730)
    • Check on why insertkey in actedit for "selected channels" ignores collapsed groups
    • Fix filtering problems with trying to edit keyframes in unselected+collapsed groups in ActEdit
  • Bring this beast under control again
    • "Grab then assimilate" vs "Check then Do" (Part 4 - r.37826)
    • Review usage of macros to abstract logic for processing
      • - Reduced usage of "anonymous C-blocks" macros, but kept a few in places as it still beats function-pointers
    • Review/remove owner/ownertype stuff (Part 1)
    • Check on the action-block filtering stuff (warts and all)
    • Set up some more test files
  • Review NLA channel drawing
    • Fix bugs with indention+click handling (temp patch this)
    • Make NLA channels draw using standard system (includes patching the buttons in there too!)
  • Review and recode selection handling stuff
    • Check on how "active" interacts with all this, especially keeping in mind the issue of closed channels
  • Review and recode setting toggling - it's a total pain to use and/or maintain
    • Look into creating recursive tree structure for traversal instead of flat
    • Check on hotkey usage and user-terminology for this stuff
  • Possibility of filtering data associated with certain "subchannels" (i.e. timeline only showing keyframes of selected bone) - (Part 5 - r.37983)
  • RNA Access to filtering code?
  • Document this system
  • Review of Animation Channel List design (Graph Editor in particular)
    • Material/Particles Nesting
      • Remove list expanders (Part 1)
    • Textures
      • include once at bottom? --> Probably not!
    • Nodes
      • Material Nodetree support - (Bug #25984, r.37838)
      • Texture Nodetree support (? these don't work that wellanyways) - (r.37842)
      • What to do with node groups?
    • Filtering options in header: cleanup
      • Hide datablock filters by default - most users don't use them, and they just end up taking up space

Depsgraph

(The full extent of work here is still up in the air. Main areas of contention include how fine granularity do we try to get up to now to solve most problems without ending up recoding Blender in a big way)

Large Refactors - Important to get Done

  • F-Samples (i.e. efficient representation of large sets of sampled animation curve data)
    • Refactor keyframe-loopers API to also be usable for F-Samples, facilitating editing of mocap data
    • Baking API (for use by mocap project?)
  • Graph Editor Handle Visibility/Handling
    • Need to consolidate drawing modes
  • Playback operator/code - tis a mess!
    • Implement the variable playback speed functionality as a result of this
    • Check on allowing multi-screen playback at same time (3dview in one screen, animedit on other)

Small/Medium-Sized Bug Fixes

  • Fix autokey menu in Timeline - no options enabled when autokey off
  • Get Visual Keyframing working again (27157)
  • Poselib Add Pose Bug (27412)
  • RNA Property Updates working for AnimSys (26764) - r.38649
  • Keyframing when active action in NLA is set to "add" mode - will require some way of extracting results of NLA
  • Make Markers get stored in sorted order
  • Recode Pivot constraint - get it under control again

Smaller Features to Slot In

TODO: sort this list into categories

  • Paste Pose - Only Selected option on by default
  • Limit Distance Constraint - For Transform Option
  • Operator to convert transforms animation to delta animation
  • Thin-line B-Bones - to show segmented paths as lines
  • Selective X-Raying of Bones
  • Some way of linking in text blocks along with rigs (i.e. UI scripts)
    • EDIT: after chatting to Campbell, apparently there were plans during early Durian over this issue, but would be more generic PyAPI feature for attaching scripts/modules to ID's
  • Cycles FModifier support for selecting only partial range of frames to repeat
  • Perhaps have range-masking support for all F-Modifiers as a standard feature
    • Blend in/out support for range-masking
    • Implement the influence-setting that wasn't fully enabled?
  • Keying Set based tools
    • Reset all controls to default values (i.e. transforms + custom sliders)
    • Quick select (for bones... might be a bit tricky in a few cases) - r.39412-3
  • Clear User Transforms restored - r.39417
  • Import button to automate process of adding Keying Sets from other files in
  • Tools pending work on animation channels
    • Tool to show the curve (in the channel list) of the newly selected keyframe, expanding groups as necessary
    • Groups management
      • Rename group r.38961
      • Change group membership
  • RMB Menu
    • When on a keyframe, allow modifying properties of the keyframe (i.e. handle type, keyframe type, interpolation)
  • View selected for Graph Editor (check if it exists, and/or modify default mappings?)
    • Already existed!
  • Select markers by pattern (like for objects)
  • Reordering of F-Modifiers
  • Non-Animatable Properties - i.e. subsurf and masks on/off (UI stuff) - could be sorta done in past by having some locked channels in ActEdit
    • Standard properties support
    • Custom properties support
  • "Normalise Curves" in Graph Editor (i.e. way to view all curves with consistent scale)
  • PoseLib - Allow blending between current pose and pose to be applied
  • Spline IK - allow using curve twist to affect bone y-rot?
  • Align bone to parent (Pose Mode. EditMode already has this, Ctrl-Alt-A)
  • Hotkey to set bone rotation modes - r.38244
  • Hotkey to set object rotation modes? Is this needed?
  • Constraints Stack Operators
    • Operator to reset all constraint distances
    • Operator to balance weights for doing averaged multi-target stuff?
  • Option to show handles on NLA strips for easier adjusting individual extents. Just need selection + drawing changes.
  • NLA show all (Homekey) tool - r.38520

Smaller Usability Reviews/Tweaks

  • Some setting for choosing type of keyframe that's created (i.e. extreme, breakdown, etc.)
    • Idea 1: Probably scene level, just need to figure out how best to expose this
  • Review Auto-Keying setting in Userprefs - perhaps just abandon?
  • Change hotkey for setting interpolation mode
    • Idea 1: swap Shift-T and T? (might be bad for muscle memory)
  • Have some way of collapsing NLA channel heights to get greater overview?
    • - More compact vertically when 'Show Control Curves' Off (r.38134)
    • - Don't show action lines that don't have keyframes when the filtering flag is off (r.38178)
  • Check on whether adding items to Keying Sets when the current set cannot be edited is useful
  • Adding/Renaming markers in Animation Editors - hotkey range review
  • Look into the "Time-Slide" transform tool in DopeSheet again
    • Is it really needed anymore? [Poll results indicate Yes]
    • Why the glitchy #tind (div/by/0 errors and no action) bugs? [FIXED]
    • Properly document how this thing works, as we don't seem to have any documentation on it
  • Pending poll 1 results
    • Don't make actions get fake users by default [DONE]
    • Modify defaults for pasting keyframes
    • Swap hotkeys for borderselect with/without handles in Graph Editor [NOT NEEDED]
  • Implement "local space" for driver targets that everybody expects
  • Review handle types - auto-clamped in particular seems a bit dodgy - r.39022
    • Check on need for/howto implement Weighted/Non-Weighted tangents?
  • Driver Update Tweaks
    • Check on rna_DriverTarget_update_data() - driver F-Curve doesn't get re-enabled there
    • When updating properties which affect driver F-Curves (i.e. their generators), force update of driver
  • Review visibility and muting icons for anim editors - easily confused currently
    • Most people recommend just swapping the icons, but that has visual-balance issues (padlock and eye are equal "weight", while checkbox is much lighter).
    • Swapping the functions of the buttons (eye becomes visibility, checkbox mute, but buttons don't change places) is NOT an option, since we need consistency between DopeSheet + Graph
    • Eye icon used for curve visibility now. A speaker icon is used for muting.
  • Make it easier to have cycles FModifiers set up for making animation cyclic (and/or clearing these when done) - r.38191
  • Check on way of managing actions
    • Outliner support?
      • Unlink action by clicking on it - r.37896
      • Make action/id's single-user - r.37936
      • Set fake users? - r.38521
      • Allow changing actions? - r.38172
      • NLA actions - unlinking support
    • Anim Editor support
      • RMB menu for this sort of thing
    • RNA
      • NLA Act-Clips should not let their action be editable if it is being tweaked...
  • Check on way of managing drivers
    • Outliner support?
      • RMB menu to copy all/paste all
      • RMB menu to clear all/update all - r.38172
    • Direct entry of expressions into buttons
      • Basic functionality working - r.38076
      • Auto-create (and/or identify) variables?
  • Outliner
    • Split into separate files? - r.38303
    • Hook up data-ops to animation data where relevant - NLA actions still need attention
    • Check on patches in tracker for Outliner anim functionality
  • PoseLib support in Outliner - show poses in poselib?
  • Ctrl-Click to rename channels in AnimEditors - r. 38961
  • Check on solo-mode in NLA, and how well this is communicated
    • Maybe more visible icons - stars vs the barely visible dots - r.38321
    • Greying of text or hiding of icons? - Only mute toggles (r.38325)
    • Greying channel data? - r.38325
  • Active action - when NLA tracks exist, extend stops working. Need new extend modes for NLA strips?
  • FCurve Drawing Improvements
    • Make active F-Curve (i.e. current one being edited more visible)
      • Used "thicker-line" technique - r.38724
    • Fix low-res plotting problems - r.38726
  • Active keyframe setting tweaks (GraphEdit) - 39095
    • Display in the relevant units...
    • Proper updates on refresh

Patch Review

  • 23682 - Bone Groups Sort/Reorder - r.38174

Work Pending startup.blend updates

(NOTE: holding off on these atm, since this will start introducing hard-to-merge stuff)

  • Make default size of keyframe handles in Graph larger - it's hard to distinguish between handles and verts
    • Increasing the size to handle-vert size to 4 already does wonders. Modified the value for new theme files, but defaults file needs updating...
  • Making Graph Editor have the "Only Selected" filter enabled by default (see my blog)
  • Make Graph Editor "Only Selected Keyframe Handles" on by default

Optimisation Work

  • Speed up DopeSheet drawing for composite channels
    • Long Keyframes seem to be cause of majority of slowness
  • Speed up Graph Editor drawing
    • Skip drawing of bezier keyframes (and associated curve samples) outside of visible regions
  • Speed up nasty O(n^2) Graph Editor sorting during transform
    • NOTE: despite various attempts over the years, it always seems to be some "other" unidentified factor
    • beztmap_to_data() <--- blenderdev/250/slow_graphedit_transforms.png

Nexyon Stuff

  • Property baking method? - void* cacheAnimationData(PropertyRNA* prop, int startFrame, int endFrame) - not needed for now?
  • "Sound" NLA Strips - r. 39138/9

Medium Sized Projects Which May/May Not be Addressed

  • The return of PyConstraints?
  • Proper NLA Baking?
  • Waveform display in TimeLine
    • Delegated to Nexyon in exchange for work on NLA Sound Strips. After further discussions with slikdigit, was decided to just use sequencer for viewing this stuff.
  • "Quick-Text" Strip for Sequencer, for making simple title-cards
    • Sub-subtitle field
    • Footer field
    • Difference colors for subtitle and title fields
    • Alpha setting for background
  • "Text" Strip for Sequencer - building on/generalising "Title-Cards"
  • Proxy System Review