2020-10-01 Animation & Rigging Module

Present: Bassam Kurdali (@bkurdali), Luciano Muñoz (@looch), Sebastian Parborg (@zeddb), Sybren Stüvel (@sybren)

The goal of this meeting was to address the most pressing topics to work on in the Animation & Rigging module. Longer-term goals will be discussed at a later time.

Short-term goals

To manage short-term goals, Sybren will create a workboard column “Short Term”. This will allow the module to focus on specific tasks without promising which specific Blender release they will be finished in.

Chosen as highest priority short-term tasks are:

Medium priority tasks are:

Lower priority tasks are:

Nice-to-Have New Features

These features should be relatively easily added to Blender, given that there are already add-ons that implement the functionality.

Copy/paste world transform

There are various add-ons that provide copy/paste buttons for the world transform of objects and bones. These can be used for FK/IK switching, enabling/disabling constraints, reapplying transforms, etc.

  • The built-in Copy Attributes addon has something similar.
  • Sybren has another add-on that does this: Copy Visual Transform

On a side-note: bone matrix explanation in the Python API documentation should be clarified/expanded.

Copy/paste Pose

A similar feature as above, but then copy/pasting an entire pose. This functionality already partially exists.

  • Allow copy/paste between blend files. This used to work, but isn’t working any more.
  • Sybren has the Real Pose Copy add-on for this.

Once the basic functionality is in Blender, it could be improved upon, for example by copy-pasting the pose over a range of frames.

There are basically two ways in which this can be implemented:

  • Convert the pose to text, put that on the clipboard, and reconstruct the pose when pasting.
  • Save the pose as tiny blend file that’s loaded when pasting.

Both have their own advantages and disadvantages. A design task should be created to flesh this out.

Long-term goal: enrich Timeline/Dope Sheet

Yes, some long-term stuff of course still snuck in.

  • Include all time-related data, not just keyframes (like caches, FCurve Modifier time parameters). Make more things editable, for example move keyframes AND cloth sim cache in time.
  • Apply changes with falloff over time (f.e. translate already-animated character in space, for all selected keyframes).

Conclusion

There are many animation features in Blender that work ok-ish, but need polishing. The first goal of the Animation & Rigging module will be to work on improving existing features and adding smaller new features.

This meeting was just between (some of) the Animation & Rigging module members. For the next meeting the Jitsi link will be public, and anyone will be welcome to join. It’ll be on Thursday 15 October at 15:00 Amsterdam time.

20 Likes

Great to see these modules getting attention and the communication being transparent though these threads!

Quick question - there are some areas which are intertwined and where it may be hard to determine which module they should belong to, such as:

  • Live shape keys for being able to use alembic caches as shapes (only one example, this is heavily used when combining various dynamic or collision rigs)
  • The reliance of matching topologies for shape keys as opposed to matching vert numbers (as long as the vert numbers are matching between a head and a body for example, there’s no need to have the whole body matching in terms of topology)
  • Shot sculpting in general
  • CUDA shape keys. If there are thousands of shape keys for heavy topologies this can make a huge difference working with complicated rigs.
  • A fast and reliable surface deform modifier (like proximity wrap). Seeing the difference between between GPU based ones and ones not running on the GPU the difference seems to be night and day. Arguably this is something that’s more often used in rigging than modeling. Different bind methods like proximity, UVs and such might be a great addition as well.

Are there any guidelines in terms of where to best put these sort of requests? They seem to be in a bit of a grey zone, but they’re nevertheless heavily used in production.

2 Likes

Triple yes from me ! could be made as an extension to the data transfer modifier, seems to fit right in there.

Good to see news on this front. :slight_smile: Manipulating caches in the timeline sounds great as well (or instead this could be a job for the NLA). I can see those are mostly contained projects, and that’s great but I’d love to see an initial plan for an overhaul of rigging too : muscles, node-based constraints, nurbs, bone dynamics & history-dependent constraints, etc. Doesn’t have to be a detailed plan, but interrogating the animations teams on what they’d like to work with a couple years from now would be nice.

Cheers,

Hadrien

3 Likes

@dan2 As said in the conclusion, the first goal is to polish existing functionality, so that what there is already, is really good. What you’re suggesting are bigger new features, though, and would in some cases require major changes to how Blender works.

The best place to discuss feature requests is Right Click Select. There you can gather feedback, and really flesh out how features should work in Blender from a user perspecive before discussing with developers.

3 Likes

I understand. What you suggest has been done several times already, over the years : there are pages and pages of ideas, big and small, over at BlenderArtists, on how to improve the animation and rigging system. Would you like me to provide some links ? I’ll try to collect as much as I can.

I also wonder what the animation team at the institute would like to have. Surely they also work with other software once in a while and must have a wishlist of some sort ?

There’s that already : https://blenderartists.org/t/2-x-rigging-refresh-discussion/1101867
A thread I opened two years ago, a few remarks in there are outdated (some constraints limitations lifted by Alexander, most notably) but most of it is still fresh, and although they’re mostly disconnected ideas, they should be worked into the great new design plan we’re all daydreaming of.
…aren’t you ? :o

This thread is just the meeting notes, showing what we did talk about and what we will work on in the short term.

Every time I post something has been done or discussed, there are always people responding with “but this needs doing too!”, and frankly it can get a bit frustrating. Yes, I know there is more work to be done, but being pointed at it every time time someone says they’re working on something also can be demotivating. I know it comes from enthousiasm and isn’t intended to be negative, but still, it can be rather overwhelming. I hope you can understand.

7 Likes

You asked for fleshed out ideas, I’m just delivering -there’s no pressure at all.

2 Likes

The most important tool is the Graph Editor,it’s still lacking many small & not so small features that improve the workflow like (auto-framing, default expanding of the channels, easy way to isolate selected channel, stacked curves…etc) so i do hope it gets the polish it deserves.

2 Likes

Thank you for your answer. I didn’t mean to derail the thread or to use it as a dump for requests, it was more in the line of “where to put module specific requests which are hard to classify as such?”. Wasn’t sure if rightclickselect is still the go-to place for these sort of things.

Your efforts are greatly appreciated. I’m using Alembic every day in production and very much looking forward to USD as well.

I wouldn’t read too much into various requests especially to the point where it has an impact on motivation. It’s just a matter of funding, if the fund grows development pace can pick up, if not it’s going steadily in the right direction anyhow. Nothing wrong with that.

1 Like

Thank you all :hugs:

And yes, the graph editor will see some love.

11 Likes

This is something I might be able to help with. I use each one of the several matrices extensively in my addon :smiley:

3 Likes