3dsMAX + Flare3D。多分1000ポリくらい。アニメーションは全てMAX内のHAVOKによる物理演算を記録したものです。壁の陰影だけはラジオシティしたものをベイクしていて、それ以外はFlare3Dのシェーダー。環境マップとかも全てMAX内で設定しているのでスクリプトはほとんど書いていません。床の影に使ったShadowPlaneは、高さを0以外にしたりちょっとでも傾けたりすると表示がおかしくなってしまうようで使いどころが難しい。

(追記)
転がっているハムがカメラアングルによっては消えてしまう不具合が少しだけ解消できました。頂点アニメーションをしているオブジェクトは毎フレームMesh3D.updateBoundings()を呼び出さないと、初期位置から動いていない事になっているようで、初期位置の小屋付近がカメラに映らなくなった時に消されていたようです。ただ.updateBoundings()を実行しても、アニメーションがループした直後にハムがカメラ内に収まっていないと消えてしまいます。。
また、頂点アニメーションしているモデルのシェーダーによる陰影を更新するにはMesh3D.updateNormals()を毎回呼び出せばいいようですが、カーテンのようにその場を動かないモデルではうまくいっても、ハムのような光源に対して位置が変わりすぎるモデルではうまく更新できませんでした。なのでハムにこの更新処理は適用していません。