In previous versions of blender there was a tool called dupliframes. This methode allowed users to duplicate an animated object at every frame. https://docs.blender.org/manual/en/2.79/editors/3dview/object/properties/duplication/dupliframes.html
This script is doing the same but with animated shape keys, modifiers and materials too. It is tested with Blender 3.5 but should work with all version down to 2.8.
- Set blender into scripting mode
- copy the code from dupliframes.py
- select animated object to work with
- run the script