Allow .blend files to explicity include asset library files rather than forcing everything to be in an assets library folder
I'm starting to use the new Asset Browser in Blender 3 and quite liking it. One issue I'm having is that if I want to create a .blend file for library assets, the only way I can access it from another blend file is to put it in a shared libraries folder that has to be set up from the plugins menu. This is a problem both because it forces me to relocate my assets file to be somewhere other that the project file where I'm working and also because it makes these assets available to other projects where I don't want them.
For example, if I'm making an animation for one client I will generally start by creating a folder in my filesystem that will house all assets relevant to that project. When I create an asset library for that project, I will want to store it in the same project directory. I will also only want it to serve other .blend files in that project - it's assets will be irrelevant and potentially copyright infringing for completely separate projects that I might be developing on the same machine.
I think the best solution to this is to add an additional way for .blend files to include asset libraries. Allow a file to explicitly state which files to include as asset libraries rather than only having the Preferences/File Paths which specifies them system wide.
4 Comments
I agree with this post. I love where the Asset_Browser system is heading, but work-in-progress is currently troublesome in practice -- specifically for character pose assets.
Current Asset management only supports Asset_Paths through User_Prefs -- shared by all .blend files.
(A) Add a section .Asset_Paths to each .blend file to handle project scaling. In Outliner mode Blender_File: add a section .Asset_Paths (python API: bpy.data.asset_paths as a list of path strings).
(B) Path strings should support both folders AND paths to a specific .blend file . (by text name, not a hard link to inode)
(C) Path folders should support some way to prune sub-folders.
I currently have a folder for each rigged character. Newest is "charName.blend", and then I checkpoint files "charName.NNN.blend" in case I need to revert changes or file-corruption. Current system picks up all checkpointed files, so character and all poses appear many times in Asset Browser. Having to create subfolder "//newest/", but then checkpoint back up the tree to avoid inclusion complificates a simple file arrangement. (C) pruning would keep newest file of interest higher up the path-tree, and let me tuck checkpoint files into ignorable subfolder "//older/" out-of-sight-out-of-mind.
Suppose next project uses only 2 rigged characters, but I have to wade through Asset/Poses for 20-30 characters. Current system doesn't scale (to 100's of characters). (B) per-.blend-file asset paths would keep projects focused.
blender_assets.cats.txt (and *~) files all over the place. Why is this info not tucked into relevent .blend files? Each .blend file "is a database" of different data-block types. If it is infeasible to hide these in .blend files, is there a way to move this info into $HOME/.config/blender/ ? (out of sight).
I really appreciate what the blender-devs are doing. I might be out-of-date on the newest developments in this area, and I have no idea about how difficult it would be to implement these ideas. Thanks for blender!
To clarify distinction between Asset_Paths in User_Prefs, vs Asset_Paths added only to THIS .blend file: have all of these show up in Outliner.Blender_FIle.Asset_Paths, but have individual visibility setting (eyeball-toggle) in Outliner.
This would let me set default Asset_Paths through User_Prefs, to start each new .blend file, but then I could hide the ones not used in this .blend file, and add more Asset_Paths specific to only this .blend file.
The original blog post talks about "Project Assets" and "Project Repositories" which seem to be what you're describing here. I believe this will be implemented as one of the later milestones of the Asset Management project.
It would be nice if it automatically recognized other files in the same folder as a sibling asset library or something like that.