Asset Browser from Python API point of view
This document is not exhaustive, and just serves as a scratch pad where I can jot down things.
Missing Python API functionality
This is what I (Sybren) found missing, but what I'd like to have available for making the Pose Library prototype:
- Getting active asset in Asset Browser (currently only works for 'current file' assets, i.e. when the asset is an already-loaded datablock), i.e. enough information to:
- know what the type of the asset is (so currently the ID type), and
- to load the datablock itself.
- Getting information from all available assets (for example to get all tags).
- A way to refresh the Asset Browser (for example after creating a new asset).
- Setting active asset in Asset Browser (for example after creating a new asset).
- Getting list of selected assets (for example for mass-rename or mass-tagging).
- Callback when active asset changes. This is necessary to enable "follow mode".
- Callback when asset is double-clicked.
Caching: Appending vs. Linking
Action datablock with pose must be loaded into memory, in order to apply the pose. There are multiple ways in which a datablock can be loaded:
- Linking:
- Pros:
- Most natural approach.
- Keeps link with original asset file, so reloading is possible.
- Reloading operator already available.
- Cons:
- Pollutes the blend file namespace.
- Link will be saved with the blend file. This is permanent (until cleaned up) and will produce errors when the original pose library is no longer available.
- Needs reloading of links when pose library changes.
- Appending:
- Pros:
- No link to original asset file, so will not cause errors when asset file is no longer available.
- Cons:
- Pollutes the blend file namespace and expands the blend file.
- Unable to reload.
Either approach can be used in a temporary fashion, like such:
- Link or Append the datablock
- Apply the pose
- Remove the datablock
- In case of linking: remove the library link