2022-12-08 Animation & Rigging module meeting

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

Present: Brad Clark, Christoph Lendenfeld, Ingo Clemens, Jeremy Bot, Jeroen Bakker, Marc, Marion Stalke, Nate Rupsis, Nathan Vegdahl, Rik Schutte, Samuel Bernou, 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 3.4 was released yesterday.
  • Reminder: update the release notes in the wiki for non-bugfix changes that are relevant to users of Blender.


Short-term goals

  • T101130: Regression: Scaling of NLA Strip Via S Hotkey Not Working
  • T87548: Propagate Pose, Next Keyframe
    • Christoph is working on a fix: D16654
    • Test builds available
    • Christoph made it so it consistently adds keys on the same frame.
    • Sybren explains his idea about what this feature is for. It is likely a “poor man’s Blend To Neighbour” from way before Blend To Neighbour was added. Let’s say you have poses keyed on frames 80 and 100. Now you want to blend the pose on frame 100 a bit more towards the pose on frame 80. You can scrub the timeline until you see the pose you want, then use Propagate To Next Frame to update frame 100.
    • Rik got this to work for the “next/previous keyframe” modes. The “while held” mode is still a mystery, nobody knows what it should do.
    • Sybren: let’s remove that “while held” feature, as it’s in the way and causes confusion. The module agrees. Christoph will do in a separate patch.
    • Christoph: we need the “Add Keys” option, because the “For Selected” mode could be interpreted in two ways: “only update the selected keys” and “propagate the pose on the frames indicated by the selected keys”.
    • Christoph: This keyframe selection be seen as a workaround for not being able to select moments in time. lack of selecting time, Nathan agrees selecting frames themselves & periods of time is necessary.
    • Sybren: This dual use of key selection blurs too much what the operator is for.
    • Christoph: Agrees, as he sees this operator as targeting the 3D Viewport. For graph editor workflows, We can make a separate operator “copy current pose to selected keys”.
    • The module agrees to make the “Propagate Pose To …” operator always create new keys, and remove the “Add Keys” option.
  • T93406: Removal of most of the old pose library
    • Sybren removed it, fixing an 11-year-old FIXME in the process.

Marion pleads for T99113: Add Selection functionality to weight painting mode to be worked on. It’s added to the Short Term Goals list.

Demo by Monique

Crowd sim demo, originally planned to be given by Monique Dewanchand. Be sure to watch her Blender Conference 2022 talk Crowds for Battle. Because Monique is ill, Jeroen takes over. He’s core Blender developer working at Blender Institute, and co-author of their crowd simulation sytem.

He goes over the animation system, and how they improved performance. In a nutshell:

  • The biggest bottleneck is dependency graph evaluation, and the upload of deformed meshes to the GPU.
  • The simulation is run, and the result stored as animation blends in the NLA.
  • The dependency graph evaluation result is cached to a separate file on disk.
  • Crowd Agents in the same pose get merged. This is done across all frames of the simulation.
  • A custom viewport overlay is used to enable the fast playback of the cached data. For each frame the character poses are uploaded to the GPU, and instancing is used for the duplication.

All of this is done in Python.

The performance, for 75 textured characters and 15k faces per character:

  • Blender’s default behaviour: around 1 frame per second (FPS).
  • With the caching overlay enabled: around 14 FPS for the first playthrough, 22 FPS when looping.

Patch Review & Decision Time

Help Needed

  • Rik Schutte created a Right-Click Select proposal New autokey preference: ‘Only changed’. There was no time in the meeting to discuss this.
    • The open question is: Does he propose a new mode for the auto-keying system? Or is he describing how the current “Only Insert Needed” option is supposed to work?

Next Meeting

The next meeting will be an off-schedule meeting on Tuesday 13 December, 12:00-13 CET (Your local time: 2022-12-13T11: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.