What are Epic’s practices for non-trivial transformations of asset data that may occur through the course of development? The engine supports trivial changes like deleting or adding a UPROPERTY, but what about more involved changes?
Case 1: Renaming a property without data loss.
Case 2: Custom data transformation.
The canonical simple example is having three separate UPROPERTY float values that you wish to be combined into a single UPROPERTY FVector. You could imagine far more complex and arbitrary transformations.
How would I make that change to a class that may be instantiated by hundreds of uasset files, without destroying the existing data?
In other engines I’ve worked on, it was possible to retain an “old version” class layout and provide a custom transformation function. I’m not sure if Unreal provides a facility like that.