2004年03月05日物理シミュレーションのリンク2002年01月20日物理エンジンを作りたいintroduction(イントロダクシュン)Kano氏、mitsuman氏のの剛体力学デモ、Unreal Tournament 2002を見て、 はなげ氏の物理エンジンメモを見て、物理エンジンを作りたいなぁと思う人は多いはずです。 2D → 3Dに移り変わるとき、物体の位置を直接動かすのではなく、物体の質量や加速度、力によって 物理的に動かしたい・・・と思う人は多いはずです。 僕もワン・オブ・ゼムです。 ということで、いろいろと考えてみました。 first of all(ファストヴォール)物理エンジンは実際に組んだことはないものの、いろいろと考えたことはありました。 そこで、一番僕が問題と感じたのは「物体のすりぬけ」です。 固定時間進行型ならこの問題はごまかせますが、 実時間進行型だとこの問題はごまかせません。 実行速度の異なるコンピュータで実行結果が異なる、ということがあってはならないのです。
といった問題が生じます。富豪的プログラミングをやるなら、もちろん実行速度なんか気にしなくていい (いずれCPUが追いつく)と思いますが、そうもいってられません。 微小時間における衝突を考慮した複数の物体の運動そこで、考え付いたのが、下記のような手法です。 物体同士の衝突がいつ起こるかを予測し、 「物体の衝突が起こるまで」区切りで時間を進めていきます。 「やっぱり考えるのは紙の上」派なので、ルーズリーフに書いたものを載せておきます(手抜きではありません)。 あとは実装だけなんですが、物理エンジンなんて組んだことがないので、 いろいろと問題にぶちあたるんだろうなぁ・・。
|
|