2023-11-02 Animation & Rigging module meeting

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

Present: Christoph Lendenfeld, Duncan Rudd, Eduardo Rubio, Felipe G, Ingo Clemens, Jason Schleifer, Jeremy Bot, Nate Rupsis, 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

  • Blender Conference was a blast. Our talk A New Animation System was well received, and is currently the 2nd most viewed talk on YouTube. Also we talked (of course) with animators & riggers, and invited more people to the module meetings.


  • Two fixes for similar issues: bones disappearing (3da63377fcae, d4262071b18b) by Jeroen Bakker
    • Nate super intersetd in lesson from Jeroen

Short-term goals / Ongoing Work

  • Sybren created #113941: Anim: rework bone colors based on last meeting’s discussion.
  • Nate: #1055029: Anim: Action bake custom properties. Currently under review.
  • Christoph: #113278: Anim: Keyframing Rework
    • His pull request (#113504) is 95% done.
    • Might be broken: Christoph removed a depsgraph update call, which might have broken something and needs some extra attention.
    • He’ll make test build soon.
  • Sybren, Brad Clark, and Nathan Vegdahl discussed the ramifications of mixing Action-like and NLA-like behaviour in the new Animation data-block.
    • Action-like:
      • After evaluation of FCurves, the result is written back to the original data-block.
      • This is why property editors show the animated values.
      • Removing the Action keeps properties at their last-animated values.
    • NLA-like:
      • Properties are not written back to the original. Sybren did some more investigation, and they are written back to the animation data-block. Additive strips only work as such when they are on top of regular strips.
      • This is necessary to make additive animation work (“move 1 unit to the left”); if that were to be written back, every re-evaluation of the same frame would move the object.
      • Removing the NLA strip makes the properties pop back to their original value the animated value from the track below it.
    • Possible solution:
      • A “base/rest layer” (name pending) that contains the “un-animated values”, so that subsequent additive layers have a stable input.
      • This could potentially also be used for dynamic overrides.
    • Eduardo: that would be similar to the multiple rest position?
      • Sybren: only if you have ‘additive’ animation layers, because this base layer defines the ‘unanimated value’, not a new ‘zero’ that is used as a reference for everything else.
    • Nate: animators shouldn’t be forced to have this as an extra setup step before starting to animate. And we should see if we can mock this up & test with animators.
    • Duncan: keep track of ‘input’ values on additive strip itself?
    • Eduardo: Rig on the Fly also cannot bake to an additive layer.
    • Sybren: This is just one avenue to explore. An alternative would be to show evaluated values in the property editors, but then it’s harder to understand what editing those values mean.

Patch Review & Decision Time

  • Selecting overlapping bones in wireframe mode became significantly more difficult in Blender 2.8:
  • Renaming “Pose Space” to “Armature Space”? #110871: Non-intuitive transform space type name
    • Christoph also confusted by “Pose Space” term.
    • Felipe: always thought “Pose Space” was the space of the bone itself.
    • Nate: probably comes from the distinction between “edit bones” and “pose bones”, as “pose space” is where the pose bones are defined.
    • Module agrees “Armature Space” is better.
    • Sybren: when do we do this? Because it will break all tutorials. Might be a 5.0 release.
    • Christoph: start with a tooltip change with a good explanation, then just the label, then move forward with API changes.
    • Jason: use “Armature (Pose) Space”. Or in subsequent releases change Pose → Positure → Parmature → Armature.
    • Paolo: The armature coordinate space is identified by the object and doesn’t take bones into account; if we rename it to “Armature Space” then this relationship with the object is equally vague.
    • Sybren: whatever the armature considers “zero” is independent of moving of the pose bones, so “Pose Space” is even more confusing.
    • Nate: We should verify that “Pose Space” indeed doesn’t change when pose bones are moved around. He’s going to do that.
    • Paolo: agrees “pose space” is confusing then.
  • Renaming “Channels” to “Tracks” in NLA Context menu? Adding in additional Track operations? #114202: Anim: update NLA “Context Menu” & +add/delete operations
    • Jason: if Brad agrees, I’m in.
    • Sybren: fully agrees that NLA should use “tracks”.
    • Nate: do we need UI module approval? Sybren: I don’t think so, but let’s keep them in the loop anyway.
  • #72389: Pivot Bone Constraint - wrong offset and pivot: who knows what the pivot constraint is supposed to do?
  • #113364: Indicate Parent Inverse Matrix State in UI
    • Sybren: wanted to just show that this is happening.
    • Module thinks it’s a step in the right direction.
    • Felipe: clearing the inverse of the Child-Of constraint cannot be done for all selected object/bones at the same time. Could we add this too? Sybren: the need is clear, but it’s out of scope for this pull request. Christoph will see if he can make alt-click work as a “For all selected” version.

Next Meeting

The next meeting will be on Thursday 2023-11-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.