Introduction¶
This section describes Blender’s asset library system. It was introduced in Blender 3.0, and will be improved and expanded over multiple upcoming releases.
Se også
- Asset Browser
The main interface for organizing and using assets.
- Asset Catalogs
For organizing assets.
- Pose Library
Built on top of the Asset Browser.
What is an Asset?¶
An asset is a data-block with meaning.
A blend-file is a database with multiple Data-Blocks: objects, textures, materials, etc. When planning to re-use or share these, the data needs a meaning. What is this? What is this for? Assets are curated data-blocks that are meant for easy reuse.
Merknad
The general term «asset» often also refers to other file types, such as images, sounds, video files, etc. These are currently not supported as asset in Blender.
For more info, see Future Development.
What is an Asset Library?¶
An asset library is a directory on your drive that is registered in the Preferences as an asset library.
Registering it means that you give the library a name (like «Sprite Fright»)
and the location on drive (like /home/sybren/projects/sprite-fright/assets
).
Once registered, you can select the asset library in the Asset Browser. All the blend-files in the asset library will be scanned for assets, and all those assets will be shown in the Asset Browser.
Merknad
Loading an asset library for the first time may take a while, but the next time it is loaded should be significantly faster. Blender generates an index of all assets contained inside an asset library, and keeps it up-to-date as files are modified within it. The indices are stored in the Local Cache Directory.
The blend-files can be directly in the top-level directory of the asset library, or in any subdirectory. The on-drive organization of asset libraries is all up to you. Regardless of which blend-file contains the assets, each asset can be assigned a catalog. For more info about how to organize your assets this way, see Asset Catalogs.
Asset Types¶
Assets can be broadly divided into two types: primitive and preset assets. Which is which depends on the Data-Blocks type.
Primitive assets are data-blocks that are either linked or appended to the current file. Examples are objects, materials, and worlds. These can be dragged from the Asset Browser into the scene (objects and worlds), or onto existing objects (materials).
Preset assets are data-blocks that are loaded and then applied to something or activated. An example is a pose asset. When applying the pose, the data-block is loaded from its blend-file, and then the pose is applied to the active armature. Brush assets are an example of an asset type that is activated. They get loaded into the current file and activated for painting or sculpting, but don’t get saved in the file.
In the future, the asset type definition will be expanded; see Future Development for more info.
The Current File Asset Library¶
To help with the management of assets in the current blend-file, you can set the Asset Browser to show the Current File asset library. This always shows the assets in the current file, even when the current file is not saved in an asset library. This also makes it possible to create assets and use them in the same file, for small single-file projects.
When the current blend-file is part of an asset library, you can also see its assets in that library, of course. The assets that are in the current file are marked with an icon; only those are editable.
Life Cycle of an Asset¶
This section describes how to create, edit, share, and use assets.
Creating an Asset¶
To create an asset, first create the thing you want to turn into an asset. That is, create the object, material, world, or pose your character. The next step depends on the type of asset (see Asset Types above).
For primitive assets, use the Mark as Asset operator. It can be found in the data-block selector, in the Outliner, and for objects in the 3D Viewport Object menu. When using Mark as Asset, an automatic preview is generated. If you want, you can also change or replace this with an image of your own choosing; use the folder button next to the preview image in the Asset Details region of the Asset Browser.
For preset assets, there will be a dedicated button for the different asset types. For example for poses there is a Create Pose Asset button in the Action editor. Brush assets are created by using Duplicate Asset from existing brush assets.
After creating the asset, make sure the current blend-file is saved in your asset library. Blender does not copy the asset into the asset library for you.
Editing Assets¶
Since assets are regular data-blocks, with just a little bit of metadata attached, they can be edited like any other Blender data. Just open the file and edit the object, material, world, etc.
For poses assets, this is also possible. With the pose library file open, just click the Assign Action button to assign the pose action to the currently selected armature. Then you can use all of the animation tooling to edit the pose, remove or add keys, etc.
Editing asset metadata can be done via the Asset Browser.
Using Assets¶
Assets can be used from the Asset Browser.
The pose library extends this, and adds an Asset View to the 3D Viewport. See Use from 3D Viewport.
Removing Assets¶
Asset metadata can be erased by the Clear Asset operator. This operator is available in data-block selectors, the Asset Browser, and for objects in the 3D Viewport menu.
- Clear Asset
Removes the asset metadata (catalog, description, author, tags), effectively turning an asset into a regular data-block. As such, the same removal rules apply as with other data-blocks. For example, if a mesh object is still placed in the scene, Clear Asset will not remove it from the scene. See Life Time. The preview will be kept inside the data-block and not be removed.
- Clear Asset (Set Fake User)
Performs the same operation as Clear Asset, and then marks the data-block as protected. This makes it possible to no longer have the data-block marked as asset, and still be sure it is not lost when saving the blend-file.
Bundled Assets¶
Blender includes many assets out of the box, these are contained in the «Essentials» library.
Included in this library are:
Asset System Files (.asset.blend Extention)¶
Some types of assets can be edited without having to open a blend-file inside of an asset library. Blender saves these assets to libraries in special files using the .asset.blend extension. They are entirely managed by Blender’s asset system, and only contain a single asset and its dependencies.
It is still possible to save a normal file with the .asset.blend extension. This will then not be treated as an asset system file, Blender knows the difference.
Asset system files have one more special characteristic: You can open, but not save them. The Save As operator can still be used to create a new file from them, which will then be just a normal blend-file. Thus contained assets cannot be edited without opening the file itself. Blender shows some clear warnings to communicate that asset system files cannot be changed and saved the normal way.
The reason these files are special is that the asset system might need to regenerate them. Any additional changes done by the user might be lost then. To prevent this data-loss, these files are protected from user modifications.
Currently, only brush assets support this feature.
Design Limitations¶
Blender is not allowed to write to other blend-files than the one you have currently open, or the special .asset.blend files explained above. This means that to edit an asset, you have to open its blend-file. Fortunately this is only a single click away, both in the Source List region of the Asset Browser and in the asset context menu.
Future Development¶
This section describes interesting avenues for further development. Even though it is not an exhaustive list, it might help to better understand the current functionality of Blender’s Asset Browser.
Non-Data-Block Assets¶
Non-Blender assets, such as image or audio files, will likely be supported in a future version. For such files, asset metadata is then stored in XMP sidecar files, similar to what other software is also doing. Importers (USD, glTF, FBX, …) could add support for their file types as assets this way too. Furthermore, it should become possible to enrich an asset with a Python script, which can then provide code to be run when the asset is used.
Cross Blend-File Editing¶
As described above, Blender itself is not allowed to write to other blend-files than the currently open one. This rule helps to limit complexities; for example, it is hard to reliably implement an undo system when manipulating other files. The rule does get in the way of mass-updating assets when they are stored in various blend-files.
Since there is already tooling that can manipulate blend-files outside of Blender itself (see Blender Asset Tracer), it’s possible to also create an external tool for doing such edits across blend-files. Such a tool might even be implemented via Blender’s application templates system, or as an add-on; the rule above applies to Blender itself, not to its add-ons.
Asset Pushing¶
Merknad
The introduction of Brush assets in Blender 4.3 includes support for an asset pushing concept as described here. This might be brought to more asset types in future.
Asset pushing is a way of getting assets into the asset library, where you are working on a file
and want to copy the asset from that file into the library. This is a concept that appears deceptively simple.
In certain cases it is actually simple, but often enough it gets quite complex. For example,
when you want to push an object into an external asset library, should that also copy the materials?
What about the texture images referenced by those materials?
What about objects referenced by custom properties, constraints, or modifiers?
And in which files would they have to go?
Do they all go into one big assets.blend
, individual blend-files,
or into a directory per asset type? Blender should not be making such decisions for you.
For specific cases, these things are all solvable. For this reason the pose library has been created as an add-on which is enabled by default. Studios with specific needs can disable the add-on and implement their own functionality; the building blocks are all in Blender’s core, and thus do not need to be copied for this. Furthermore, add-ons can write to other blend-files, so they could make the decisions for users.
Asset pushing is desirable. Because of the questions above, it is unknown how to implement this well, in a way that still allows artists control over their assets.