2012-12-05 Animation & Rigging module meeting

The meeting will be on 2024-12-05T17: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: AnimSebs (DillonGoo Studios), Christoph Lendenfeld, Dorothee Dittrich Drew Medina, Nathan Vegdahl, 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

  • Quality Project started Blender-wide

Landed

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

Blender

Technical Documentation

User Manual

Ongoing Work

  • High Prio bugs:
  • Christoph:
  • Nathan:
  • Sybren:
  • Animator meeting at Blender HQ, with Rik Schutte, Hjalti Hjálmarsson, and Pablo Fournier:
    • Discussed Blender’s behaviour for auto-assignment of slots when switching Actions.
    • Current behaviour is to pick the slot:
      1. with the same name as the last-assigned slot, or
      2. with the same name as the data-block.
    • This behaviour fails to auto-select a slot when different Actions have different slot names. This is very common when opening an old file with one assigned Action and a bunch of used Actions.
    • In that case, when upgrading them to slotted Actions, Blender will use the name of whatever is using the Action to name the slot. If there is no user, it names it just “Slot”.
    • This means that different Actions will have different slot names, even when they are meant to animate the same object.
    • The proposed solution: when upgrading legacy Actions, always name the slots “Legacy Slot” regardless of their users. Switching between such Actions will just work.
    • Sybren will work on this.

Slot Assignment & Legacy Python code

Nathan and Sybren were discussing slot auto-assignment, i.e. which slot gets assigned automatically by Blender when you assign an Action. There is a conflict here between the Python API (should remain backward-compatible) and desired workflows for animators (slotted Actions are different than legacy Actions, and thus should sometimes behave differently).

The image are Sybren’s scribbles on his iPad, to illustrate the flow of Python code. White represents the behaviour of Blender 4.3. Different colours are potential additions / changes for Blender 4.4.

Action Assignment First

The scenario: create an Action, then assign it, then start adding F-Curves.

The Purple alternative seems the most promising one: when a slot is created by the legacy Action API (so for example action.fcurves.new()), that slot can be assigned to every data-block that has this Action assigned.

  • Christoph & Nathan: that could work, indeed.
  • Nathan: Only do this when the legacy API for creating curves creates the first slot for the Action. By definition that means that none of its users have an Action Slot assigned yet.

F-Curve Creation First

The scenario: create an Action, add F-Curves, then assign the Action to an object, then to another object.

The Green alternative seems the most promising, as it allows us to retain backward compatibility of the Python API without breaking the slotted actions workflow. But this has a big BUT: it differentiates between Action assignment through Python and through the Action/ID selector. This should be technically possible, but has to be discussed with other Blender developers to see if this is considered to be too janky.

Nathan: adds another possible alternative: make the “Legacy Slot” even more special. Make selection of that slot not update the “last used slot name”. If Blender always auto-selects that slot, it will make it behave like legacy Actions without interfering with how slotted Actions work. It would also make the Action hard-limited to 1 slot only.

  • Sybren: it would then still be impossible to assign to a 2nd object and not modify that object (i.e. this would overwrite Object B’s properties with Object A’s animation)
  • Nathan: true, but the Action was effectively created as a legacy Action, and that is the same behaviour as with legacy Actions. Not sure if this is good. But it’s a possibility.
  • Sybren: I would like 4.4 to have slotted Actions just work as slotted Actions, so ideally avoid having this dual behaviour.
  • Nathan: regardless of what we choose, any handling of the name “Legacy Slot” will have to be dropped in 5.0 anyway. We have to think about what we can do in the 8 months between 4.4 and 5.0 releases.
  • Nathan: We have to decide “where to put the jank”, because it’s going to be janky somewhere.
  • Sybren: Shovel the jank more towards developers. People should be able to work for a long time with the 4.5 LTS release.

Next Meeting

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

4 Likes