2025-03-06 Animation & Rigging module meeting

The meeting will be on 2025-03-06T17:00:00Z. It is open for everybody interested to join the video call (link below).

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

Present: Andy Beers, Brad Clark, Christoph Lendenfeld, David Woolf, Dorothee Dittrich, Drew Medina, Jorn Boven, Nacho de Andrés, Nathan Vegdahl, Nitin Rawat, Sybren Stüvel

Links

Opening

  • Please raise your hand when you don’t understand things for any reason. The purpose of these meetings is collaboration. It is absolutely fine to ask for explanations.
  • There are no recordings of the meeting. This way everybody is free to say or show anything they want.

Since the Last Meeting / Announcements

Landed

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

Blender

Technical Documentation

Ongoing Work

  • High Prio bugs:
    • #132423: Crash/Freeze when having multiple drivers on vertices positions (probably needs some dependency graph support)
    • #135236: Legacy slot not assigned automatically when assigning (legacy) action in 4.4 beta
      • Sybren & Nathan had discussion. Came to the conclusion that we’ll have to accept that in certain cases there won’t be a slot auto-assigned. In any case, after a slot has been assigned manually, switching to other Actions should automatically assign the slot of the same name.
      • During the meeting, Nacho voices concern about having to manually select a slot for each of the 300 Actions he has in a file.
      • Sybren: that’s not necessary, as once the Armature has been assigned an Action and a Slot, it’ll remember the slot name. Switching to another Action will pick up the slot with the same name, if it exists.
      • Nacho tests this & confirms that only the first slot selection is a manual action, and after that things are automatic. This is acceptable.
      • For Blender 5.0 we envision the following improvements:
        • The last-used slot identifier should be visible in the slot selector, and editable / erasable, when no slot is assigned.
        • Slot auto-assignment happens only based on the last-used slot identifier. So no longer based on the data-block name.
        • When the last-used slot identifier is empty, no slot will be auto-assigned.
        • This will make the situation more predictable, and give users control over when a slot gets assigned, and when not.
    • #135375: Fix #135290: NLA move channel crash when GP object data animation is present (fix waiting for approval)
    • #135523: Pose Mode Motion Paths is not honouring Selected Keys option (fix approved & will land soon)
  • Andy:
  • Christoph:
  • Nathan:
    • Nathan’s weekly report
    • Last meeting we discussed playback behavior with scene frame range. Everyone at the meeting agreed on how it should behave, with relatively little discussion needed. However, Nika Kutsniashvili (not present at the meeting) commented on the meeting notes with a use case we hadn’t considered. I think it would be good to revisit this with a more thorough discussion, and Nika present.
      • We also discussed this at the Tuesday meeting with the Blender Studio animators (see further below for that discussion). We think we came to a good solution.
  • Sybren:
  • Animator meeting at Blender HQ, with Rik Schutte, Hjalti Hjálmarsson, and Pablo Fournier:
    • Discussed behaviour for bone selection operators.
    • Sybren wrote: #135105: Anim: Pose Mode bone walking
    • Philipp Oeser worked on #134503: Improvements to bones “Select Child/Parent” hierarchy, but closed the PR to let someone from the A&R module take over.
    • Discussed frame range playback behavior (follow up to the module meeting discussion last week):
      • Nathan summarized the discussion so far from the module meeting and the comments on the meeting notes.
      • Sybren: related, I have been working on an addon that adds a bunch of playback options. For example, an option to not loop. Some of these could be added as built-ins.
      • Nathan: options are great, but we also need to decide on sane defaults.
      • Animators: didn’t even know about the during-playback ability to move the frame head before scene start. Never used that, don’t really want it.
      • Nathan: there are actually two issue here:
        1. Currently the behavior when starting playback and during playback are different. Is that desirable?
        2. What should the out-of-range behavior be for playback? Nika has a use case for playing from before the scene start.
      • Animators:
        1. The behavior should be consistent between the two.
        2. At least the default should be to snap in-range.
      • Sybren: we can accomodate Nika’s (and other people’s) use cases with additional playback options.
      • Conclusion: make starting-playback and during-playback behavior consistent, add option for playing back before scene start that’s off by default.
      • There was also discussion about the current options in the Timeline Editor’s “Playback” menu. Specifically: the playback vs scrubbing related options are very confusingly intermixed. All present agreed that should be cleaned up to make that distinction clear.
      • (continuing in the module meeting:)
      • Drew: also wants to have an option for playback after the end frame.
      • Sybren: that’s fine, it can just play without looping.
      • Nacho: maybe could be a single option ‘restrict playback to scene range’, which would cover the before & after. Sybren: the option that’s now called ‘playback: restrict to range’ should be named something like ‘Scrubbing: restrict to range’.
      • Nathan: in general, wants to reduce configuration options if we can help it. So in favour of the one-for-both-sides option. And maybe we can merge more. Good for discussing in a design task.
      • Sybren: I think it might also be nice to have a playback option that always starts playback at the start frame. That’ll make it more convenient to see the frame you’re editing in the context of the preview/scene range.
      • Nathan: the option to (dis)allow negative frames is goofy. It should always be possible, especially as there’s the option to limit to the scene range.
      • Nacho: maybe some exporters do not allow negative frames, it could be for compatibility with those?
      • Brad: FBX has no limitation here. Not sure about other formats. Also in favour of keeping these settings clear.
      • Nathan: it’s also common to use negative frames for warm-up of simulations. It’s common to do this by always starting at frame 101 (for example), but again that’s just goofy.
      • Sybren: even with the preference OFF, it’s still possible to have keys on negative frames, by moving them after creation. It just limits the playhead.
      • Nathan: proposes to remove the option altogether.
      • Module agrees. Sybren will check with some other animators before finalizing.
      • On the topic of looping: Nacho suggests hooking up the playback looping to the Action’s setting for Manual Frame Range + its ‘Cyclic’ option.
      • Sybren: that’s hard, because multiple objects can have different Actions with different lengths & options there.
      • Nathan: could be a nice addition to the Action to Scene Range add-on, to make it set up the looping as well.

