2Dソフトボディ物理エンジン?


9

こんにちは。最近SFMLグラフィックライブラリを学びました。それを使用するために、非剛体2D物理システムを使用または作成したいと考えています。3つの質問があります。

Box2d の剛体の定義は次のとおりです。

非常に強い物質の塊で、塊の任意の2ビットの物質間の距離は完全に一定です。

そして、これは、弾性、変形可能、破壊可能、および再接続ボディを作成したいので、まさに私が望まないものです。1.単純な2D物理エンジンはありますが、これらの種類の特性はありますか?できれば無料ですか、オープンソースですか?

2. box2dを使用できず、リジッドボディに基づいている場合でも、box2dを使用して作成できますか?

3.最後に、このような単純な物理エンジンがある場合、単に経験と物理計算の知識を強化するために、とにかく新しいエンジンを作成するプロセスに進む必要がありますか?既存のエンジンのコードを変更したり、非常にユニークな物理学でゲームを作成したりするのに役立つと思います。

ありがとう!


1
JelloPhysics(C#)と呼ばれるこのエンジンがありましたが、サイトがダウンしているようです。ここに動画があります:youtube.com/watch
v

回答:


6

リジッドボディシステムを使用して、ソフトボディと流体力学を作成できます。その背後にある物理的な理由は?まあ、本質的に、原子は小さな剛体です。もちろんこれは完全に正しいわけではありませんが、簡単にするためにそれらをそのように見ることができます。そして、ソフトボディは明らかに原子から作られています。

では、Box2Dなどのリジッドボディエンジンを使用して「ソフトボディ」を作成するにはどうすればよいでしょうか。

必須のテクニックは、関節を使用して体のポイントを結合することです。たとえば、距離のジョイントを使用して線のリストの端を接続する場合(2つのジョイント間の距離は一定でなければならない)、布のように動作します。

しかし、それは単なる大まかな説明です。Box2Dの多くの「基本的なフィールド作業」は、JavaポートのBox2Dの開発者の1人であるewjordanによって行われました。良い出発点は次のとおりです。http//www.box2d.org/forum/viewtopic.php?f = 8&t = 1978


ソフトボディの「形状」を維持し、全体を維持するための体積を計算するには、引張り/圧縮ばねの組み合わせが必要です。
ジョナサンコネル

はい。ただし、Box2Dの場合は、実際にはすべてジョイントを介して行われます。確かに彼は手動で彼らの行動を変えなければならないでしょう、しかしそれは彼が始めなければならないところです。たとえば、Gishのようなblobの一定のボリューム効果の場合、JBox2DにはConstantVolumeJointがあります。
TravisG 2011年

ええ、私はBox2Dについてあまり詳しくありません。同僚がPhysXを使用してバブルをシミュレートした方法を知っています^^
Jonathan Connell

1

あなたが探している用語は軟体物理学です。

ウィキペディアにはすばらしいリストがあります。それらはすべて3D AFAICSですが、良いはずです。

この SOの質問もチェックしてください。

素晴らしい本(剛体ですが、すべての数学と物理学はそこにあります。これも3Dですが、2Dに転送するのは簡単です)はゲーム物理エンジン開発です。リジッドボディに移動して衝突する前に、パーティクルベースのシステムを実装します。


1

ソフトボディをシミュレートする1​​つの簡単な方法は、小さな剛体を弾性ジョイントで接続することです。次に難しいのは、モデルのパラメーターを微調整し、テクスチャを基になるモデルにマップすることです。

次のブログ投稿は、cocos2dエンジンを備えた変形可能なボールの実装を提供しています:http ://2sa-studio.blogspot.com/2014/05/soft-bodies-with-cocos2d-v3.html


cocos2dデバッグドローへのクレジット;-)
sdabet 2015
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.