Iwao Dev

気付いたことをメモしています.

この画面は、簡易表示です

2012年12月6日

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 などをドロップして変換.
FBXto 2012.12.06
ExportScene03.fbx は,3ds への出力でアプリケーションエラー.


FBXto の VC 6 プロジェクトを VC 8 に.単純に変換して,デバッグ版でビルド,実行すると,
MSVCR80.dll が見つからなかったため
—————————
FBXto.exe – コンポーネントが見つかりません
—————————
MSVCR80.dll が見つからなかったため、このアプリケーションを開始できませんでした。アプリケーションをインストールし直すとこの問題は解決される場合があります。
—————————
OK
—————————
リリース版では,実行可能.


2012/12/10 追記
根本的な解決にはなってないが,2011.3.1 SDK に変更して対応.
FBXto.2011.3.1.zip
FBXto 2011.3.1 SDK

この投稿は役に立ちましたか? 役に立った 役に立たなかった 0 人中 0 人がこの 投稿 は役に立ったと言っています。

  にほんブログ村 IT技術ブログへ

  • Categories:


    top

    %d人のブロガーが「いいね」をつけました。