2020-09-25 - Pose Libraries & Asset Browser

Present: Hjalti Hjálmarsson, Julian Eisel, Pablo Fournier, Pablo Vazquez

Note: This turned more into an initial design doc, with emphasis on the points raised in the meeting. Hence the length :slight_smile:

Status & Meeting Goals

  • Pose Libraries are a high priority use-case for the Asset Browser.
  • There should at least be an overall design (evaluated with prototypes) to help us understand the implications on the Asset Browser design.
  • This design is one of the current main goals for the Asset Browser project.
  • Not certain yet if pose libraries will be part of the 1st Asset Browser milestone. They may also be an own milestone.
  • Meeting goal was to get more context and shared understanding about pose library usage.
  • Also, understand scope of the project: Just improving the current system, or a completely new solution? (See conclusions at the end.)
  • Focus right now is a Minimum Viable Product (MVP).

General

  • See last Asset Browser meeting notes.
  • Plan is to build an Asset Browser, not an Asset Manager. I.e. a view into an asset data-base which may be managed through a separate asset management system (e.g. Kitsu with a Blender bridge).
  • .blend files (possibly directories) to browse in will be selected in the Preferences.
  • Later, a Blender Project concept may be introduced to help project dependent asset management.
  • Thus, things like streamlined pose storage, access rights, committing, publishing, etc. will not be handled by Blender itself.
  • Production poses on three levels:
    • Approved poses (e.g. main poses of a character defined by the animation team).
    • A single animators own pose libraries for various characters.
    • Poses to be shared with another animator (e.g. ending pose of one shot as starting pose for another).
  • The main usage tasks for assets are: Create, Edit, Use & Share. This maps well to pose libraries.

Current System

The current system is the builtin Pose Library functionality with the Pose Thumbnails Add-on.

  • Much is based on naming conventions. Feels weak and breaks easily.
  • Thumbnails are external images, mapped to poses via the file name. Breaks if the order of poses changes.
  • Storing a pose-library as single action data-block with each frame being a pose has limitations. E.g. sharing a single pose is difficult.
  • Generally the workflow feels clumsy.

Create & Edit

  • Creating a pose would create an asset in the current .blend file.
  • A pose could be a single frame action data-block with an “is pose” token.
  • Editing a pose could just be done by duplicating and deleting an existing one for now.
  • Previews (thumbnails):
    • Probably not worth trying to get a good auto-preview system to work. Precision and consistency over multiple previews is important.
    • Better avoid relying on external images files, rather store it in the asset itself.

Use

  • The Asset Browser would show poses and allow applying them.
  • There may have to be a secondary level of grouping (a pose library being the primary). E.g. folders.
  • The animators wouldn’t mind if it takes a few clicks to get to a specific pose library or a subset of one. At least for now.
  • Automatically letting the Asset Browser follow the active object would be nice, but not necessary for the MVP either.
  • If each pose requires a separate action data-block, the action data-block selector menu may become way too filled. The current Asset Browser design already addresses this.
  • The full Asset Browser would take too much screen space. A way to quickly hide and show it is needed. Not necessary for the first iterations. Note that a popup may overlap the character.

Share

  • Sharing poses is important for productions.
  • Mostly happens through the asset data-base, which is responsibility of the asset management system.
  • Pose libraries and pose assets should be isolated units.

Nice-to-haves

Features we’d like to have but that are not part of a Minimum Viable Product:

  • Animated poses (poses with more than one frame).
  • Animated previews (pose previews with multiple frames).
  • Pose-blending (adding a pose on top of another with a blending factor).
  • Automatically show the poses applicable for the active object.

Conclusions

  • The Asset Browser design already covers many of the user stories.
  • For a production environment, the asset management system is still needed to cover important aspects.
  • Asset Browser work would be the foundation of a new pose library system, not just improve the existing solution.
  • Overall this confirms what Julian had in mind and that the Asset Browser design is on a fine track.
  • Next steps:
    • Initial user story map.
    • Short design proposal with wireframes to show UI and workflow.
    • Prototype.
