LoginSignup
1
2

More than 3 years have passed since last update.

BulletPhysicsのビルド@Visualstudio2015

Last updated at Posted at 2020-03-21

男もすなる物理エンジンといふものを。

まぁ大体ほとんど全てこのページ: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.batsrcなどファイルやフォルダがあるディレクトリを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というフォルダを作ります)
where.PNG

そうしたらConfigureを押します。そうして出てくるダイアログ、僕はVisualstudio2015を使用しているので、Specify the generator for this projectにVisual Studio 14 2015 Win64を指定しました。それぞれの開発環境に合ったものを選んで下さい。
ダイアログ.PNG

そうしたらFinishを押します。これでCMakeで設定する状態になります。
Cmake設定.PNG

ステップ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_なんちゃら_DEMOSBUILD_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を加える方が普通だと思います。

これでビルドが上手くいけば成功です!お疲れ様でした!

1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2