2021-05-27 Animation & Rigging Module Meeting

The main goal of this meeting was a status update on & discussion of ongoing work.

The meeting was open for everybody interested to join on Google Meet (link below).

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

Present: Christoph Lendenfeld, Tristan Weis, Demeter Dzadik, Scott Wilson, Sybren Stüvel, Wayde Moss


Since the Last Meeting / Announcements

  • Tristan introduces himself: long time Blender user, almost 10 years now. TD at Eagle Eye Films in Ludwigsburg, Germany. Building up Blender pipeline, at the end of this year start feature film production in Blender. He’s doing lots of pipeline, attaching Blender to CG-Wire a database, working on rigging with Rigify. Also works with Paul Golter (intern TD at Blender Animation Studio).

  • Pose Library v2 blog post, including set of videos demonstrating the new system: Pose Library v2.0 — Blender Developers Blog

Short-term goals

  • T81836: Design: New Graph Editor Key Manipulation Operators.

    • Has landed in master and will be in Blender 3.0 (release notes).
    • Christoph started on generalized version of the slider, for use in other areas, but now there are a few bugfixes for the Pose Breakdowner, so lots of stuff to do in this area.
  • T83068: Motion Paths: Refresh all

    • Scott is working with Academy Software Foundation to get OpenEXR in Rust. This has higher priority for him & his employer, hence some delay, but he’ll work on this later for sure, and might be able to work on Blender full-time.
  • Sybren: do we want to add another item to the short-term goals? We used to have 3, until one was finished.

    • Demeter: four patches for Rigify to freshen up the facial animation system. Demeter is poking Alexander to clearly show the use case of each patch, and to have them at high quality. Two of them are at that level, two need a bit more work.
    • Umbrella task: T83908: Streamlining advanced rigging of B-Bone chains.
    • Tristan Weiss is working on something similar called Bendify, can get in touch with Alexander Gavrilov to collaborate on this.
    • Demeter: some of these features reduce the number of helper bones, another patch adds C-code to make rigs more powerful.
    • Demeter: wants to make some patches for Rigify as well, for Alexander to review.

Decision Time

  • Which keyframes should Alt+I in the 3D Viewport remove? See discussion in T88068: Alt-I in 3D Viewport doesn’t respect active keying set.
    • None of the people present were aware of Alt-I for keyframe deletion. The report makes sense, though.
    • Demeter: you can fix it, but then others will likely complain.
    • Scott: it makes sense to have the keying set influence deletion. Delete Everything could be be Shift+Alt+I?
    • Sybren: it’s worse, the bpy.ops.anim.keyframe_delete operator has description “Delete Keying-Set Keyframe” and doesn’t work when there is no active keying set.
    • It is agreed that we could add a keyframe deletion operator that works like the insertion operator:
      • If there is an active keying set, behave like bpy.ops.anim.keyframe_delete, and
      • if not, just behave like bpy.ops.anim.keyframe_delete_v3d.
    • Sybren: it’s not high-priority, could be a nice feature to implement for new developers.
    • Sybren resurrected the bug report, and reclassified it as “Known Limitation”.

Other discussions

  • Tristan: shouldn’t keying sets that key rotation not also set a key on the rotation mode?
    • Sybren: do you actually change the rotation mode over time?
    • Tristan: this can happen with proxies/overrides, when changing the rotation mode. If it’s not keyed, it will be overwritten again and the existing animation doesn’t work any more. This is also relevant for poses in the pose library.
    • Demeter: with overrides this shouldn’t be an issue, if you change it & save the file it should be kept, but when you append the Action to a new file it’ll still have the original unless you key it.
    • Tristan: sometimes quaternions are used to avoid gimbal lock, and at other times eulers to have simpler curves.
    • Sybren: keying sets need an overhaul; probably adding more keying sets onto the current pile isn’t the best way to go. They should be extendable by users/studios, and not in the limited way we have currently.
    • Sybren: I recently added a loc/rot/scale/customprops keying set.
    • Tristan: That could be used to drive the rotation mode with a custom property.
    • Sybren: it’s probably better to reduce the loc/rot/scale/other choices exploded in a list of all the possible into a list of checkboxes that people can enable/disable however they want. Other, more fancy keying sets (like Whole Character) could still be explicit choices in a much shorter list; these could even be replaced by a list of to-be-ignored bone name prefixes, or “only bones with custom shapes”.
    • Demeter: bones could have a “don’t animate” checkbox, or something like that.
    • Sybren: the selection of these options could then be saved into custom keying sets, stored in preferences.
    • Demeter: nobody is available to work on this in short-term, though.

Help Needed

  • Demeter: T78794: Running scripts on append/link
    • Sybren: I also discussed this in the Asset workshop, as it’s an interesting thing.
    • Scott: should take security into account, as sharing assets that auto-execute Python scripts can be used for malicious tasks.
    • Tristan: expresses concern for the exclusion filter of the auto-execution; he’d expect an inclusion filter (“trust the production files, but not others”).

Next Meeting

The next meeting will be on Thursday 10 June, 18:00 CET/Amsterdam time. 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.


Just to clarify, the chance that I’ll be doing Blender full time is pretty remote at this point. There’s interest at the studio, but I think they’re waiting on better animation support (at least, compared to version 2.83).

To make the meeting more accessible for some folks, it will be held one hour later from now on. The new meeting time is thus 18:00-19:00 CET/Amsterdam time.