ややプログラム紀行

博士2年のプログラムに関する日記

分からんね~

物理シュミレーション的なのを作るとして(今回使うのはゲームですけど・・・)

やっぱパソコンってのはデジタルなんで、アナログなことはあんまできないですよね

つまり物理ってこの世界のこととかですから、アナログをデジタルでやろうとするとできないことが出てくる・・・と

具体的には、フレームとかです

ゲームとかってフレームってもんがありますよね

これが引っかかってしまいます(しまいました)

プログラムは順番に計算をしますけど

アナログは同時進行で進んできます

オブジェクトが2つあったとして、この世界でなら普通にぶつけられますけど

パソコンだとオブジェクトを1つずつ処理してくので順番ってものが生まれちゃい、これが問題となることがあると思います

例えば位置とか・・・?

いま書いたものに似てるけど、当たり判定とかも辛いです

アナログではものはぶつかる瞬間ってものがありますけど、デジタルだと

前のフレームだとぶつかってなかった→次のフレームだとぶつかってた

みたいにぶつかった瞬間ってのは簡単には分からないんですよね~

無理にぶつかった瞬間をみつけようとすると処理速度が遅くなるし・・・

どうすればいいんでしょうね

すっげー悩んでますw

書いてて考えましたけど

ぶつかってたらわざわざぶつかった瞬間を計算しないで、逆算するってのはどうかな?

つまり

・オブジェクトがめり込んでると判定

・逆算で、本来はどこにオブジェクトがあるべきかを出す

・そこに移動させる

みたいな

違うかもしんないっすけど

Havokの物理シュミレーションゲーム(デモンズソウルとか)とか、オブジェクトをぐ~っと押して凝縮させようとすると、あるときすごい速さでオブジェクトが吹っ飛んでいきますよね

あれも実はさっき書いたような処理をおこなってるからだったりして・・・(マジか

でもこんな処理くむなら、自分でゲームじゃなくて物理シュミレーションソフトつくれやって思いますwww

ゲームでは多少のめり込みとかは目を瞑るとか、特別な処理をするのが得策でしょうね