今回は 各 3D グラフィックツールの相互受け渡しや、XNA で対応する3Dモデル形式の一つである FBX を、無償配布されている FBX SDK を用い、 DirectX などで必要になる描画情報を取得する方法を紹介します。
…とはいえ、それでも書く量が多くなるため、FBX SDK を取得する例の一つとして、独自形式に変換するツールのプロジェクト一式をここに置いておきます。(→ FBX2SL3D.zip (1783 ダウンロード) )
一応コメントも入っていますが、開発途中でいろいろと中途半端な(とくにアニメーションの出力部分がきちんとしたテストをしていない)ため、コードを読み、自ら書きなおしていったほうが安全です。
余り Tips として成り立っていませんが、書く時間もなく大変なのでご了承ください。
とりあえず、ビルドできる環境は説明しておきます。
開発環境は Microsoft Visual C++ 2008 Express Edition (VC++ 2008)で説明していきます。(FBX SDK は VC++ 2005 でも使用できます)
まず、 FBX SDK を手に入れます。
こちらにて無償で入手することが出来ますが、使用者の名前などの個人情報入力が必要です。
しかも外国式の入力(住所とか)なのでところどころ日本とは違いますが、それなりに正しく(外国式の)入力ができていれば通るようです。
(入力情報をブラウザの Cookie で保持するようにすれば、バージョンアップなどによる再度ダウンロード時の入力が省けます)
入力が済み、次に FBX SDK のダウンロードリンクがあるページに来ます。
ここでは 2009.3 を使用します。
最新版を使用しないのは、メモリリークがあるからで、 SDK の初期化・解放だけでもリークします。
ので、メモリリークの出ない 2009.3 を使用します。
(余裕があれば最新版もダウンロードして確かめてみるのもいいでしょう)
入手したら、インストールします。
特に難しい作業ではないので、そのまま従ってインストールを待つだけですんなり終わるはずです。
次にプロジェクトを作成します。
プロジェクトのプロパティにインクルードパスなどを設定する必要があるのですが、後の設定を楽にするため、「プロパティシート」という共通設定を行えるファイルを別途用意するといいでしょう。
プロパティ マネージャ ペイン(「表示」メニューの「プロパティ マネージャ(M)」)で、該当のプロジェクトを右クリックし、「新しいプロジェクト プロパティ シートの追加(E)…」で、プロパティシートファイルが作成され、追加されます。
このとき、プロジェクトのプロパティに反映されますが、あくまでプロパティシートファイルを参照しているので、プロパティシートファイルを移動・削除すると参照できなくなるので注意してください。
なお、 FBX SDK を利用するには、以下の設定を行う必要があります。
C/C++ – 全般 – 追加のインクルード ディレクトリ | "C:Program FilesAutodeskFBXFbxSdk2009.3include" を追加。 |
---|---|
C.C++ – プリプロセッサ – プリプロセッサの定義 | K_PLUGIN;K_FBXSDK;K_NODLL を追加。 |
リンカ – 全般 – 追加のライブラリ ディレクトリ | C:Program FilesAutodeskFBXFbxSdk2009.3lib" を追加。 |
上記はプロパティシートを参照している場合は不要です。
代わりに下記はそれぞれの環境で設定する必要があります。
リンカ – 入力 – 追加の依存ファイル | “/MT” が設定されている場合 | fbxsdk_mt2008.lib wininet.lib を追加。 |
---|---|---|
“/MTd” が設定されている場合 | fbxsdk_mt2008d.lib wininet.lib を追加。 | |
“/MD” が設定されている場合 | fbxsdk_md2008.lib wininet.lib を追加。 | |
“/MDd” が設定されている場合 | fbxsdk_md2008d.lib wininet.lib を追加。 |
※ VC++ 2005 を使用している場合はライブラリ名の “2008” を “2005” に置き換えてください。
これで FBX SDK を使用する準備が整います。
FBX2SL3D.zipがダウンロードできません。
パスが無効ですとでます。
すみません、しばらく手が空いていなかったので見落としていました。
現在はダウンロードできます。