HobbyistBox

趣味事をつらつらと

【FBX to OBJ】00 FBXSDKを使えるようにしよう

はじめに

3Dを扱うと避けては通れないといっても過言ではないほどスタンダードになってきたのが FBX です。
ポリゴン情報はもちろんマテリアル、ボーン、アニメーションなど多くの情報を1ファイルに保存できるパワフルなフォーマットが FBX です。

さらに、この FBX には SDK がありプログラミングで扱いやすくなっています。

目標

とはいっても、目的もなしにプログラミングしてもしょうがないので今回は FBXファイル内のモデルデータを OBJファイルにコンバートすることを目標にしたいと思います。

環境

作業環境は

  • Windows10
  • VisualStudio 2015 Community
    • C++ コンソールアプリ
  • FBXSDK ver.20161_2

で進めていきたいと思います。

では、FBXSDK のセットアップをしていきましょう。

SDKをインストール

FBXSDK は AUTODESK からインストーラ形式で配布されているのでダウンロードしてください。

FBX SDK | Download FBX Converter & FBX Plugin | Autodesk

f:id:Hobbyist:20160209151726p:plain
f:id:Hobbyist:20160209150129p:plain

インストール自体は「Next」連打ですぐ終わります。
ただしインストール先のフォルダはライブラリを通す時に必要なのでインストール先を変えた場合は覚えておいてください。

ライブラリのパスを通す

では、インストールが終了したら Visual Studio を立ち上げて設定していきます。

まず、新しいプロジェクトを作成します。今回は win32コンソールアプリケーションで作成します。中身は空でもそうでなくてもどちらでもいいです。

f:id:Hobbyist:20160211110247p:plain

作成できたらプロジェクトのプロパティを開きパスを通していきます。
ここで設定する項目はプロパティの構成がデバッグかリリースかで変わるものがあるので注意が必要です。
構成の変更はプロパティページの左上で変更します。

f:id:Hobbyist:20160211130227p:plain


1.インクルードディレクトリ
この設定は共通ですので、構成を「すべての構成」に設定してください。

「構成プロパティ」>>「C/C++」>>「全般」>>「追加のインクルードディレクトリ」項目にパスを設定します。

f:id:Hobbyist:20160211131046p:plain

f:id:Hobbyist:20160211114816p:plain

パスはインストール先(変更がなければ C:\Program Files\Autodesk)内の

\FBX\FBX SDK\2016.1.2\include

です。


2.追加のライブラリディレクトリ
この項目は OS のビット数、構成の種類によってパスが違うので構成の種類を「Debug」もしくは「アクティブ(Debug)」に変更してください。

「構成プロパティ」>>「リンカー」>>「全般」>>「追加のライブラリディレクトリ」項目にパスを設定します。

f:id:Hobbyist:20160211120847p:plain

64bit OS 、構成は Debug の場合はインストール先(変更がなければ C:\Program Files\Autodesk)内の

\FBX\FBX SDK\2016.1.2\lib\vs2015\x64\debug

です。

32bit OS の場合は\x86\debug となります。


3.追加の依存ファイル
この項目も構成は「Debug」もしくは「アクティブ(Debug)」で進めます。

ここで指定するファイルはランタイムライブラリに左右されるので、まず、ランタイムライブラリを確認します。
場所は「構成プロパティ」>>「C/C++」>>「コード生成」>>「ランタイムライブラリ」です。

f:id:Hobbyist:20160211123320p:plain

今回の例でいくと /MDd というコマンドが指定されています。

次に「構成プロパティ」>>「リンカー」>>「入力」>>「追加の依存ファイル」項目にファイル名を記述します

f:id:Hobbyist:20160211123456p:plain

コマンドとファイルの対応は以下になります。

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

今回のコマンドであれば

libfbxsdk-md.lib

と記述してください。

f:id:Hobbyist:20160211124236p:plain

このファイルはさきほど設定した、追加のライブラリディレクトリ直下にあります。

設定できましたら、適応かOKを押してプロパティページを閉じてください。


4.正しく設定できたか確認
以下のコードをデバッグビルドしてみてください。

#include<fbxsdk.h>

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

  return 0;
}

エラーが無くビルドできましたら、正しく設定できています。


5.リリース構成の設定
デバッグビルドができましたら、次はリリースビルドの設定です。
と、言ってもここまで出来たら難しいことはありません。

もう一度プロパティを開き、構成を「Release」に変更し、手順の2~4を繰り返すだけです。

注意点は追加ライブラリのディレクトリが debug ではなく release である点ぐらいです。

最後に

リリースビルドもエラー無く通ったら設定は FBXSDK の設定は終了です。
ライブラリの設定はめんどくさいですが、便利なライブラリを使うためには是非押さえておきたいところです。