2021-11-25 Animation & Rigging Module Meeting

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

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

Present: Bassam Kurdali, Carlos Eduardo da Silva Barreto, Chinny Brynford-Jones, Daniel Salazar, Jason Schleifer, Kevin Burke, Paolo Acampora, 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

Short-term goals

Patch Review & Decision Time

  • Decision time: Removal of old pose library has to happen. In Blender 3.1 or 3.2?
    • Paolo: Remove it sooner than later, because having two pose libraries will cause some confusion. Could be done in two phases, first removal of UI but have the data/operations still available for add-ons, then later remove those too.
    • Blender 3.1: removal of UI panels, and addition of deprecation notes to the Python interface of the pose library.
    • Blender 3.2: removal of the Python interface and all the C code.
    • The conversion of old to new pose library Actions is kept (both the DNA flags and pose markers for old poselib actions and the code to convert to the new).
    • Sybren will make tasks in tracker for the above, and add info to the manual.
    • T93405: Remove old pose library from UI, and deprecate Python API
    • T93406: Removal of most of the old pose library in Blender 3.2
  • Changes in Module members: Sybren removed Wayde Moss, since he hasn’t been active for a long time. The following people are now included in the module as well:
    • Daniel
    • Kevin, UX background from Google & Samsung, also working on Python scripting.
    • Paolo
  • T93374: UI change for the Armature Modifier
    • Proposal: rename “Dual Quaternion” back to “Preserve Volume”, keep the drop-down, add “Anti-Bulging” option later. The fact that both use Dual Quaterions is then moved to the tooltip.
    • The tooltip should explicitly mention “Dual Quaternions” and not just “Quaternions”, so that it’s clearer which exact algorithm is used.
    • Sybren added this to a comment on the task.

Patch review

  • D12331: Dope Sheet: Nested action groups

    Is the feature wanted? And is it worth expanding the already-fragile action
    groups for? There’s code in Blender that assumes “group name == bone name”,
    which is not generally true. This may become more problematic when this
    feature is added.

    • Bassam: better to fix the underlying fragility first.
    • Bassam: UI improvements like reordering with drag & drop are more important. It’s hard to do when some channels are hidden, and then you accidentally end up with the wrong ordering.
    • Paolo: Action groups are quite fragile, and hard to use well. The current situation is already complex, when it comes to where new keyframes go. The area should be cleaned up first, before adding new features.
    • Bassam: a next-gen animation editor should show all time-based decisions, not just keyframes. Should be possible to select & offset them all together. He has an add-on that already does this for FCurve Function Modifier data with shift+G, and that makes life a lot easier.
    • Paolo: reminds him of the history of adding animation layers to Blender. There were various add-ons that added various good ideas and specific workflows, but nothing got into Blender because Blender wasn’t ready to get such changes.
    • Conclusion: too complex for Blender now, and too vague in terms of what concrete problems it solves.
    • Sybren added the conclusions of the meeting to a comment on the patch.

Parenting and the Hidden Matrix

Better design for transformation panels & parenting operations is needed.

Discussion on DevTalk: Sybren asked for concrete proposal, but not there yet.

Parenting behaviour:

  • Parenting updates parent_inverse matrix.
  • That helps to keep local transform identical before/after parenting, ensuring drivers, animation data, constraints etc. keep working as before.

Biggest problems:

  • Non-standard behaviour, so people not familiar with Blender don’t expect this.
  • parent_inverse matrix is hidden, so those same people won’t be able to easily figure out what’s going on.

Conclusion of the discussion:

  • Add parenting option that doesn’t use parent-inverse but just updates child’s local transform
  • Add option to Apply Transform menu that applies the parent-inverse to the child’s local transform
  • Still unclear whether to show the parent-inverse matrix in the UI. There are reasons to show it (to make it clear it exists), but not as individual loc/rot/scale channels (because that wouldn’t convey the entire matrix). Maybe just as indicator it’s set to a non-identity value. At least a sub-panel in the Transform properties panel would be good.

Next Meeting

The next meeting will be on Thursday 9 December, 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.


@sybren Is there any chance of having this topic added to the meeting agenda?

I’ve added it as an optional item, to be discussed if we still have time.


thanks a lot for adding this!

Hi!! I’m so excited that this is in the discussion, I’ve already answered on the relative thread, and I’m very sorry that we couldn’t provide a valid proposal. I’m not sure what this particular point mean, but I suspect (and really hope) that this single parenting option could solve the whole issue.

I’ll bee back ASAP


It’s a little more complicated than that, since children can be animated : how does the transformation caused by applying the inverse matrix propagate throughout the animation fcurves ? the whole point of not applying the parent inverse matrix is to not mess up animation, which is defendable, but I think we could do even better.

1 Like

Yeah, I suspected that, but I still have to wrap my head around the animation issue…