FBX SDK準備編 – ファイルからデータを取得しよう

今回からFBX SDKを使ってfbxファイルからデータを取得していきます。

fbxファイルはAutodesk社が管理するもっとも有名な3Dファイル形式の1つです。

取得するデータとしては頂点インデックス、頂点座標、法線、テクスチャ座標(uv)、ボーンインデックス、ボーンウェイトなどを取得していきます。

読み込むファイルはここでは僕が作成したモデルを使って説明します。 下のサイトからaotwintechan_fbxxxx.zip(xxxはバージョン)をダウンロードして解凍して使ってください。

SnapCrab NoName 2017 12 27 18 4 23 No 00 1320x500

単純な構造にしているので簡単に扱えると思います。

FBXSDKの設定をする

Visual Studioをインストールしてない方はこちらを参考にしてください。

まずは下の公式サイトから「GET FBX SDK」を押してダウンロードページに行き、FBX SDKをダウンロードしてください。

https://www.autodesk.com/products/fbx/overview

僕はVisual Studio Community 2017を使っているので、一番近い赤で示したVS2015用のFBX SDKをダウンロードしました。

新しいバージョンのSDKが出ていたら、そちらを使って、これからしていく説明のバージョン部分を読み替えてください。

SnapCrab NoName 2017 12 27 19 44 46 No 00

ダウンロードしたファイルをダブルクリックした後のインストールは特に変更するところがないのでnextを押していればいいです。

新規作成->プロジェクトからWin32コンソールアプリケーションを新規作成します。

ここではプロジェクト名をFbxLoaderSampleとしてます。

SnapCrab NoName 2017 12 26 17 35 56 No 00

下の様にプロジェクト->”プロジェクト名”のプロパティと進みます。

SnapCrab NoName 2017 12 27 20 29 21 No 00

左上の構成を「すべての構成」にして、「C/C++」->「全般」と進み、「追加のインクルードディレクトリ」の右にあるボタンを押すと「編集」というのが出てくるので選択します。

SnapCrab NoName 2017 12 27 20 38 24 No 00

ファイルのようなボタンを押して、インクルードディレクトリを指定していきます。

SnapCrab NoName 2017 12 27 20 45 40 No 00 768x582

インストールされたFBX SDKの「include」フォルダを指定します。 デフォルトでは「C:\Program Files\Autodesk\FBX\FBX SDK\2018.1.1\include」となるはずです。

SnapCrab NoName 2017 12 27 20 59 2 No 00 768x511

次に追加のライブラリディレクトリを指定していきます。

構成をアクティブデバッグ(またはデバッグ)にしてください。

リンカー->全般と進み、先ほどと同様にライブラリディレクトリを選択していきます。

SnapCrab NoName 2017 12 27 21 2 40 No 00 768x507

Visual Studio Communityは設定しないと32ビット版のバイナリしか扱えないので、「C:\Program Files\Autodesk\FBX\FBX SDK\2018.1.1\lib\vs2015\x86\debug」を選択します。

(x64を選択したい場合はこちらこちらなどを参考にして設定を行ってください)

SnapCrab NoName 2017 12 27 23 54 11 No 00 1 768x557

次に「C/C++」->「コード生成」のランタイムライブラリを確認します。

基本的には「/MDd」となっていると思います。

SnapCrab NoName 2017 12 27 22 17 21 No 00 768x555

「リンカー」->入力の追加の依存ファイルを編集していきます。

SnapCrab NoName 2017 12 27 22 26 19 No 00 768x485

先ほど/MDd(または/MD)となっていたので「libfbxsdk-md.lib」と入力します。

(/MTdまたは/MTとなっていたら「libfbxsdk-mt.lib」と入力します。)

SnapCrab NoName 2017 12 27 22 30 52 No 00 768x660

これでデバッグ時には使えるようになったので、コードを書いてきちんと設定できているか確かめます。

OKボタンを押してプロパティを閉じてください。

以下のコードを書いて、実行してみましょう(デバッグ開始はF5でできます)。

このとき必ずソリューション構成がDebugになっていることを確認してください。

SnapCrab NoName 2017 12 28 0 17 14 No 00

#include "stdafx.h"
#include "fbxsdk.h"

int main()
{
    FbxManager* manager = FbxManager::Create();
    manager->Destroy();	//これを呼んでおけばFBX SDKのメモリ解放忘れはないはずです。
    return 0;
}

エラーが出なければ問題ありません(すぐ終了します)。

先ほどはデバッグ構成の設定をしたので、今度はリリース構成の設定をしていきます。

プロパティを開き、構成を「Release」にします。

リンカー->全般の追加のライブラリディレクトリに

SnapCrab NoName 2017 12 28 0 20 50 No 00

デバッグの時と同様に「C:\Program Files\Autodesk\FBX\FBX SDK\2018.1.1\lib\vs2015\x86\release」と設定します。

SnapCrab NoName 2017 12 28 0 26 4 No 00 768x656

「C/C++」->「コード生成」のランタイムライブラリを確認します。

今回は「/MD」となっていましたので、「リンカー」->入力の追加の依存ファイルに「libfbxsdk-md.lib」と入力します。

SnapCrab NoName 2017 12 28 0 30 14 No 00

ソリューション構成をReleaseにして実行してみて、エラーが出なければOKです。

次回からは本格的にデータを取得していこうと思います。