6
2D物理エンジンにラッピングワイヤ(Worms Ninja Ropeなど)を実装する
私は最近、ロープ物理学を試してみましたが、「標準的な」解決策-スプリングまたはジョイントでつながれた一連のオブジェクトからロープを作成すること-が満足できないことがわかりました。特にロープスイングがゲームプレイに関連する場合。ロープが巻き付いたり垂れ下がったりする能力はあまり気にしません(とにかくこれはビジュアルのために偽造されます)。 ゲームプレイにとって重要なのは、ロープが環境を包み込み、その後に包みを解く能力です。それはロープのように振る舞う必要さえありません-直線のセグメントで構成された「ワイヤ」はそうするでしょう。以下に例を示します。 これは、Wormsゲームの「Ninja Rope」に非常によく似ています。 私は2D物理エンジンを使用しているため、私の環境は2Dの凸ポリゴンで構成されています。(具体的には、FarseerでSATを使用しています。) だから私の質問はこれです:「ラッピング」効果をどのように実装しますか? ワイヤーが「分割」および「結合」する一連の線分で構成されていることは明らかです。そして、その線の最後の(アクティブな)セグメント(移動するオブジェクトがアタッチされる)は、固定長ジョイントになります。 しかし、アクティブなラインセグメントをいつ、どこで分割する必要があるかを決定するために必要な数学/アルゴリズムは何ですか また、前のセグメントと結合する必要がある場合はどうなりますか? (以前、この質問は動的環境でこれを行うことについても尋ねていました-私はそれを他の質問に分割することにしました。)