Vertex Animation Subsystem
This is a subsystem that makes it easy to create and update instances without worrying about the technology under the hood.
It provides functions for handling instances which are exposed to blueprint.
Functions
int AddInstance(UStaticMesh* StaticMesh, UPARAM(ref) const FTransform& Transform);
When this function is called, the subsystem will create an ISM for the mesh if needed. It will also apply the given world transform.
TArray<int> AddInstances(UStaticMesh* StaticMesh, UPARAM(ref) const TArray<FTransform>& Transforms);
bool RemoveInstanceByIndex(UStaticMesh* StaticMesh, int Index);
bool RemoveInstanceById(UStaticMesh* StaticMesh, int Id);
bool RemoveInstancesByIndex(UStaticMesh* StaticMesh, UPARAM(ref) const TArray<int>& Indices);
bool RemoveInstancesById(UStaticMesh* StaticMesh, UPARAM(ref) const TArray<int>& Ids);
bool UpdateInstanceTransformById(UStaticMesh* StaticMesh, int Id, UPARAM(ref) const FTransform& Transform);
bool UpdateInstanceTransformByIndex(UStaticMesh* StaticMesh, int Index, UPARAM(ref) const FTransform& Transform);
bool BatchUpdateInstancesTransform(UStaticMesh* StaticMesh, int StartIndex, int Num, UPARAM(ref) const FTransform& Transform);
bool BatchUpdateInstancesTransforms(UStaticMesh* StaticMesh, int StartIndex, UPARAM(ref) const TArray<FTransform>& Transforms);
bool SetCustomDataById(UStaticMesh* StaticMesh, int Id, int CustomDataIndex, float Value);
bool SetCustomDataByIndex(UStaticMesh* StaticMesh, int Index, int CustomDataIndex, float Value);
int GetIndexFromId(UStaticMesh* StaticMesh, int Id) const;
int GetIdFromIndex(UStaticMesh* StaticMesh, int Index) const;
TArray<FVertexAnimationInstanceInfo> GetInstances(UStaticMesh* StaticMesh) const;
Last modified: 23 January 2025