水に浮かぶオブジェクトのシミュレーション


9

トップダウンの釣りゲームに取り組んでいます。湖を動き回るボートに関して、いくつかの物理演算と衝突検出を実装したいと思います。メインモーターまたはトローリングモーターのいずれかからの推力、オブジェクトへの風の影響、およびオブジェクトへの水の抗力を実装できるようになりたいと思います。

私は遠い物理エンジンを見てきましたが、物理エンジンを使用した経験がなく、遠いものがこのタイプのものに適しているかどうかはよくわかりません(ほとんどのデモは垂直方向への重力の適用であるようですトップ/ダウンタイプモデル)。

farseerエンジンは適切でしょうか?または別のエンジンの方が適していますか?

回答:


5

私はBulletを使用してこの種のことを行っていますが、同じ手法を任意の物理エンジンで使用できます。浮力は、架空のフロートをボディに取り付けることによってモデル化されます。浮体は、離散ポイントでサーフェスの下の深さに応じて力を加えるだけです。

タイムステップでは、各フロートがそれぞれの位置で水位をテストし、ボートに対する相対的な位置でボートの剛体に力を加えます。私はそれぞれのフロートが常に垂直である円筒として、ボートの向きに関係なく想像します。力は、それらがどの程度深く浸されているかに比例し、最大はそれらの体積によって定義されます。

現在のところ、ボートには4つのフロート(船首、船尾、左舷、右舷)しかありません。重力に対抗するのに十分な力を提供するようにボリュームを手動で設定し、位置とシリンダーの長さを調整して、ボートの移動方法を微調整します。どういうわけか、シリンダーを剛体ボリュームに詰め込んでフロートを生成するという漠然としたアイデアがありますが、それは将来のためのものです。

波を帆走するボートの短いデモはこちらのyoutubeにあります。


0

Farseerの物理学はあらゆる種類の力と慣性のアプリケーションをサポートしているので、問題はないでしょう。Farseerが既に流体のボディをサポートしているかどうかはわかりませんが、サポートされている場合は問題ありません。(また、Farseerは2D物理エンジンであることにも注意してください)


私は、彼らがFarseer(3.3)の次のバージョンでは、流体のためのサポートを追加していると思う
brainydexter
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.