The description was moved to the #asset_browser project description (click the tag to see it), the Milestone 1 description to #asset_browser_milestone_1.
Milestone ?: Online Repository
Here we want to be able to append assets from an online repository like the Blender Cloud, BlenderKit and similar.
There would be a Python API to register custom asset repositories as part of add-ons. The main operations would be to provide a list of assets and metadata, provide .blend with an asset to append/link into the scene, and functions to add/remove/update an asset.
Milestone ?: Usability
Once the asset manager is working for the basics and the UI can do its job, we can start to make things nice. This includes better handling of thumbnails, re-configuring the ID browser to allow for asset browsing, a nice UI widget for managing tags and tag-based filtering.
A key part of making the UX nice, is to make it effortless to drag assets into the scene. When dragging in objects & meshes, they should be able to snap to surfaces. When dragging in materials, the underlying target objects should highlight on rollover. You should be able to add multiple assets at a time.
Milestone ?: Collection Variations
Not strictly part of the asset manager since this would be a core feature of Blender also usable without the asset manager. We would like to support variations for all datablock types, but the first step could be collections (it's effectively like automatically toggling visibility on subcollections to show only one).
Once this is in the place, the asset manager will need to be modified to understand variations.
Milestone ?: Project Repositories
Up to this point the asset manager will handle only the use case of appending files from a local or online repository. The next step would be making it works also for projects.
- The root project directory would contain a .blender_project file indicating that it is a project (similar to e.g. .git)
- When opening a .blend file within the project folder, Blender will automatically know which project it is part of
- Folder structure, file names and file saving are left to the user. The asset browser will not add or remove .blend files in the project. That's all done using File > Save and file browsers as usual.
- The assert browser will have a "Project" repository that can be chosen, which will show all assets within the project
- The user will have to mark relevant datablocks as assets in each .blend file in the project so it shows up in the asset browser.
- Assets can be linked between files within the same project. This is different from other repositories, where only append is possible. Linking between projects or to other repositories should not be possible, a project must be self-contained and not link to any .blend file outside of it.
- The project folder would be indexed exactly like other asset folders.
The idea here is that we don't want to make many assumptions about how users might structure their project. It should be possible to simply add or remove files, reorganize project directories, and the asset browser should keep working. It will merely provide a view on the existing project structure, and functions to create links to other assets in the project. It will not introduce an alternative linking system as an earlier iteration of the asset manager design did.
This system does not preclude a studio from making an add-on that takes more control over file saving, version control, partial repository checkouts and so on. Such an add-on would likely need to integrate in various places in the Blender user interface, one of which can be the asset browser. For example it might include a custom asset repository to browse assets that are not on the artist's computer, and right before the user links an asset into the scene, download the corresponding .blend file.
But for most projects that are not e.g. feature films, the built-in project repository and automatic indexing system should already be quite powerful.