I was tasked with investigating whether switching to virtual assets would improve our pipeline. Mainly better handling of huge caches imported from the likes of alembic.
After some trial and error i was able to get virtualized assets working in general on a texture. Next I wanted to try on importing alembic geometry cache, and i was surprised that it did not get virtualized.
In order for data to be virtualized under our system is must be stored as an unstructured blob via FEditorBulkData so at the moment I believe the following is a list of what is virtualized which tends to make up the vast majority of data in most games:
Static Meshes
Skeletal Meshes (partial)
Textures
Groom Assets
Part of meta humans
Sound waves
In addition to this we would also like to start looking at converting some animation data types to use FEditorBulkData so that they can be virtualized as well. Although it’s worth noting that we also need to consider if the data is suitable for virtualization. If the editor always needs the data and so will always end up pulling and caching it locally then there is often little point virtualizing it in the first place.
As for alembic, I will need to talk to some colleagues and ask more about the pipeline and then I will get back to you.
Just to put my input on whether any cache is worth virtualizing. We are working on multiple project and multiple shots in engine and that means we have many caches and assets that are not necessary at any given time. This makes our projects huge which makes it considerably more difficult and prolonged for our artist to swich between our projects. So for our workflow having small disk footprint means more project can be present at any given time on the artist pc and having the bulk of the data be in ddc/zen server then means that everybody is having only what they currently need on their pc.
There is some internal desire to add virtualization support to this asset type for similar reasons that you describe and it is definitely on our target list but unfortunately I cannot promise that this work would be done by any specific engine release version.