FBX ファイルから描画に必要な情報をとる方法

今回は 各 3D グラフィックツールの相互受け渡しや、XNA で対応する3Dモデル形式の一つである FBX を、無償配布されている FBX SDK を用い、 DirectX などで必要になる描画情報を取得する方法を紹介します。

…とはいえ、それでも書く量が多くなるため、FBX SDK を取得する例の一つとして、独自形式に変換するツールのプロジェクト一式をここに置いておきます。(→zip FBX2SL3D 24.91 kB

一応コメントも入っていますが、開発途中でいろいろと中途半端な(とくにアニメーションの出力部分がきちんとしたテストをしていない)ため、コードを読み、自ら書きなおしていったほうが安全です。

余り 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 を使用する準備が整います。

「FBX ファイルから描画に必要な情報をとる方法」への2件のフィードバック

    1. すみません、しばらく手が空いていなかったので見落としていました。
      現在はダウンロードできます。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

This blog is kept spam free by WP-SpamFree.