2023-10-05 Animation & Rigging module meeting

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

Present: Christoph Lendenfeld, Daniel Salazar, Demeter Dzadik, Fani-Eleni Pandi, Jason Schleifer, Jeremy Bot, MohammadHossein Jamshidi, Nate Rupsis, Nathan Vegdahl, Sybren Stüvel, Thomas Dinges

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


Since the Last Meeting / Announcements

  • Meeting about moving Grease Pencil v3 animation data into the planned Animation data-block (Falk David, Nathan, Sybren, meeting notes).
  • Nathan & Sybren working schedule, balancing ‘module work’ from ‘Animation 2025’ work:
    • 10:00 - 12:00: module work, so reviews of non-Animation 2025 changes, bug reports, etc.
    • 12:00 - 18:00: Animation 2025.
    • This is not a hard separation, so by all means give a little poke on the chat if you want a review. Especially for 2nd and further passes, it’s always possible to do a quick in-between stuff.


Names are from the Git log.


Short-term goals / Ongoing Work

  • High-prio bug:
    • #111553: Blender 4.0.0 - Armature Rig with IK broken
      • Potential fix has issue: Two IK-constraints with mixed influence AND two different chain lengths is broken. In 3.6 only the first non-zero-influence IK constraint is evaluated.
      • Sybren: maybe auto-disable the 2nd IK constraint when a non-supported situation is detected?
      • Nathan: maybe two separate IK chains with separate bones + another chain with copy-transform constraints that blends them together might work as a workaround. Could help giving that together with the “this is not supported” message.
  • Christoph & Rik Schutte: #113278: Anim: Keyframing Rework
  • Nathan is working on a very draft development schedule for Animation 2025.
  • Sybren and Nathan briefly talked about the Blender Conference 2025 presentation:
    • Intro, with quick nudge to last year’s presentation & explanation of FIFIDS.
    • Shiny features so far:
      • Bone Collections & bone colors: done first because Blender 4.0 & compatibility.
      • New layered animation system: basically present blog post of June 2023 workshop and show however far we managed to implement it at the time of the conference.
      • Fast: improvements to the graph editor speed.
      • Tools ported over from AnimAide.
    • Looser planning for the future (but still not too distant, these will directly speed up animators):
      • Ghosting in the 3D Viewport.
      • Bringing selection sets & bone picker to Blender (currently bundled add-on resp. non-existent).
      • Redefining keying sets and auto-keying behavior.
    • Even looser planning for even further future (cool features, might help a lot, but also more effort & risk):
  • Sybren worked on #113279: WIP: Layered animation data model
  • Nate worked on #113208: WIP: Action-bake-custom-properties
    • Feedback appreciated.

Patch Review & Decision Time

  • #113138: Anim: Align new bones with the world axes
    • Test builds available.
    • To decide: desirable or not?
    • Nathan: one of the reasons was a bug report that people set world-space constraints on the default bone, with ‘offset’ enabled for the orientation. That immediately makes it rotate 90 degrees, which is unexpected.
    • MohammadHossein: add an option to add this, like the 3D cursor.
    • Sybren: we could have an option in the prefs for which world axis to align the bone with?
    • Nathan: two arguments for this:
      • (first being the bug report)
      • When adding controls that are not necessarily bones, it really helps to have them aligned with the world by default.
    • Nathan: ideally make the Z-axis aligned with the bone, or make it configurable.
    • Sybren: that’s hard, because easy to miss yet another matrix in the source code.
    • Daniel: we should make sure it’s for good reasons, as this change will also break tons of tutorials, people’s workflows, etc.
    • Nate: let’s ask the larger Blender community.
    • Module decides in favour of Nate’s suggestion.
  • Bone Color discussions:
    • #112635: Proposal: New Bone Color Presets
      • Nathan: Alexander’s suggestion for unifying the perceived brightnesses is good. Module agrees.
      • Nathan will hack together Python code to use OkLab for picking colors, so Demeter can use that to make a new proposal.
      • Demeter: original idea of making first few colors really distinct, and then “filling the holes” with later colors, it spreads almost-similar colors apart from each other in the list. Probably better to sort them by hue instead, to make the differences more clear. This will break existing rigs, though, as their color will change.
      • Nate: this would make sense for Blender 4.0.
      • Nathan: having the colors sorted “most-distinct-first” may make it easier to alter to account for color blindness. Although this adjustment is hard anyway.
      • Demeter: having more useful theme colors helps colorblind people, as more riggers will use the theme colors instead of relying on custom colors.
      • Sybren: we could argue that it could still go into 4.0, as it’s not an API change or something that needs translating.
      • Decided is:
        • Theme bone colors will be sorted by hue.
        • New colors are picked using OkLab colors, which will then also be used to generate the ‘selected’ and ‘active’ colors from the ‘regular’ ones.
        • These changes will go into Blender 4.0.
      • Sybren: and buttons to automate this?
      • Nathan: might be tricky to adjust for lighter/dark themes.
      • Sybren: what if we use the perceived lightnesses of the default bone colors of the active theme? That could be used by those buttons to generate the rest consistent with the theme.
      • Christoph: a few sliders ‘active brightness’, ‘selected brightness’ etc. can help.
      • There is uncertainty what would be the best approach. The discussion is moved out of the meeting to continue later.
      • Delayed decisions for later, when more is known about the exact algorithm:
        • To decide: spend time adding button for generating ‘selected’ + ‘active’ colors from ‘regular’?
        • To decide: what about a button to set the ‘regular’ luminance to the suggested value?
    • #112943: Proposal: Unify Active/Selected Bone Colors and set current Blender Theme Colors as Default
      • Sybren: (link already-mentioned issues)
      • Christoph: in general, good suggestion to have this unified, makes selection state clearer. Nathan would also be happy with the unified selection state colors.
      • Sybren: custom wire colors are important when you have custom bone shapes, and only see them as wire.
      • Sybren & Nathan: if we find a reliable way to auto-generate the ‘active’ and ‘selected’ colors that would be great to reduce the number of colors users need to manage.
      • Nathan: not going to happen before 4.0 though.
      • Sybren: let’s delay this discussion until after the default colors have changed.
      • Nate: this still sounds like add-on territory to me. Not too hard to write an add-on that updates the theme & per-bone custom colors.

Help Needed

  • High prio: a 16x9 background graphic for the Animation 2025 conference talk.
  • Bone Collections & Bone Colors still need more documentation. There are quite a few parts of the manual that still concern armature layers and/or bone groups. And there are various parts of the manual that discuss these, but don’t link to each other.
  • Desire from Blender Studio animators to basically have the ‘bone group’ workflow back: named groups of bones, that live in the “animators’ realm” instead of the “riggers’ realm” and give control over bone colors.

Next Meeting

The next meeting will be on Thursday 2023-10-12T16: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.