The uposablemesh component doesn’t have animations, it just let’s you handle bone positions via code.
You really have to break apart into the c++ to make this performant.
There’s no other way but to allow for the skeleton base bones to be stretched once and preserved, instead of them being modified each frame with computation.
There are probably more than a few marketplace plugins that would let you implement this without having to dive into the c++ to do it yourself…
Theoretically - all a skeleton is, is a conglomerate of name and transforms.
If you can access it in c++ You can also offset its data and save it back onto the reference that’s being used by the system.
You may need to break into it manually if no native functions exist. But you can copy the way that transform/modify bone functions work, and just derive your own function to do the same at the data level of the skeleton.
USkeleton* Skeleton = CharacterMeshVariable->Skeleton;
And then see what properties you can find within Skeleton to work with…