男もすなる物理エンジンといふものを。
まぁ大体ほとんど全てこのページ:Bullet Physics を Visual Stuido 2015 でビルドするに書いてある通りではあるんですけどね…
BulletPhysics
C++で物理エンジンを利用しようと思ったときに出てきたのがこちらでした。剛体、軟体、衝突判定は出来るみたいです。
選ぶときには特に意識してなかったけど、いろんな種類がある物理エンジンの中で、人気が高く(=参考資料が見つかりやすい)、C++とPythonの両方で使えるようなのでよろしいかと。比較参考(英語)
ソースコードで配布されているので、Libファイルを作ってあげる必要があります。
ステップ1 インストール
Githubのページからソースコードをダウンロードします。
ステップ2 CMake前半
ビルドの手順にはbuild_visual_studio_without_pybullet_vr.bat
を利用するという方法も紹介されていますが、Visualstudio2010を対象としている?ようなので、慣れていないがCMakeします。
以下、build_visual_studio_without_pybullet_vr.bat
やsrc
などファイルやフォルダがあるディレクトリをHome
と書きます。
(例えばCドライブ直下にGithubからZipでダウンロードしたならC://bullet3-master/bullet3-master/というフォルダが出来ていると思いますので、そこをHomeと呼ばせてもらいます。)
CMake-guiの
Where is the source code:
にHomeを、
Where to build the binaries:
にHome/build_cmakeを指定します(新たにbuild_cmakeというフォルダを作ります)
そうしたらConfigureを押します。そうして出てくるダイアログ、僕はVisualstudio2015を使用しているので、Specify the generator for this project
にVisual Studio 14 2015 Win64を指定しました。それぞれの開発環境に合ったものを選んで下さい。
そうしたらFinishを押します。これでCMakeで設定する状態になります。
ステップ2.5 CMake後半
チェックの付け外しについてはBullet Physics を Visual Stuido 2015 でビルドする、Choreonoid 開発版 ドキュメント »BulletPluginのビルドを参考にしました。
以下、特に重要そうな設定(初期設定から変える部分、僕自身が引っかかった部分)
BUILD_UNIT_TESTS
:オフ
→みんなオフにした方が良いっていうから
CMAKE_INSTALL_PREFIX
:管理者権限の不要な場所に変更した方が良い。と思う。
ここにインクルードファイルとLibファイルがインストールされるんですね
INSTALL_LIBS
:オン
→Step3でまとめてビルドできるようにするのに必要な模様
USE_DOUBLE_PRECISION
:オフ推奨
→倍精度を使用するために必要な模様。実行時のLNK2001エラーの原因になっているようなので、上手くいかないならチェックをしないでCMakeすることを検討すると良い。このstackoverflowの記事を見つけてようやくわかりました。正直この2行を伝えたくてこの記事を書いたのはある。
USE_GLUT
:オフにしました
→GLUTのことはよくわからないけど、参考先でも外しているので外す
USE_MSVC_RUNTIME_LIBRARY_DLL
:オフ
→Visualstudioで/MT、/MTdの条件で使えるようにするためにチェックしない。Dxlibと連携させたいのでチェックしない。Dxlibでは/MTを設定するので、Bulletもそれに合わせます。
※BUILD_なんちゃら_DEMOS
、BUILD_BULLET3
についてはオンのままでもいいかと思います。(デモについてはOpenGL.libみたいのが足りないとかって言われて一部ビルドするときにエラーが出ましたが、一部のデモは実行できたのと、Libファイルは作られたので良いかなと)
設定をしたらもう一度Configure
、問題なければGenerate
します。
ステップ3 ビルド
Home/build_cmake
下のBULLET_PHYSICS.sln
を起動、ソリューションエクスプローラーにあるINSTALL
というプロジェクトを右クリック、Debug、Releaseのどちらについてもビルドします。それなりに時間かかります
エラーらしいエラーも出ずに、Home/build_cmake/lib/Debug、Release下にそれぞれのLibファイルが出来ていればビルド完了です!
ステップ4 HelloWorld
VisualStudioで新しいプロジェクトを作ります。今回はC++から空のプロジェクト
を作りましょう。名前はBulletTest
とかって感じで。いい感じに。
GithubからHelloWorld.cpp
をコピペしてきます。
続いてVisualStudioの設定をします。
プロジェクト>BulletTest
の設定...を開きます。
※設定する時に、構成はReleaseかDebugか全ての構成か、プラットフォームのビット数はx64かx86か、は注意して下さい。
①構成プロパティ>VC++ディレクトリ>ライブラリディレクトリ
でビルドしたLibファイルにパスを通します。
②構成プロパティ>C/C++>コード生成>ランタイムライブラリ
でマルチスレッドDLL(/MD)とマルチスレッドデバッグDLL(/MDd)を設定します。
③構成プロパティ>リンカー>全般>追加のライブラリディレクトリ
でもビルドしたLibファイルにパスを通します。
④構成プロパティ>リンカー>入力>追加の依存ファイル
にビルドしたLibファイルのファイル名を入力します。
インクルードディレクトリについてはBulletTest
のソースファイルを書き換えてフルパスを指定しましたが、VisualStudioの設定のVC++ディレクトリ
とC/C++>全般
にある項目の追加のインクルードディレクトリ
にHome/srcを加える方が普通だと思います。
これでビルドが上手くいけば成功です!お疲れ様でした!