9 Likes

I would like to add to the above:

  • Re-using Pose Libraries among different characters which use the same rig layout.

I think this is probably covered by the Share use-case, but it’s worth being explicit about this. In games it’s very common to reuse rigs and even animation between many character models, and this is true even in animation – Blenrig, for instance, is a rig that can be fit to many different characters (but it always has the same controls!). I am in the process of rigging a large batch of fairly similar characters, which will use a similar modular rig design. Being able to share animation from similar (or even somewhat dissimilar) rigs will be very helpful.

Furthermore, I think my suggestion and the idea of Pose Library has a bit of overlap with motion-capture libraries. Animation libraries and Pose libraries go hand-in-hand, and since they are both Action Datablocks, I imagine that animation libraries will be easy to develop once Pose libraries are in place. We should also keep in mind the needs of motion-capture artists while we develop these ideas – they need to use one skeleton for a huge variety of animations and character proportions.

Now, this would complicate the Previews/Thumbnails:

Precision and consistency over multiple previews is important.

I agree this is not a good thing to work on just yet. Nevertheless, I wish to offer my thoughts on its eventual implementation: In order to get it working between characters as I suggest, it might be necessary to portray previews of whatever the active character happens to be! Now, in animation, framing and silhouette are paramount. So I wonder if Pose Libraries could contain a “Pose camera” for displaying the pose as the animator wishes to see it – perhaps even multiple. Then, there would be no need for an automatic system to figure out how to preview the pose (I imagine that would be very difficult). And there would be no problems with inconsistent previews for different characters, since the preview’s camera is already established. Instead, the automatic system would merely apply the action to the active character and render a Material Preview render (this might happen in the background when/while the Pose Library loads, one for each “pose camera” for each pose preview). I think this would lead to consistently better results than trying to place a camera automatically to render the preview. To be clear: Poses are meant to be viewed from specific angles, the entire purpose of a pose is to sculpt and craft what another person will see through the scene’s camera. Therefore I think it would be fitting to place the camera’s for the previews directly.

That’s my 2 cents. I also want to say that I love the overall roadmap, it seems completely doable.

3 Likes

Regarding Pose <<Create & Edit

Creating a pose would create an asset in the current .blend file.
A pose could be a single frame action data-block with an “is pose” token.>>

Could an animated gif solve the question of many frames? It can be edited in Blender and is small foot print?

In principle this already works, but it indeed has some implications for the Asset Browser design. We discussed them before, some trade-offs may have to be accepted.
E.g. a pose might have to store which characters/rigs it applies to, so that the “follow active object” feature for the Asset Browser can work. One could still apply a pose to a different character, but the “follow active object” feature wouldn’t work for this character-pose combination.

Furthermore, I think my suggestion and the idea of Pose Library has a bit of overlap with motion-capture libraries.

As mentioned in the “nice-to-have” section, animated poses is something that should be eventually supported. I’m not sure if there’s a big difference to motion-capture libraries, it doesn’t seem so off hand.

Then again, this is not a primary use-case which should be our focus at this stage. So I’d rather leave this aside for now.

In order to get it working between characters as I suggest, it might be necessary to portray previews of whatever the active character happens to be!

That would be more like live previews which is different to automatic previews. Of course such a thing would be nice and would solve issues for other previews as well, e.g. changing a material after “Make Asset” has generated a material preview.
But I don’t see this being an option because of the performance impact it would have whenever previews are regenerated. Maybe with better threading support in Vulkan it is a bit less of an issue, but I still have doubts.

1 Like

There is not much of a question here, we have various options to store multi-frame previews. But this is not something we’re looking into yet. Focus for now are single-frame poses.

I agree with most of this design,
but deeming animation library as secondary limits the scope of the design since an animation capable library will need some extra important decisions in design so i think: try to make it part of the MVP too.

a few things i think should be taken into consideration:

