MRが楽しい

MRやVRについて学習したことを書き残す

FBX SDKを利用する

本日は3Dデータの技術調査枠です。
FBX SDKE は fbx 形式ファイルの操作機能を提供します。
今回は、この FBX SDK のインストールからプロジェクトへの設定までを実施します。

最初に FBX SDK のダウンロードを実施します。
www.autodesk.com
公式ページから「GET FBX SDK」にアクセスします。
f:id:bluebirdofoz:20180407093422j:plain

利用する環境に応じてダウンロードファイルを選択します。
VisualStudio2017 向けのファイルは 2018/4/6 現在まだ提供されていません。
今回はバージョンの近い「FBX SDK 2019.0 VS2015 UAP」をダウンロードします。
f:id:bluebirdofoz:20180407093442j:plain

ダウンロードした fbx20190_fbxsdk_vs2015store_win.exe を実行します。
ライセンス規約が表示されるので「I accept」をクリックして「Next」を選択します。
f:id:bluebirdofoz:20180407093555j:plain

インストールディレクトリを指定します。
後々、VisualStudio の設定時に参照先を指定するので、ディレクトリを覚えておきます。
問題なければ「Install」をクリックします。
f:id:bluebirdofoz:20180407093606j:plain

これで FBX SDK のインストールは完了です。
f:id:bluebirdofoz:20180407093614j:plain

試しに、前回作成したDirectX11アプリで使用してみます。
bluebirdofoz.hatenablog.com

メニューから プロジェクト -> (プロジェクト名)のプロパティ を開きます。
f:id:bluebirdofoz:20180407093640j:plain

プロパティダイアログが開きます。
最初に、インクルードディレクトリの設定を行います。これは、Release/Debug 共通の設定となります。
構成:「すべての構成」に変更し、C/C++ -> 全般 画面を開きます。
「追加のインクルードディレクトリ」を選択し、編集をクリックします。
f:id:bluebirdofoz:20180407093650j:plain

「新しい行の追加」アイコンをクリックします。
インクルードディレクトリに以下のディレクトリへの参照を追加します。
・(FBX SDKのインストールディレクトリ)/include
f:id:bluebirdofoz:20180407093705j:plain

次に、ライブラリディレクトリの設定を行います。これは、Relesae/Debug それぞれで設定が必要です。
Debug 側から実施します。構成:「Debug」に変更し、リンカー -> 全般 画面を開きます。
「追加のライブラリディレクトリ」を選択し、編集をクリックします。
f:id:bluebirdofoz:20180407093717j:plain

「新しい行の追加」アイコンをクリックし、ディレクトリへの参照を追加します。
ライブラリディレクトリは、設定する構成とプラットフォームによって指定を変更します。
「Debug」「Win32」の場合は、(FBX SDKのインストールディレクトリ)/lib/vs2015store/x86/debug になります。
f:id:bluebirdofoz:20180407093731j:plain

続けて、追加の依存ファイルを設定します。
これはランタイムライブラリによって異なるファイルを選択する必要があります。
まずは C/C++ -> コード生成 画面を開き、「ランタイムライブラリ」の設定を確認します。
f:id:bluebirdofoz:20180407093739j:plain

ランタイムライブラリを確認したら、リンカー -> 入力 画面を開きます。
「追加の依存ファイル」を選択し、編集をクリックします。
f:id:bluebirdofoz:20180407093750j:plain

ここで「ランタイムライブラリ」に対応したファイル名を追加する必要があります。
コマンドとファイルの対応は以下の通りです。

コマンド  ファイル名
/MDd      libfbxsdk-md.lib
/MD       libfbxsdk-md.lib
/MTd      libfbxsdk-mt.lib
/MT       libfbxsdk-mt.lib

参考:
hobbyistbox.hatenablog.com


今回の自身の環境では「ランタイムライブラリ」は「マルチスレッドデバッグDLL(/MDd)」でした。
よって「libfbxsdk-md.lib」を設定します。
f:id:bluebirdofoz:20180407093813j:plain

以上でまずは Debug について環境設定は完了です。
試しに以下のサンプルコードを書き込んで、Debug ビルドしてみます。

#include<fbxsdk.h>

int main() {
  fbxsdk::FbxManager* manager = fbxsdk::FbxManager::Create();
  manager->Destroy();

  return 0;
}

正常にビルドが完了しました。成功です。
f:id:bluebirdofoz:20180407093832j:plain

Release ビルドを行いたい場合は Release についてもプロパティ設定を行います。
違いはライブラリディレクトリの指定時に debug ディレクトリを release ディレクトリで選択する事です。
f:id:bluebirdofoz:20180407093840j:plain