Triangle accuracy picking for animated models in XNA

I can do picking with triangle-accuracy for non-animated models, but I also have animated models in my game. How do I do picking on animated models?

I use code based on this project for animation.

My first idea for doing it is:

Calculate ray
For each model
If model bounding sphere collides with ray
For each meshPart
Make animation transformation
Calculate transformed triangles in meshPart
Test collisions of ray with resulting triangles


Have you ever considered how to make something like this?