"Simulating" an animation in code, without rendering

Note: I am not talking about PhAT or PhysX.

If I have a root motion based animation blueprint, and an associated skeletal mesh, can I “simulate” the result of an animation in code, without rendering it? What I mean is giving the blueprint the inputs for direction and speed, and then receiving the state the skeletal mesh would be in after running the animation for x seconds. In particular, I’m interested in the collision meshes’ transforms.

I did this with my melee weapon traces, and there wasn’t really anything special I needed to do.
I just got a reference to the current montage playing and then set the position according to where I want to simulate it.

My setup was that between two ticks, I wanted to step through the animation again in order to do traces for collision detection (the animations were very short, and ticks would miss a lot of collisions). I just kept track of where the montage was during previous tick, checked where it was currently, and then interpolated from previous to current position using

MeshComponent->GetAnimScriptInstance()->Montage_SetPosition(YourMontage, newPosition).

I’m not sure whether root motion would cause some problems with this approach though.