3

ウェブサイトで物理的に正しいロープをシミュレートしようとしています。

Webを検索した結果、box2dのような物理エンジンが必要だという結論に達しました。

私がそれを正しく理解していれば、解決策はオブジェクトを小さなセグメントに分割し、次にこれらをすべて一緒に結合してアニメーション化することです。また、物理とブラウザを組み合わせたいと思います。つまり、Webサイトを高速で下にスクロールするとき、ロープは物理的に正しい方法で反応する必要があります。

これは可能ですか?

4

1 に答える 1

17

ライブラリはまったく必要ありません。これは、オブジェクト、コンポーネント、または手続き型コードを使用して、基本的な機械物理学といくつかの2Dジオメトリを理解することで問題なく実行できます(基本的な微積分が役立つ場合があります)。

最適化された方法でそれを行うには、より多くの作業が必要になります。モジュール式で再利用可能な方法でそれを行うには、いくつかの先行エンジニアリングが必要になります。

しかし、ロープを作ること、そしてロープを正常に動作させることは非常に簡単です。

2Dロープは、一連の線分または「ボーン」になります。各骨はその関節の周りで曲がることができます。

各ボーンに重力やその他の力を加えることができます。
各ボーンには制約があります(アタッチされている他のボーン、上下)。
したがって、「ロープ」を更新すると、前後の制約に基づいて各ボーンが更新されます。
アンカーポイントを作成できます。ロープの上部を壁に固定して、他のボーンの動きに関係なく、一番上のボーンが上部のジョイントを中心に回転しますが、どこにも移動しません。

吊りロープの中央に物理を適用するには(中央で引っ張ってから放すなど)、逆運動学を使用して、1つまたは2つのジョイントに対するその力が他の接続された(および拘束された)ジョイントのそれぞれにどのように影響するかを解決します。 。

ヘビのようではなく、自転車のチェーンのように考えてください。
チェーン内の各「リンク」が短いほど、ロープはより流動的に見えますが、処理に時間がかかります。
チェーン内の各「リンク」が長いほど、変更の計算は速くなりますが、曲がるにつれて、より堅固でブロック状に見えます。

「VerletIntegration」、「Kinematics」(「Forward」/「Inverse」)を調べて、回転と2Dベクトルに沿ったオブジェクトの移動の背後にある数学を半ば適切に把握します...
そこに少し質量があります。波を立てるだけでなく、鞭のようなものに夢中になりたい場合。

残りはただのループです。

基本的な例については、以下を参照してください。http:
//gamedev.tutsplus.com/tutorials/implementation/simulate-fabric-and-ragdolls-with-simple-verlet-integration/

楽しんでね。

于 2012-11-01T01:25:58.900 に答える