2023-08-03 Animation & Rigging module meeting

The meeting will be on 2023-02-23T17:00:00Z. It is open for everybody interested to join on Google Meet (link below).

Present: Brad Clark, Christoph Lendenfeld, Demeter Dzadik, Eduardo Rubio, Eveline Anderson, Fani-Eleni Pandi, Jason Schleifer, Jeremy Bot, MohammadHossein Jamshidi, Nate Rupsis, Nathan Vegdahl, Sybren Stüvel

People present are referred to by first name for brevity. Others are referred to by full name.


Since the Last Meeting / Announcements

  • New face: Eveline, GSoC student working on Flamenco, mentored by Sybren.
  • Next week: SIGGRAPH in LA. Sybren, Nate, Kevin Burke, Jason Schleifer are going. Nathan will host that week’s module meeting.
  • Christoph started a discussion about removing baked F-Curves.
    • If it happens, final removal would be for Blender 5.0.
    • Nathan: makes sense to revisit F-Curve storage for the new data model anyway.


Short-term goals / Ongoing Work

  • #110108: NLA Snap to Markers is broken
  • #110053: Crash on linking animation data (drivers) on overridden objects
  • #110764: Animation: Common curve drawing for FCurves
  • Nathan has written up some notes about possible directions for animation-level constraints, and how they might fit in with the new data model: Brainstorming: Animation-level Constraints.
    • He will move things to devtalk to discuss further.
  • #104546: Pose Library: Update to use the asset shelf (when enabled)
    • It was decided to not include an asset library selector and to always use the All asset library for now. With catalog based navigation that may be fine, but it’s an option to bring back the asset library selector still.
    • Jason: can searches be saved as tabs as well?
    • Sybren will ask for a test build.
  • #110067: Library Override: Change handling of Animation Data when it exists in both liboverride and linked reference IDs
  • Christoph & Nate have been working on Ares Devaux’s pull requests. They were ported by Ares from Animaide to Blender, and he asked for help in the final polish. They’re all ready to land now.
    • To decide: :white_check_mark: prioritise / :heavy_check_mark: ok-for-later / :x: let’s-not:
      • :heavy_check_mark: Animation: Blend to Infinity slider #110567
      • :white_check_mark: Animation: Blend To Ease Slider #110566
      • :white_check_mark: Animation: Blend Offset Slider #110544
        • Could be renamed to “align ends”, no decision made on this.
      • :white_check_mark: Animation: Time Offset Slider #110540
      • :white_check_mark: Animation: push pull slider #106527
        • Nate: could this be inverted by making it negative?
        • Would make the slider numbers a bit less meaningful, but with the ‘E’ key to allow extrapolation, that wouldn’t matter that much.
      • :white_check_mark: Animation: scale average slider #106526
        • Nathan: this seems to be Blender’s regular ‘scale Y’.
        • Jason: does it take into account the neighbours of selected key ranges?
        • Jason: what happens when you have separate segments of selected keys? Would that scale relative to each segment’s average?
        • Nathan: that we still might want to do in general.
        • Brad: this works really nicely for just ‘deadening’ specific sections.
        • Christoph: with multiple curves selected, this scales relative to each curve’s average, whereas Blender scales relative to the average of all selected vertices.
        • Sybren: regarding implementing in general: it’s probably a LOT easier to implement this for this specific case.
        • Christoph: with mesh island selection you can already scale relative to each island.
      • :heavy_check_mark: Animation: ease-ease slider #106525
        • Some discussion about the functionality. This doesn’t blend in the effect, but immediately applies its curve on the selected keys.
        • Jason: if it were to respond to the mouse in the opposite direction, it feels like pulling out the tangent.
        • Christoph: this is like the current easing operator, but this feels more powerful. Maybe just upgrade the existing one with this functionality?
      • :heavy_check_mark: Animation: scale left slider #106524
      • :heavy_check_mark: Animation: scale right slider #106523
        • Jeremy: this could be done with ‘snap to cursor’, and then just use regular scale.
        • Nathan: same as earlier, this works well with multiple selected ranges.
        • Nathan: maybe merge this with the ‘scale right’ slider?
        • Decision: ok-for-later to have some time to investigate combining with ‘scale right’.
      • :white_check_mark: Animation: shear left slider #106521
      • :white_check_mark: Animation: shear right slider #106522
        • Sybren: This looks like rotating the keys, but then in a sane way, instead of moving the keys away from their frame.
        • Jeremy: it could be a cool transform mode, where you lock the keys to their current time.
        • Nathan: do we want to combine this with the ‘shear left’?
        • Jeremy: it’s nice to be able to push/pull in either directions.
        • MohammedHossein: we could have the left/right ones as one operator, and then have a key to toggle the side.
        • Sybren: do we still keep them in the menu, so that it’s obvious that there are these directions available?
        • Demeter: having less duplicate operators in the menu is better, reduces clutter.
        • MohammedHossein: the menu item label could have a “left/right” or “L/R” to act as indicator.
        • Demeter: some pie menus could help here as well?
      • Brad: about having lots of slider operators vs. pivot modes, locks, 2D cursor position, etc. in combination of regular transforms: it’s much easier to just pick the right slider operator and know that it does what you need.

Patch Review & Decision Time

  • Blend to Infinity slider #110567: naming?
    • “Match Tangent” or “Continue slope”
    • Jason: “continue” implies a direction to the right
    • Decision: “Match Slope”
  • Two patches to fix Swap Strips can delete strips if there is not enough space #109081. #109980 just disallows the swap. #110074 adjusts the swap positions to make it work when possible.
    • Nate: this probably was a hack to work around the old “brick wall” behaviour of the NLA.
    • Sybren: better to go for the one that only allows swapping two strips.
    • Decision: go for the simpler patch that just disallows “impossible” swaps, with the addition that it should explain when & why it cannot work.

Help Needed

Next Meeting

The next meeting will be on Thursday 2023-03-09T17:00:00Z. Again it will be open for everybody who’s interested. The provisionary meeting agenda will be linked in the #animation-module channel before the meeting.