2023-06-08 Animation & Rigging module meeting

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

Present: Armin Halac, Brad Clark, Christoph Lendenfeld, Eduardo Rubio, Fani-Eleni Pandi, Jason Schleifer, Marion Stalke, Nathan Vegdahl, Nitin Rawat, Paolo Amadini, Sybren Stüvel

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

Links

Since the Last Meeting / Announcements

  • Sybren renamed ‘Powership’ to ‘RigNodes’ so that it’s more self-explanatory.
  • Grease Pencil was used for certain effects in Spider-Man: Across the Spider-Verse (source: Daniel Martinez Lara)
  • Sybren, Nathan, and Brad had a meeting about requirements for a new data model. Not much concrete outcomes yet.

Landed

Blender 3.6:

Blender 4.0:

RigNodes:

Short-term goals / Ongoing Work

Patch Review & Decision Time

  • #106214: Only show FCurve modifier toggle widget when there are modifiers
    • To decide: land as-is, or expand what the wrench button actually does?
    • Brad: make it 3-state. Just for visualisation of ‘there are some muted modifiers’.
    • Sybren: still keep the functionality as-is, as ‘muting all’ is not the same as ‘muting every one individually’? Module agrees.
    • Nathan: even when there are no modifiers at all, the wrench should still be showing.
    • Christoph: agrees, can just be dimmed heavily. Would be consistent with Blender’s over “this doesn’t do anything but you can change it anyway” behavior.
    • Decision: instead of hiding when there are no modifiers, heavily dim the wrench.
  • #108309: Animation: Merge Push/Relax Rest Pose operators
    • This PR merges ‘Push to’ and ‘Relax from’ Rest Pose operators, as they are doing the same thing but just in different directions.
    • Christoph would like to have more opinions on the name, “Blend Pose to/from Rest Pose” is currently on the table, but nobody is happy with that.
    • Marion: “Blend with rest pose”
    • Module is happy with that.
    • Christoph: would be inconsistent with the graph editor ‘Blend to Default Value’; shall we change that to ‘Blend with Default Value’ too?
    • Module agrees.
    • Decision: these get renamed:
      • Viewport operator: “Push Pose from Rest Pose” ⇒"Blend with rest pose"
      • Graph editor operator: “Blend to Default Value” ⇒ “Blend with Default Value”

Slotted Actions

Sybren and Nathan have discussed a design for ‘Slotted Actions’, which Sybren explains to the module.

The gist of it:

  • The ‘empty’ slot acts exactly like an Action acts now. Its animation will always be applied to whatever the Action is assigned to.
  • If a data-block (like an object, in the drawing below) has a slot name, it will also be animated by the data in that slot.

Here the green lines indicate the FCurve groups (like ‘Object Transform’), and yellow lines indicate the FCurves.

  • Jason: think about handling renaming
    • HjaltiHjalti.001
    • Would be cool to see if we could include regular expressions as well
  • More questions by Jason:
    • How to handle this with pose library?
    • How will things be visualised in the dopesheet, graph editor, etc?
  • Paolo: name-based mapping is spot-on, it’s how people reason about animating things.
  • Armin: multiple datablocks with the same slot? Sybren: yes, they’ll simply share the animation, just like assigning the same Action works now.
  • Christoph: what if there’s animation in the empty slot AND the named slot? Sybren: both will be evaluated, and if there is overlap, the named slot ‘wins’.

Demo of ‘Update Pose Asset’ and ‘Replace Pose Asset’ operators

Sybren showed two new pose library operators, to gather feedback on the functionality: #104673: Animation: operators to update the pose library

  • Paolo: naming is unclear, the danger of discarding parts of the pose deserves more clarity.
  • Jason: prompt that clarifies “you’re going to delete, are you sure?”
    • Sybren: rather not. It could show ‘X FCurves deleted’ in the bottom, as a warning.
  • Marion: “Overwrite” instead of “Replace”?
    • Nathan likes
  • Jason: “Replace With Pose”? “Update pose with selected bones” and “Replace pose with selected bones”?
    • Marion likes
  • Paolo: another option, that uses all the bones in the pose regardless of their selection state.
    • “Update pose asset from current pose”
    • Sybren: “Refresh Pose”? Module likes.
  • Sybren: “pose” vs “pose asset”?
    • Paolo: it’s clear
    • Jason: “asset” reminds him of “the character”, so maybe “library pose”?
    • Sybren: Maybe “update/replace with selected bones”?
    • Jason: but then what are you updating?
    • Paulo: whatever you clicked on

