Asset Manager: Support preview thumbnails for more data-block types #79178
Labels
No Label
Interest
Alembic
Interest
Animation & Rigging
Interest
Asset Browser
Interest
Asset Browser Project Overview
Interest
Audio
Interest
Automated Testing
Interest
Blender Asset Bundle
Interest
BlendFile
Interest
Collada
Interest
Compatibility
Interest
Compositing
Interest
Core
Interest
Cycles
Interest
Dependency Graph
Interest
Development Management
Interest
EEVEE
Interest
EEVEE & Viewport
Interest
Freestyle
Interest
Geometry Nodes
Interest
Grease Pencil
Interest
ID Management
Interest
Images & Movies
Interest
Import Export
Interest
Line Art
Interest
Masking
Interest
Metal
Interest
Modeling
Interest
Modifiers
Interest
Motion Tracking
Interest
Nodes & Physics
Interest
OpenGL
Interest
Overlay
Interest
Overrides
Interest
Performance
Interest
Physics
Interest
Pipeline, Assets & IO
Interest
Platforms, Builds & Tests
Interest
Python API
Interest
Render & Cycles
Interest
Render Pipeline
Interest
Sculpt, Paint & Texture
Interest
Text Editor
Interest
Translations
Interest
Triaging
Interest
Undo
Interest
USD
Interest
User Interface
Interest
UV Editing
Interest
VFX & Video
Interest
Video Sequencer
Interest
Virtual Reality
Interest
Vulkan
Interest
Wayland
Interest
Workbench
Interest: X11
Legacy
Blender 2.8 Project
Legacy
Milestone 1: Basic, Local Asset Browser
Legacy
OpenGL Error
Meta
Good First Issue
Meta
Papercut
Meta
Retrospective
Meta
Security
Module
Animation & Rigging
Module
Core
Module
Development Management
Module
EEVEE & Viewport
Module
Grease Pencil
Module
Modeling
Module
Nodes & Physics
Module
Pipeline, Assets & IO
Module
Platforms, Builds & Tests
Module
Python API
Module
Render & Cycles
Module
Sculpt, Paint & Texture
Module
Triaging
Module
User Interface
Module
VFX & Video
Platform
FreeBSD
Platform
Linux
Platform
macOS
Platform
Windows
Priority
High
Priority
Low
Priority
Normal
Priority
Unbreak Now!
Status
Archived
Status
Confirmed
Status
Duplicate
Status
Needs Info from Developers
Status
Needs Information from User
Status
Needs Triage
Status
Resolved
Type
Bug
Type
Design
Type
Known Issue
Type
Patch
Type
Report
Type
To Do
No Milestone
No project
No Assignees
11 Participants
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: blender/blender#79178
Loading…
Reference in New Issue
No description provided.
Delete Branch "%!s(<nil>)"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Motivation
For the asset manager, good previews are important. They are needed to tell assets apart visually, names are more like the secondary way to select them. We need to think about how to capture different data-blocks in a good way, to get the best possible previews.
We need that for multiple data-block types.
Design
We should try to come up with simple solutions, that work in the majority of cases. Just because there are some cases where a simple solution doesn't work, doesn't mean we can't use it in the majority of cases where it would. So we could have a simple, one-click way to create an asset and one that allows setting further options for when it's needed.
Materials, objects, poses, textures, images, screen-layouts, worlds and lights already support previews. We could of course improve them.
Collections
Design needed. [TODO]
Brushes
From #56744, we'll probably use the same previews here.
Simulations
Design needed.
Rigs
Design needed.
Movie Clips
Idea: Display some frame, but allow "scrubbing" through frames with horizontal mouse movements over the preview.
Object Types
Added subscriber: @JulianEisel
Added subscriber: @TakingFire
Added subscriber: @Mets
To solve the 3 possible issues you mentioned, what do you think about adding a pop-up dialogue when creating the asset? For example, when making an asset for an object, show a "Perspective" drop-down menu with a bunch of options, like "Current", "Front", "3/4", etc.
Such pop-up dialogue would also be useful for making assets out of rigs and actions. To get a useful preview out of an Action, you would probably have to specify a rig that the action is meant to be used with. To get a useful preview out of an armature object, you might want other objects to be visible on the preview, even though they aren't actually part of the asset.
Materials would probably also like a customizable object to display on.
But maybe the pop-up would just be annoying and slow down the workflow? I'm biased as I actually quite like when operators use a pop-up to ask me exactly what I want.
Questions:
Yes and no :) This is just the solution I had in mind too. But I also want simple things to stay simple, so the default behavior should just use the front and not ask for further settings. For the cases where that isn't sufficient, there can be a separate "Create Asset" operator showing the popup (or you could right click an asset in the browser and recreate the preview with different settings).
Yeah rigs are a bit tricky. Just drawing the rig itself isn't too useful. Am happy to hear ideas of how this could work in practice.
I'm not sure if such rig previews are part of the first milestone though. Trying to get all these things working nice in the first major iteration can make the project drag or get stuck even.
Right. But just like for objects, I'd suggest having the advanced setup as opt-in behavior.
There are two use-cases to clearly differentiate here:
For 1) you would not want the asset library to depend on the .blend file the rock was created in. So the asset library would contain a deep copy of the data-block. There could still be a reference between the project file and the asset, so changes to the rock can be flushed to the asset library. But point is the user would explicitly create or update an asset, at which point the preview is (re-)created.
For 2) it's a bit complicated indeed. Brecht said other asset managers usually just have a button to explicitly update previews. Creating a preview may take a second or more per data-block (8K textures everywhere! What could go wrong?!1), so always doing it on file save is troublesome. In typical pipelines there's also the "Publish" step, which is a good point to trigger preview updates too.
This does sound useful but is a more advanced use-case. If needed, we can allow entirely custom preview images.
Another idea is, we could allow rendering previews from a specific view layer. An asset .blend could then contain a bunch of view-layers for advanced, custom previews. Such extra objects can then be disabled in the main view-layer, and their lifetime is managed like for any other object in Blender.
It is technically possible of course and I'm quite sure we will want that sooner or later. Not sure if we need it for the first milestone though.
Thanks for the detailed answer! With those in mind, I think it's okay to generate previews for rigs only showing the rig object and nothing else. No parameters required then, but I would enforce these settings for the preview image "render":
Because the information displayed by those settings is so small it would only clutter the preview image.
I think there won't be many use cases for turning rigs on their own into an asset, so it's fair to keep things simple here.
As for Actions: I guess if we want to avoid popups, we can just assume that the actions should use the currently active armature object for the preview image, if there is one. That's the obvious solution, but not sure about discoverability. Users will just turn actions into assets at different times and sometimes get a good preview, sometimes not, and they'll wonder why. If you shove a popup in their face asking them to select a rig, they'll get it right 100%! :)
Added subscriber: @mattli911
Could possibly use 3D Cursor Orientation for camera alignment / rendering as well? For the additional options, if front view doesn't work out. Or Perspective View matrix / current orientation to the object.
More so thinking about if a user has a mesh rotated in some specific way and wants to save it like that, and the local Axis is rotated / align to that as well.
So there maybe is no "front view" technically, unless you are looking at Local X or Y Axis, but that could be opposite of what the user wants too. Or maybe those are flipped from what they would consider "front view".
I made an asset viewer/creation tool for 3DS Max, and I had automated the capture at first, but it was finicky/un-reliable. Unless I told the user to setup their object pivots/etc very specifically.
So I decided to just put them into a thumbnail creation preview mode, where they just rotate the model however they want / etc and click "Render" and then get exactly what they setup. So not back and forth/repeating the thumbnail generation X amount of times to get what they want.
Added subscriber: @RedMser
Removing this from the UI workboard, it's on the Asset Browser one now. This is sort of an implicit sub-project of #user_interface and #data_assets_i_o, but more focused and avoids cluttering other workboards with tasks that are handled as part of a project anyway.
Added subscriber: @pjj
Added subscriber: @AndresStephens
Can't wait for more thumbnails for node groups. Or custom thumbnails!
Added subscriber: @Deanna
Added subscriber: @lichtwerk
Changed status from 'Needs Triage' to: 'Needs Developer To Reproduce'
@JulianEisel: some of this is now obsolete (some might still be relevant), is this covered by other existing tasks and can be closed?
Object and pose previews were added meanwhile, I updated the description. Besides that the task is still valid. I would welcome contributors to pick up some case and work out a design for it. It's a relatively isolated design task.
Take note, my screen captures are from a custom build of Blender with custom icons.
First Request
What this needs: Node Groups differentiation with symbolism:
Issue:
There is no way to tell apart what node group is for what editor.
We need symbolism to know and categorize different node groups.
In the Blender Data API view of the Outliner, the nodegroups has iconography that helps.
At the moment, all node groups are lumped into the same category. There are no custom icons. There are group type icons in the Data API view of the outliner, but the Asset Browser could also benefit and have a symbols on the thumbnail, and/or sub-category for the node groups per editor. Node groups need to be a lot more granular to be usable.
Using an icon set in the corners like the rest of the asset browser that has thumbnails, we can visually categorize the node groups:
Second Request
Node Group and Shader datablocks needs a custom thumbnail ability for nodegroup asset packs, distinguising commong groups, and to personalize. A long with shaders.
This feature of customization should be consistent for ALL data blocks. Not just collections and mesh data, and other miscellaneous data - but also for groups and materials.
Third Request
Shader/Materials needs the ability to change the thumbnail auto generation directly from the asset browser. Right now it is only possible from the Material Property Editor tab. There is a big disconnect there.
Added subscriber: @Alumx
Added subscriber: @tintwotin
Sounds should have waveform previews:
{F11842387,size=full}
Patch for Movie Clip thumbnails: D13305
{F11842172,size=full}