Hi sgorsten,
You are on the right track. As long as you can define your collision using an aggregate of simple shapes (spheres, boxes, capsules, and convex hulls) then you can define it at runtime. The algorithmic fitting stuff is not available at runtime however.
Something like UPaperSprite::RebuildCollisionData() is a reasonable starting point to see how you would build the data out. In this case UPaperSprite is the asset, and UPaperRenderComponent implements GetBodySetup to return it from the currently active asset. If you don’t have an asset you can still create one on the instance or wherever else makes sense for your use case.
Cheers,
Michael Noland