FBX SDK – 2
2005.08 では,調べたかった事(FBX SDK のコンバート動作)がわからなかったので,今度は 2005.12.1 を選択.
{
KFbxSdkManager* pSdkManager = NULL ;
KFbxScene* pScene = NULL ;
if (!::InitializeSdkObjects(pSdkManager,pScene)) { return -1 ; }
CString fileFBX = _T(“Test.fbx”) ;
CString pathEXE = ::GetModuleFileName() ;
CString pathFBX = ::GetFileDir(pathEXE) + _T(“\\”) + fileFBX ;
if (::LoadScene(pSdkManager,pScene,pathFBX)) {
CString pathOTH = pathFBX + _T(“.3ds”) ;
::SaveScene(pSdkManager,pScene,pathOTH) ; // ,KFbxExporter::e3D_STUDIO_3DS) ;
}
::DestroySdkObjects(pSdkManager) ;
}
これをコンソールベースで作成,実行すると,3ds のファイルはできた.
dae はデータによるのかどうかわからないがアプリケーションエラーとなる.
dae ファイルはできているがモデルはなさそう.
ダイアログベースに改良.ファイルをドロップすると以下の変換が通る.
BOOL CFBXtoDlg::Convert(LPCTSTR filePath)
{
KFbxSdkManager* pSdkManager = NULL ;
KFbxScene* pScene = NULL ;
if (!::InitializeSdkObjects(pSdkManager,pScene)) { return FALSE ; }
CString pathSrc = filePath ;
if (::LoadScene(pSdkManager,pScene,pathSrc)) {
CString path3DS = pathSrc + _T(“.3ds”) ;
CString pathOBJ = pathSrc + _T(“.obj”) ;
CString pathDAE = pathSrc + _T(“.dae”) ;
::SaveScene(pSdkManager,pScene,path3DS) ;
::SaveScene(pSdkManager,pScene,pathOBJ) ;
::SaveScene(pSdkManager,pScene,pathDAE) ;
}
::DestroySdkObjects(pSdkManager) ;
return TRUE ;
}
2005.08 の example で出来た fbx などをドロップして変換.
ExportScene03.fbx は,3ds への出力でアプリケーションエラー.
FBXto の VC 6 プロジェクトを VC 8 に.単純に変換して,デバッグ版でビルド,実行すると,
—————————
FBXto.exe – コンポーネントが見つかりません
—————————
MSVCR80.dll が見つからなかったため、このアプリケーションを開始できませんでした。アプリケーションをインストールし直すとこの問題は解決される場合があります。
—————————
OK
—————————
リリース版では,実行可能.
2012/12/10 追記
根本的な解決にはなってないが,2011.3.1 SDK に変更して対応.
FBXto.2011.3.1.zip