Regarding creation:
Thumbnails should be able to be created on the spot and attached to each pose.
A pose or an animation should be an external file that gets stored in a folder, dedicated to the project or to the user depending on the production.
This allows to manage files via blender or via browser. So if I throw a bunch of files in that folder that contain poses, blender should just be able to read them in the pose browser.
Also if each of these poses or animations are a dumbed down blend file that only contains such data and say the image thumb or animation seems like a no brainer to me on making it easily manageable.

The grouping levels aforementioned could be represented as just folders in the browser making it very easy to again understand and mange.

" Automatically letting the Asset Browser follow the active object would be nice, but not necessary for the MVP either.", This is great option and more often than not the one one wants to use, but optional to be able to chose manually other characters, or specific controllers etc is important as sometimes you just need to cover corner cases.

Pose Blending I dont think its a nice to have but it’s a must is the second most used feature in any production regarding pose library: 1 is pasting the pose, 2 is blending.
One of the most important things about blending poses and why it’s such a used feature is because if you have a little ammount of poses the blending allows you to mix them up to make up more as you go, so if you have a very open hand and a closed one, you can use this to make between poses, makes sense? so its VERY important. And i think one of the reasons the current pose library is often disregarded.

Its also imporant to be able to set in which way one will add the pose/ animation to the current one, typical options would be:
Insert: (place inbetween the current keys),
merge: add on top of the existing animation data.
Replace at time: would be replacing the animation data from where the time head is currently at.
Replace at original: replacing the animation considering the data coming from the original animation stored (say if the animation of originally started at frame 100 and ended at 200) with this option it will be pasted in that same range.

Other important things:
Being able to scale the thumbnails , names etc is important, sometimes you really need to see them up close, sometimes is better to have a n eagle eye view of them ( i know blenders windows can be scaled, just this need to always be taken into consideration)
I dont know how is the asset browser being considered i would think this would be an new panel similar to the browser: which would be great be cause you’d be able to make it be part of any blender workspace and place with the folders to the left and the options to the right and the button to apply pose and animations right there it would make total sense to me.

I think i covered most of what i think its important/

thank you for such great work, you guys rock.

10 Likes

Preface: Focus at this point is really the MVP. So figure out what’s the minimum we can do to make people happier, don’t try to make them too happy yet :slight_smile: That’s too likely to backfire later. Instead we try to identify the essentials and bring it down to just that.

Re Animation library as part of MVP:
I’m torn. I agree this is important to consider early. But adding animation libraries to the design violates the MVP design approach. You could very well build a separate MVP for animation libraries.
OTOH we try to make MVPs or milestones dynamic, and don’t just enforce something. It should be fine to keep things rough on the animation library side for now and only invest more time once we see a real need for it.

I think I will include the basics in further design fragments but not dive too deep. And I will get advice from others who have experience with this kind of agile design development.

Re Creation:
If I understand you correctly that is exactly the workflow we want to achieve.

Re Automatically following the active object
Yes, that’s what I had in mind too.

Re Pose Blending
Okay, seems like you have a different workflow here compared to Hjalti and Pablico. Again I will do some minimal design work to make sure this will be well supported eventually. But I think I won’t make this a main target for the MVP (yet).

Re Ways of applying poses/animations
Interesting point. I think it’s fine to settle for one behavior to start with, and let users deal with the keyframes themselves. We can always add ways to speed that up (could be as simple as a menu in the “Adjust Last Operation” to set after applying a pose).

Re Scaling thumbnails:
For most asset types we might have to accept the trade-off of smaller thumbnails, to avoid bloated .blend files due to possibly hundreds of big thumbnails. Since we plan to let users manually set pose thumbnails we can leave the resolution choice up to them though. I think that’s a good idea (if in doubt, give the user the control, don’t try to be smart).

Re Asset Browser as new "panel"
Yes that is exactly the idea, the Asset Browser will be a regular editor. (“panel” in this context is Maya speak, if I’m not mistaken :see_no_evil: )

10 Likes