NLA behavior: last frame of clip

Paolo describes an inconsistency with NLA strips, compared to other NLA-like systems. And even compared to the VSE.

With two strips, X=1…10 and Y=10…20, on frame 10 the animation system shows the last frame of strip X.

  • Brad & Sybren feel showing first frame of Y would be good.
  • For looping, things might be different. With NLA strip X=[1, 10] set to loop, on frame 10 itself, should it show frame 1 again?

Paolo is going to investigate the technical implications of changing this behavior.

Bone Collections

Sybren talks about the idea to replace the armature’s layer system with a collections-like system.

  • Sybren: we have to hurry, but for backward-incompatibility Blender 4.0 is THE time to do it.
  • Marion explodes in happyness.
  • Brad: is there an existing start?
  • Marion is using the Bone Manager add-on.

Help Needed

Next Meeting

The next meeting will be on Tuesday 2023-06-13T10: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.

7 Likes

Link to the Bone Layer Manger Add On Bone Manager (Blender)
it can also help creating a Rig UI
blender artists posting Bone Manager (Addon) - Released Scripts and Themes - Blender Artists Community
though some of the links under the AddOn are very old it is updated a lot

2 Likes

Yes for Bone Collections. Have you thought how it would work with Bone Groups? Similar names might be confusing, maybe its functionality can be inherited by Bone Collections?

Thanks @Marion-Fischer for the links!

IMO ‘bone groups’ should just be merged into the bone collections system, indeed. After all, it’s a way to give a set of bones a name (which is handled by the collections) and a colour (which could also be handled by the collections).

2 Likes

Does that mean it’s been decided on the longer term to keep using armature/bones for character animation, rather than rigging with objects (as the idea was floating a while ago)? I don’t remember reading about it since then.

Yes, as rigging with objects only would introduce a lot of other issues that would need further design, like multiple uses of the same armature, or multiple armatures in the same scene with the same root name (you don’t want to have root_1 in one armature, root_2 in another one, etc).

There is the desire to make more tooling pose/object mode agnostic though. It should be simpler to animate with a mix of armatures and objects, and it should also be simpler (through better APIs) to create tooling for this.

2 Likes

Somehow I had missed your reply.

This sounds like namespaces ?

:+1:

I’m curious as to whether or not some more thought had been given to “rich structures, simple tools” vs “simple structures, rich tools”? Maybe not the original wording,… I’m sure you see what I’m referring to. The question intrigued me, especially having seen the ephemeral rig in action.

Yup, indeed. To completely replace armature bones with objects would require more changes than just the namespacing. And some of these things we may want to do regardless, even when we keep armatures, namely giving all objects a ‘rest pose’, and not just armature bones.

Recently we had a workshop to define a new data model for animation – the Hadrien replying there is likely you, but I’m not 100% :wink:
This is where our focus lies now. And overall I feel we’re more going towards “simple structures, rich tools”, as specific tooling could be written (or prototyped) by add-ons, whereas the underlying data model is more important to nail in Blender itself.

2 Likes

Yes, that would be me. Thanks for elaborating. I realize the data model design is the main thing right now.

I think that’s the smartest way to go about it. The case I find most obvious relates to bendy bones : right now, a rigger needs to encapsulate all bbone functionality (such as tangent, easing, twist and so on) into other controller bones. That means the rig complexity increases for no valid reason, because those properties exist, they’re just not manipulatable directly in the viewport by a regular animator. It’s more work for the rigger too. If we envision dedicated tools to manipulate bbone handles (and other properties), one could keep the rig simple by eliminating all that is not the bbone itself.

Good continuation,

Hadrien

4 Likes