2024-02-13 Animation & Rigging Module Meeting

The meeting will be on 2024-02-13T11:00:00Z. It is open for everybody interested to join the video call (link below).

Present: Christoph Lendenfeld, MohammadHossein Jamshidi, Nathan Vegdahl, Pierrick Picaut, Sybren Stüvel

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



Names are from the Git log. This list is limited to functional improvements & bugfixes.


Technical Documentation

Ongoing Work

  • High Prio bugs: None!
  • Christoph:
  • Nathan:
    • Nathan’s weekly report
    • Discussed/evaluated the UX mockup feedback gathered so far with Sybren. Responses were quite validating, but also some important weaknesses pointed out. Also, pretty much everyone wants to see a unified Animation Editor (i.e. layered animation editor should replace the dopesheet).
    • Christoph: can we also eliminate the timeline editor?
    • Nathan & Sybren: yes we should.
    • Investigated how exactly Delta Transforms are evaluated. Short version: they’re combined with the normal user transforms per loc/rot/scale, not as single transform matrix. Will add this to the developer documentation.
  • Sybren:
    • Sybren’s weekly report
    • Contacted Waag (who are hosting our current Jitsi instance), they are facing the same issues we are, and don’t quite know what’s the cause. They’ll be switching to BigBlueButton soon. Nathan is happy to make that switch too, because it abbreviates to BBB for BigBuckBunny!
    • Baklava: strips stay in the data model, but max one per layer, and it has to be infinite. The reason is that it’s less work, we’ll likely have strips anyway, and moving the animation data into the layer itself will also create soon-to-be-deprecated properties in DNA. Strips will be hidden from the UI though.
    • Tested library linking with Animation data-blocks, works exactly as intended (outputs can be reassigned; linking does not pull in all animated data-blocks).
    • Working with Nathan on a presentation at Blender HQ (to be given Thursday).
    • Reviewing #113364: Indicate Parent Inverse Matrix State in UI
  • Animator meeting at Blender HQ, with Rik Schutte, Hjalti Hjálmarsson, and Pablo Fournier:
    • Ended up discussing the underlying data model instead of the mockups (which is fine, and important).
    • Some of the animators expressed concerns that the data model seems too complex/difficult to grasp.
      • For example, why allow layers to contain data for multiple outputs? (Answer: they need to be able to for strips to animate more than one object/ID, among other things.)
      • The name “output” is confusing. Christoph: “Recipient”?
    • We think a proper UI will make it easier to understand. Moreover, the goal is for the user to only need to understand the parts of the data model that they actually use, so simple cases stay simple.
    • Nevertheless, this highlights that we will need good documentation that explains everything in a straightforward easy-to-grasp way.

Patches: Review & Decision Time

  • #117798: “Nothing to Bake” when baking NLA tracks with pose type
    • “Selected” vs. “Active” confusion.
    • To decide: close (works as designed), fix properly (selection state of active armature shouldn’t matter when iterating selected bones), or fix just for baking operator?
    • Decision: if Nate Rupsis wants to fix this, and it’s possible to do this with relatively simple changes to the Python code, that would be preferred. If it requires considerable changes to the animation filtering code, it’s left for Baklava to get its own filtering and fix it there. Otherwise we close this as ‘works as designed’.
  • #117669: Anim: Graph Editor - automatically lock key translation to a single axis
    • Paul Kotelevets suggests using GG for toggling this axis locking.
    • To decide: implement that or not?
    • Christoph: if we define ‘double-tap’ as ‘toggle arbitrarily constrained’ it’s fine, and can be quite useful.
    • Nathan: comes down to which behaviour is most useful in practice, i.e. which toggle needs to be most accessible for animators.
    • Christoph: moving along one axis is very common, should make that accessible.
    • Pierrick: switching modes should be accessible. Axis locking can be annoying when finessing animation, where you may want to move keys in both directions (time & value). Double-tapping G could toggle the auto-locking, just like tapping X and Y will lock to that axis.
    • Decision: we add double-G to toggle the auto-locking.
    • Sybren: turn it on or off by default?
    • Christoph: if we turn it on, the toggle should be more visible.
    • Pierrick: constraining is usually done by pressing a key, by default it should be unconstrained.
    • Decision: keep off by default (as it is now).

Animation 2025: Progress & Planning

Sybren showed a draft of the presentation that Nathan and he will give on Thursday.

(By the time of publishing these notes, the presentation has also been poured into blog post form: Animation 2025: Progress & Planning).

Help Needed

  • Request from Luciano Muñoz: better copy-paste support for keys (dopesheet, graph editor). Currently Blender seems to be limited to copy-pasting within the same Blender instance, and that feels inconsistent with the fact that poses can be copied between Blenders.
    • Pierrick: This already works, but you have to make sure that you have all bones and all keys selected, otherwise it won’t work.
    • Sybren: that is annoying.
    • Nathan: that sounds like a UX footgun.
  • Pierrick: sometimes students are confused when deleting keys. Channels can be hidden there, then they won’t be deleted, and then still show up in the dopsheet. It would be better if these visibilities were consistent.
    • Pierrick: maybe the solution is to have the Action editor show “hidden in the graph editor” in a different way, for example desaturated.
    • Christoph: if you can give me a bug report, I can look at a fix.
    • Pierrick will write one.

Next Meeting

The next meeting will be on Thursday 2024-02-29T17:00:00Z. Again it will be open for everybody who’s interested. The provisionary meeting agenda will be updated before the meeting.