Usually you need an in engine solution for a this kind of things, because it requires real time physics if you want it to work universally. It can be "pre-baked", but then you'll have to animate it every time, so a physics based solution would be better. UE, CE, and the Source engine has their own tools for this, maybe…