Here it is… Asset IO. It’s the result of a rewrite of my previous node group exporter addon, now using a much better format, which I have called .blib (Blender library). The Blib standard is robust, compact, and extensible, and was designed to be able to hold any type of Blender asset. Despite the file standard’s (theoretical) ability to hold any type of asset, currently there is only a module to import/export Cycles assets (materials and node groups), but there will be further development in that regard.
Note: The Blib standard is very much in its early stages, and thus may suffer changes that break compatibility with previous versions (though assets should be importable by the version they were exported with, so you could import them back into Blender, and re-export them with the newer version). Also the Blib library code itself is very young, and might contain bugs, so use with caution (by that I mean, that for now, you might want to also keep the assets stored in a normal .blend file, not relying entirely on the .blib).
It is important to state that this addon is just a simple interface for the Blib library, which is the actual “brain” that does all the crunching at import/export, and is my main development focus. Thus this addon’s development will pretty much be limited to bug fixes, as I focus my efforts to the Blib library, and to making it support more asset types. But I am working to get other IO addons (library managers, and such) to use the Blib standard, to try and make .blib a sort of standardized format for Blender assets (until perhaps a native solution in the C/C++ code).
If you encounter any bugs while using Asset IO, you can contribute by reporting them. But make sure you are using the latest version of Asset IO (you can check the latest version on the latest release page), and Blender 2.76 or later. If you have a GitHub account, you can follow the instructions here, on how to report an issue to Asset IO,
Now, some more info about the Blib file standard, and what its current capabilities are:
A .blib file is a self-contained file, with all the required data for some asset, stored within itself, including images, texts, etc.
Here is a list of what is currently implemented for a .blib file to store, per currently supported asset type (I’ll keep this updated):
- Cycles assets (materials or node groups):
- The complete node tree of the asset
- The material settings (Viewport display options, etc.)
- Nested node groups
- Images, sequences, clips…
My next priority is to extend the node group support to any kind of node tree, including compositor nodes, texture nodes… This shouldn’t be too difficult, as most of the node tree code is already there, but it will take some refactoring, as the node tree code is a bit tightly integrated to the Cycles asset code, and would have to be isolated from it a bit.
Anyway, I think that’s it for now, enjoy