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;
}