FBX SDK 6.0
- プロジェクトの設定
C/C++、全般、追加のインクルードディレクトリ "C:\Program Files\Alias\FBXSDK60\include" C/C++、プリプロセッサ、プロセッサの定義 K_PLUGIN;K_FBXSDK;K_NODLLを追加 リンカ、全般、追加のライブラリディレクトリ C:\Program Files\Alias\FBXSDK60\lib\ リンカ、入力、追加の依存ファイル Advapi32.lib fbxsdk_mt.lib zlib_mt.lib リンカ、入力、特定のライブラリの無視 libcd.lib
- テストコード
fbxをASCIIで出力する
#include <fbxsdk.h> #include <kfbxio/kfbximporter.h> #include <kfbxplugins/kfbxsdkmanager.h> #include <kfbxplugins/kfbxscene.h> #include <stdio.h> using namespace FBXSDK_NAMESPACE; // インポート void import(KFbxSdkManager *pSdkManager, KFbxScene *pScene, char *fn) { // インポータの作成 KFbxImporter* lImporter = pSdkManager->CreateKFbxImporter(); lImporter->SetFileFormat(KFbxImporter::eFBX_BINARY); // インポータの初期化 if (lImporter->Initialize(fn) == false) { printf("Importerが作れませんでした\n"); exit(1); } // ステータスの設定 lImporter->SetState(KFbxImporter::eIMPORT_MATERIAL, true); lImporter->SetState(KFbxImporter::eIMPORT_TEXTURE, true); lImporter->SetState(KFbxImporter::eIMPORT_LINK, true); lImporter->SetState(KFbxImporter::eIMPORT_SHAPE, true); lImporter->SetState(KFbxImporter::eIMPORT_GOBO, true); lImporter->SetState(KFbxImporter::eIMPORT_ANIMATION, true); lImporter->SetState(KFbxImporter::eIMPORT_GLOBAL_SETTINGS, true); // インポート実行 if (lImporter->Import(*pScene) == false) { printf("Import に失敗\n"); exit(1); } // インポータの開放 pSdkManager->DestroyKFbxImporter(lImporter); } // エクスポート void export(KFbxSdkManager *pSdkManager, KFbxScene *pScene, char *fn) { // エクスポータの作成 KFbxExporter* lExporter = pSdkManager->CreateKFbxExporter(); if(lExporter->Initialize((const char *)fn) == false) { printf("Exporterが作れませんでした\n"); exit(1); } // ステータスの設定 lExporter->SetState(KFbxExporter::eEXPORT_MATERIAL, true); lExporter->SetState(KFbxExporter::eEXPORT_TEXTURE, true); lExporter->SetState(KFbxExporter::eEXPORT_LINK, true); lExporter->SetState(KFbxExporter::eEXPORT_SHAPE, true); lExporter->SetState(KFbxExporter::eEXPORT_GOBO, true); lExporter->SetState(KFbxExporter::eEXPORT_ANIMATION, true); lExporter->SetState(KFbxExporter::eEXPORT_GLOBAL_SETTINGS, true); // ファイルフォーマットの指定 lExporter->SetFileFormat(KFbxExporter::eFBX_50_ASCII); // エクスポート実行 lExporter->Export(*pScene); // エクスポータの開放 pSdkManager->DestroyKFbxExporter(lExporter); } int main() { // SdkManager の作成 KFbxSdkManager *pSdkManager = KFbxSdkManager::CreateKFbxSdkManager(); if (!pSdkManager) { printf("KFbxSdkManager が作れませんでした\n"); exit(1); } // シーンの作成 KFbxScene *pScene = pSdkManager->CreateKFbxScene(); import(pSdkManager, pScene, "ExportScene01.fbx"); export(pSdkManager, pScene, "ExportScene02.fbx"); // SdkManager の開放 delete pSdkManager; return 0; }