**BulletSharp [#rba2ea70] 物理エンジンBulletのC#用ラッパー,BulletSharpのSharpDX向けビルド方法を示します. 2014年12月時点のものです,すぐにできなくなるかもしれません. **ソース,必要なファイルの準備 [#k5228b8b] BulletSharpのビルド方法に則って進めていきます. -https://code.google.com/p/bulletsharp/wiki/BuildInstructions マニュアル通り,SVNリポジトリからソースを取得します.Windowsで普段SVNを使っておらず,さくっとソースコードだけ取得したい場合は,以下で紹介されているWindows用SVNコマンドを使うと便利です. -Windows版コマンドラインのSVNクライアントが欲しい at softelメモ -http://www.softel.co.jp/blogs/tech/archives/4667 上記のSVNコマンドが入った同じフォルダにhoge.batを作成,中に svn checkout http://bullet.googlecode.com/svn/trunk/ bullet svn checkout http://bulletsharp.googlecode.com/svn/trunk/ bulletsharp と書いて実行すればソースの取得が終わります. SharpDXもダウンロードしておきます, -http://sharpdx.org/ から,バイナリをダウンロード,先にダウンロードしたbullet,bulletsharpフォルダがある同じフォルダに SharpDX フォルダを作り,その中に展開したSharpDXバイナリの中身(Bin,Buildフォルダなど)をコピーします. **Bulletのビルド [#nd2ac157] cmakeを使ってビルド用のVisualStudioソリューションを作成します.cmakeをインストール,起動して, -http://www.cmake.org/ [Brouse Source],[Brouse Build]先ほどダウンロードしたbulletフォルダを指定します.Visual Studioのバージョン指定が出てくるのでVisual Studio 2013を指定,64bit用がほしい人は64bitのものを指定します. [Brouse Source],[Brouse Build]先ほどダウンロードしたbulletフォルダを指定します.[Configure]するとVisual Studioのバージョン指定が出てくるのでVisual Studio 2013を指定,64bit用がほしい人は64bitのものを指定します. #ref(./cmake.png,50%); 設定項目一覧が表示されるので''USE_MSVC_RUNTIME_LIBRARY_DLLにチェックを入れる''のを忘れずに.で,[Generate]. #ref(./cmake2.png,50%); 作成されたBULLET_PHYSICS.slnを開き,構成を[Debug]から[MinSizeRel]にします. #ref(./kosei.png); で,ビルドするのですが,エラーがでます. error X3000: unrecognized identifier 'MSTRINGIFY' ⇒HLSLファイルがビルド対象になってしまっているため出てきます.プロジェクトBulletSoftBodySolvers_DX11の.hlslファイルすべて,[プロパティ]⇒[項目の種類]で[ビルドに含めない]にしておきます. error C2039: 'max' : 'std' のメンバーではありません。 ⇒#include <algorithm> 追加 #include "hacdICHull.h" #include <limits> #include <algorithm> //追加 error C2375: 'fmax' : 再定義されています。異なるリンケージです。 ⇒fmaxとfmin関数削除 参考: -Bullet Physicsを使ってみる VS2013&DirectX11 | ZeroGram -http://zerogram.info/?p=1558 これでビルドされると思います. **BulletSharpのビルド [#m2c7a306] bulletsharp\vs2013\BulletSharp.vcxprojをエディタで開き,以下のように書き換えます. <TargetFrameworkVersion Condition="'$(TargetFrameworkVersion)'==''">v4.5.1</TargetFrameworkVersion> ↓ <TargetFrameworkVersion Condition="'$(TargetFrameworkVersion)'==''">v4.5</TargetFrameworkVersion> デフォルトでは.Net Framework 4.5.1を対象にDLLがビルドされてしまうので,直接プロジェクトファイルを書き換えて4.5を対象にビルドするようにしておきます.(Visual Studioからはできないらしい) プロジェクトを開いたら構成を[Release SharpDX]にします. #ref(./kousei2.png); プロジェクトのプロパティを開き,[リンカー]⇒[全般]⇒[追加のライブラリディレクトリ]で"\msvc\2013"を削除します. #ref(./projprop1.png); また[C/C++]⇒[全般]⇒[追加の#usingディレクトリ]で..\..\SharpDX\Bin\DirectX11-net40の箇所を自分が使用しているDLLのフォルダにします. 例えば,SharpDX Toolkit for Visual Studioを使用している場合は,..\..\SharpDX\Bin\DirectX11-Signed-net40に変更する必要があります. #ref(./projprop2.png); (プロパティのプラットフォームがデフォルトでx64になっているので注意) これでビルドが成功すれば,晴れてBulletSharp.dllが手に入りますので,これを使っていきましょう.