The meeting was on 2024-02-01T17:00:00Z. It is open for everybody interested to join the video call (link below).
Present: Christoph Lendenfeld, David W (Studio Galt Mocap), Demeter Dzadik, Felipe G, Jason Schleifer, Jeremy Bot, Luciano Muñoz, Nate Rupsis, Nathan Vegdahl, Nitin Rawat, Sybren Stüvel
People present are referred to by first name for brevity. Others are referred to by full name.
Links
- Video Call. Note that there are no recordings of the meeting. This way everybody is free to say or show anything.
- A&R Module Meetings calendar for inclusion in your own calendar
- Previous & next meeting notes
- Issues & Pull Requests
- #animation-module chat channel
- Draft agenda for any upcoming meetings
Landed
Names are from the Git log.
Blender
- a7f41fc9382: Anim: bone collections, add ‘solo’ flag (Sybren A. Stüvel) (2024-01-26)
- f623c8f7bc5: Anim: remove ‘Solo Visibility’ bone collections operator (Sybren A. Stüvel) (2024-01-26)
- 848f83e2100: Anim: bone collections, add ‘un-solo all’ operator (Sybren A. Stüvel) (2024-01-26)
- 9c172d739fc: Anim: refresh ‘solo active’ on armature after removing bone collection (Sybren A. Stüvel) (2024-01-26)
- b79419914a3: Anim: avoid moving/assigning bones to a linked bone collection (Sybren A. Stüvel) (2024-01-29)
- f0aa69ff3ac: Fix #117620: Crash when moving bones to linked bone collection (Sybren A. Stüvel) (2024-01-29)
- f2e7f260723: UI: Tree view, no longer auto-expand clicked item (Sybren A. Stüvel) (2024-01-30)
- 8771e0c4ce8: Anim: Change tooltip for Insert Needed and Insert Available (Christoph Lendenfeld) (2024-02-01)
- 35317749e08: Depsgraph: add explanation to
evaluated_get
RNA function (Sybren A. Stüvel) (2024-02-01) - b2aa36485bb: Fix: Regression of Python API for anim.keyframe_insert (Christoph Lendenfeld) (2024-02-01)
Add-ons
- 69f9e45f: Rigify: update code to support nested bone collections. (Alexander Gavrilov) (2024-01-30)
Technical Documentation
- 8e166f3: Release Notes: 4.1, add new keying set hotkey (Christoph Lendenfeld) (2024-01-26)
- 2138d17: Update docs/release_notes/4.1/add_ons.md (Alexander Gavrilov) (2024-01-30)
User Manual
- 6722dd40c: Anim: Update Keyframing description (Christoph Lendenfeld) (2024-01-26)
Short-term goals / Ongoing Work
- High Prio bugs:
- #117620: Crash when moving bones to another collection in linked Armature (already fixed)
- #115915: Very strange constraint jiggling not present in blender 3.6.3 (technically not yet marked as bug, but it’s a report about a change in behaviour since 3.6).
- Christoph:
- #117593: Anim: Motion Paths in camera space
- Jason: How does it work when you’re switching scene cameras?
- Christoph: I’ll have to try that out.
- Nathan: maybe in the future allow baking in the space of anything.
- #117669: Anim: Graph Editor - automatically lock key translation to a single axis
- Christoph: still work in progress, was requested by Dreamworks animators last week.
- Christoph: please test, there is a test build available.
- Christoph: will target Blender 4.2, no need to rush this into 4.1.
- Christoph’s weekly report
- #117593: Anim: Motion Paths in camera space
- Nathan:
- Nathan wants to schedule a meeting with whoever is interested to go over the MVP UX mockups for the new animation system and gather feedback and ideas.
- Nate & Luciano are interested in joining.
- Nathan will coordinate in
#animation-module
.
- Where to upload the mockups?
- Nathan: create a design task on projects.blender.org & attach there?
- Sybren: maybe upload them to Blender’s Google Drive, and link them there. We should have a shared place there already for Animation & Rigging, if not we should make it.
- Nathan’s weekly report
- Nathan wants to schedule a meeting with whoever is interested to go over the MVP UX mockups for the new animation system and gather feedback and ideas.
- Sybren:
- Harley Acheson took over the Tree View changes in a PR of himself: #117654: UI: TreeView Changes Including Curved Elbow
- Progress on layered animation: Layered Animation Model: Open Questions & TODOs - HackMD
- Sybren’s weekly report
- Animator meeting at Blender HQ:
- Sybren demonstrated his prototype for a new ‘Copy Global Transform’ mode. Animators are enthousiastic.
- Discussed what should happen in the layered animation system, when strips are used to limit the effect of FCurves. Basically: what happens when a strip animates a property, but that strip is not active on the current frame? Mentioned potiential answers were:
- Keep track of all properties that are animated by a layer. Any property that is not animated by a strip on the current frame is reset to its zero value. This is predictable, but for objects snapping everything back to the origin may not be desired.
- Use constant interpolation between & outside strips.
- Do not introduce strips to the data model yet, just work with keys on layers. Strips might be handled differently when we have more experience with “basic” layered animation. There’s also still the idea of having “named ranges” of keys, which could be used for strip-like manipulation without having FCurves pop in and out of existence at the strip boundaries.
- Module responses: good idea to focus on stripless layers first.
- Sybren’s random idea: Separate “layer” for “unanimated values”, that define the base values for layered animation. By default implicitly the default value of the properties, but any property can be “pushed to unanimated” to set its reference value for that animation.
Patch Review & Decision Time
- Layered Animation and deletion operators.
- Delete of Layer and Strip is currently implemented (branch), and are fairly straight-forward to understand what happens (whatever is on them is deleted too).
- Delete of an Output is open question.
- Sybren: Is it clear enough that this will delete all animation defined for that output? Since it’s a new concept, are we sure this is clear? How to deal with this?
- Nathan: maybe a naming thing?
- David: “unattach” vs. “delete”.
- Sybren: ok, I’ll build low-level function to delete, and leave the rest to UX/UI design.
- #117287: Anim: Ease to Ease operator
- There is some discussion about improving UX/usability of the operator.
- Christoph: effectively this should be a 2D slider, because the operator really has two parameters to tweak (‘sharpness’ and ‘bend’). The current ‘Ease’ operator is also used to linearise certain animation.
- Nathan & Sybren: maybe just add a separate operator for that linearisation, so that it’s clear which operator is for what.
- Sybren: hotkey for toggling the slider between the two parameters? Jason: like Tab or something.
- Christoph will try to make it before 4.1, but not sure if he can make that.
- Sybren: Let’s keep the ‘Ease to Ease’ as a PR, and only land it & replace the ‘Ease’ operator when it’s done in a way that will be the final UX. So likely for 4.2.
- Nate: people already have Animaide, so they already have the ease-to-ease functionality. Waiting is fine.
- Nathan: the flipping between ‘slider properties’ will need some collab with the UI module as well.
- Luciano: the breakdowner already has keys to toggle which properties are blended (G to only do locations, for example), so it’s already quite close to what we need.
- To decide: do we keep using this Jitsi instance, try out another Jitsi instance, or go back to Google Meet?
- So far Jitsi worked well, but there were issues with video not being visible for many people (audio still fine).
- On the previous Jitsi instance, people were anonymous by default, and it was unclear where to change your name. Jitsi on today’s instance doesn’t allow joining anonymously, so immediately gives popup for entering your name.
- Sybren: I like Jitsi, but it’s a video call, I want to see people.
- Nathan: it’s hard, because I don’t really want to go back to Google. Felipe agrees.
- Luciano: Discord? The video streaming is super nice.
- Nate: I’m indifferent. Biggest plus for jitsi is the chat history.
- Nathan & Sybren: unfortunately, not ok to go to such a closed platform.
- Nathan: do you need a Google account to join Google Meet? Sybren: nope, you can just type your name & join.
- Nathan: maybe the video issue is not a fundamental issue of Jitsi, and just a configuration? We might get in touch with the people hosting the service and see what they can do for us.
- Decision: Sybren will contact waag.org and see what they can do.
Demo: Copy Global Transform ‘Iterative’ prototype
Sybren demonstrated the new ‘Copy Global Transform’ approach, which should work even when there are constraints on the bone/object.
This is limited to “offset” constraints, i.e. ones that combine with the existing transform. If they completely overwrite the transform (like Copy Location, disable “Offset”, 100% influence) there is nothing that can be done to move that bone/object to another location.
- Sybren: this works by ‘wiggling’ the location & rotation properties in the direction that brings the bone closer to where it has to go. It’s just a sequence of tiny wiggles.
- Sybren: This is just a prototype, once implemented in C++ it will go faster.
- Denis: Looks good, I currently use IK FK snapping scripts that are less than perfect.
- Demeter: sometimes you want to tweak something other than the thing you want to align, would that be possible?
- Sybren: in theory, yes, because of the distinction between the ‘wiggle this’ numbers and the error function. Might be hard to expose this to Python in a really flexible way, though.
- Christoph: will we be able to use this to copy-paste world-space animation as well?
- Nate: Seems like a great retargeting tool
- Sybren: in the future, that should be possible.
Help Needed
- #117634: WIP: limit Euler filter to selected keys only
- Sybren started work on limiting the Euler filter to selected keys, but doesn’t have time short-term to finish it.
- #104405: Outdated information about Curve objects as Bone custom shapes
- Documentation issue, might be a nice one to tackle for people new to updating the docs.
Next Meeting
The next meeting will be on Thursday 2024-02-08T17:00:00Z. Again it will be open for everybody who’s interested. The provisionary meeting agenda will be updated before the meeting.