Currently the Cache Sequence modifier is used for loading geometry data from Alembic files, and the Transform Cache constraint is used for loading transformation data. This approach poses a few limitations:
- A modifier is either generative or deforming, whereas the Cache Sequence modifier is both (depending on the particular frame-to-frame changes in the Alembic file).
- Non-mesh geometry data (like curves) are troublesome to load, as the modifier system can only produce an evaluated mesh (T51311).
- Non-geometry, non-transform properties, if loaded at all, are loaded at import time, but after that are static (T54050, T50725). This can be solved by having per-property F-curve modifiers (D2324), but this is cumbersome and unintuitive to handle.
This task proposes a new approach, adding a 'cache' step to the AnimData struct. If set, cached data would be loaded by the animation system first, before applying F-curves and drivers as usual. This would allow the cache loader to influence properties in a more general way:
- It's a new system, so no pre-existing separation between 'generative' and 'deforming'.
- Any ID datablock that supports animation can use this, so no distinction between mesh and non-mesh geometry.
- Any property can be animated.
I'll study the current animation system, and then update this task with more technical details on how to approach this.