ここにあるリリースファイルをダウンロードしましたが、どこから始めればよいかわかりません。私のゲームでは、長方形と球体がいくつかあるので、これらすべてを互いに衝突させたい。(それらにはすべてメッシュと関連する境界ボリュームがあります)
編集-直方体には実際にAABBが関連付けられていることに気づきました。少なくともそれを変える必要があると思います。
どのような手順に従う必要がありますか?
ここにあるリリースファイルをダウンロードしましたが、どこから始めればよいかわかりません。私のゲームでは、長方形と球体がいくつかあるので、これらすべてを互いに衝突させたい。(それらにはすべてメッシュと関連する境界ボリュームがあります)
編集-直方体には実際にAABBが関連付けられていることに気づきました。少なくともそれを変える必要があると思います。
どのような手順に従う必要がありますか?
回答:
以下は、実行する必要がある基本的な手順です。
まず、物理シミュレーションを駆動するワールドオブジェクト(つまりbtDiscreteDynamicsWorld
)を作成します。
GameObject
おそらく、バウンディングボックスとワールド内の位置/方向とともにモデルを格納するようなクラスがすでにあるはずです。位置/方向情報を物理ボディオブジェクト(つまり)のインスタンスに置き換え、モデルをレンダリングするときに、ボディから提供される情報を代わりに使用します。ボディを作成するときは、既存のバウンディングボリュームと一致するボディの質量と衝突シェイプを指定する必要があります。他の質問でもこれについて話しました。btRigidBody
ゲームオブジェクトの各ボディをワールドオブジェクトに追加します。
世界を踏み出して(つまりstepSimulation
、あなたの世界を呼び出すことによって)シミュレーションを更新します。
また、このマニュアルには多くの情報も含まれているため、時間をかけて読んでください。
コメントに対処するための編集
質問する前にうんざりしますが...ゲームに適切なファイルを単に含めるなど、非常に基本的なことを行うにはどうすればよいですか?詳細が必要な場合は、剛体の衝突を処理するファイルを探しています。また、これまでのご協力ありがとうございました!
ええと、あなたのコメントから、これまで外部C ++ライブラリを操作したことがないようです。私がこれを行って久しぶりですが、これが(Visual Studioでの)プロセスを覚えている方法です。
手始めに、私はすでにあなたが必要なものを説明しているマニュアルを引用します:
- #include “btBulletDynamicsCommon.h” in your source file
- Required include path: Bullet/src folder
- Required libraries: BulletDynamics, BulletCollision, LinearMath
上記の条件を満たすために実行する必要がある基本的な手順は次のとおりです...
1.準備ステップ
まず、ダウンロードしたファイルを既知のディレクトリ(例:)に抽出しますC:\Bullet
。このフォルダーへのパスは後で知る必要があります。
内部には、プロジェクトで参照する必要のある2つのフォルダーがあります。1つ目は、ソースコードに含めるヘッダーファイルsrc
を保持するフォルダーです。2番目は、プロジェクトにリンクするライブラリファイルを保持するフォルダーです。インクルードとリンクは2つの異なるものであることに注意してください。.h
lib
.lib
ただし、まだエンジンを構築しlib
ていないため、フォルダーは今のところ空である必要があります。たとえば、CMakeやVisual Studioを使用してプロジェクトをビルドする方法については、マニュアルを参照してください。7ページです。
あなたが成功したら、中に少なくとも3つのファイルを持っている必要がありますlib
フォルダ:BulletDynamics.lib
、BulletCollision.lib
とLinearMath.lib
(私はマニュアルから推測しています)。Bulletとプロジェクトを接続する...
2.ヘッダーを含める
まずC:\Bullet\src
、プロジェクトのインクルードパスオプションにフォルダーを追加する必要があります。Visual Studioでこれを行うには、プロジェクトを右クリックしConfiguration Properties -> C/C++ -> General -> Additional Include Directories
、そこに移動してディレクトリパスを書き込みます。
それを設定した後、あなたは単に#include “btBulletDynamicsCommon.h”
あなたのコードで行うことができます。そのヘッダーは、必要なすべての機能のハブとして機能するようです。
3.リンクライブラリ
最後に、上記のライブラリをリンクする必要があります。フリストは、下Configuration Properties -> Linker -> General -> Additional Library Directories
へのパスを追加しlib
、フォルダ、または他の言葉でC:\Bullet\lib
。
次に、でConfiguration Properties -> Linker -> Input-> Additional Dependencies
、ライブラリの名前を依存関係のリストに追加します。各ライブラリをaで区切り;
、ファイル拡張子を忘れないでください。したがって、たとえば、これをリストの最後に追加できますBulletDynamics.lib;BulletCollision.lib;LinearMath.lib
。
この後、プロジェクトをビルドして実行できるはずです。
4.4 Integration overview
非常に質素であることがわかっている章の下にあるマニュアルをご覧になりましたが、それは基本的なプロセスを説明しています。したがって、それとデモの例のコードを見ると、それほど多くの問題が発生しないはずです。