Help Needed

  • #131810: UI: Transparent Armature Bone Selection needs testing & feedback.
    • Jorn & Nacho: is it possible to draw the bones semi-transparent, and selection work on the wires only?
    • Nathan: that’s not possible right now, with the way Blender has structured things internally.

Next Meeting

The next meeting will be on 2025-03-13T17:00:00Z. Again it will be open for everybody who’s interested. The provisionary meeting agenda will be updated before the meeting.

4 Likes

Never read my name so many times in meeting notes :sweat_smile: Thanks for taking my feedback in account and discussing it so thoroughly!

I like what module arrived at. Thinking about looping options extensions, and some ideas proposed here, I think while one “Restrict Playback to Range” option would be great, my ideal solution would be two enum menus for starting and ending animation.

Start:

  • Start playing from the range start
  • Start playing from the current frame
  • Start playing from the current frame (ignore scene/preview range)

End:

  • End at the range end
  • Continue playing beyond range end
  • Loop indefinitely inside range
  • Loop until start frame

I know this can be little daunting and feel overcomplicated, but I think if we provide good defaults that 90% users don’t need to touch at all, those options can cover all the possible scenarios user might have (also good to remember that playback settings affect video editing too, and those workflows will benefit from those settings probably even more).

In my workflow, especially when I animate lip syncs I use preview range extensively, sometimes even to loop 3-4 frames to hear one syllable, and during that I also need to be able to play animation in full, see how previous sentence sounded/looked to see how similar current one is, to show supervisors entire animation, etc.

Currently I have to change preview range for that all the time, I just keep doing Alt+P over and over (I can probably make add-on to save preview ranges and cycle through them with shortcut, but I don’t think it will be easier). I also have to keep hitting Shift + ← to go back to range start before playing animation. Being able to just change playback settings and not break my carefully placed preview ranges would be fantastic.

2 Likes

Since my brain can sometimes have trouble with negations, I’d propose the opposite:

  • Start playing from the current frame (clamped to scene/preview range)
  • Start playing from the current frame
  • End at the range end

Just for clarity, I’d write this as “Stop a at the scene/preview range end”.

Also, it is my intention to make all the “scene/preview range” text dynamic where possible, so that you only either see “scene range” or “preview range”, based on what is active at the moment. It’s the same setting, just with the label reflecting which one is active at that time.

Yeah, for these kind of use cases I was thinking of the “Start playing from the range start” option too.

1 Like

Regarding playback start/end options, I have a proposal to add enum options for camera markers. Not sure if my workflow is common place at all, but I delimit shot changes using camera markers in one large scene. So being able to play back an entire shot (from the current camera marker until the next one) would be a useful option for me!

Though to me it also looks like the “end of playback” should be chosen separately from “should we stop or loop at the end”, to avoid too many combinations. So one checkbox “Loop playback” next to the start and end enums.

In addition to auto-normalization of vertex weights in Edit Mode, I think that an option to absolutely remove vertex weights when their number goes to zero would be a huge help. I do most weight editing in Edit Mode, and while I can clear the weights in the vertex weight menu it would speed it up considerably for that to be an option.