I think you can if you really want to, it’s just one of those things people would generally advise you not to do since there may be a better way.
If you’re doing something complex once or offline for later, it could be good, but not something you should do every frame.
It would also help to know what you’re trying to do with this data in case I do have an idea for how to do what you’re trying to do better.
It’s a huge amount of data and it’s all on GPU but not readily present on CPU except for the breif moment when the engine is loading the data from disk and later sending it to the GPU. The CPU is also slow at processing this stuff since it’s a huge thing you’d have to run a for loop on as opposed to letting the GPU run shaders and whatnot on it in parrelel, so people generally don’t even care about this data CPU side once it’s loaded into graphics for rendering.
I think there may have been some kind of checkbox also for keeping mesh data on CPU, which is usually a thing with procedural meshes since they’re changing CPU side from something, and you’d have access to it that way. It wouldn’t be per frame of animation though, and you’d have to simulate deforming it the same way the skeletal mesh animation would by getting the bone transforms and knowing all the vertex weights… Maybe Unreal does have apis for that though so it gives you the correct results without you guessing how their shader works and try to emulate it on CPU.
Now that I think about it also, what you mentioned is facial animations which work differently and are morph targets, not skeletal animations. That could potentially be easier since that is literally what morph targets are. They’re not deformed by bones and store how the vertices themselves deform and it’s all blended together based on weights of morph targets. If you’re trying to get at the vertex data of morph targets there aren’t really frames in an animation. The morph target just exists as the pose and it applies that morph target on top of the base mesh depending on its weight, so you’d have to interpolate between the base mesh vertex positions and the morph targets positions if you have an animation curve from an animation that drives it.