**BulletSharp [#rba2ea70]
物理エンジンBulletのC#用ラッパー,BulletSharpのSharpDX向けビルド方法を示します.

2014年12月時点のものです,すぐにできなくなるかもしれません.

**ソースの取得,Bulletのビルド [#k5228b8b]
**ソース,必要なファイルの準備 [#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フォルダを指定します.[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が手に入りますので,これを使っていきましょう.


トップ   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS