トップページ > 記事閲覧
現最新バージョンでのFBXファイルの読み込みについて
名前:double型 日時: 2024/06/06 15:23

いつもお世話になっております。 FBXファイルの読みこみについて前の記事(ttps://dxlib.xsrv.jp/cgi/patiobbs/patio.cgi?mode=view&no=3517)を見つけ、使用してみたものの 未解決の外部シンボル "void __cdecl fbxsdk::_FbxAssert(char const *,char const *,unsigned int,bool,char const *,...)" (?_FbxAssert@fbxsdk@@YAXPBD0I_N0ZZ) が関数 "public: int & __thiscall fbxsdk::FbxArray<int,16>::operator[](int)const " (??A?$FbxArray@H$0BA@@fbxsdk@@QBEAAHH@Z) で参照されました DxLibSourceTest_WithUseCLib 上記のようなエラーが多数発生しておりビルドエラーが出ている状態となっています。 自分の実力不足もあるのですが、 現在の最新バージョンでのFBXファイルの読み込みについて教えて頂きたいです。 環境 fbx sdk ・FBX SDK 2020.3.7 VS2022(exe - 117827kb) ビルド  ・Windows11 ・visualstudio 2022 ・Dxlib(3.24d)
メンテ

Page: 1 |

Re: 現最新バージョンでのFBXファイルの読み込みについて ( No.1 )
名前:管理人 日時:2024/06/07 21:46

DXライブラリで使用している FBX SDK のバージョンと異なるためにエラーが発生しているようです DXライブラリで現在使用している FBX SDK のバージョンは 2020.2 なので、よろしければ FBX SDK のページから 2020.2 の SDK をダウンロードして使用してみてください m(_ _)m
メンテ
Re: 現最新バージョンでのFBXファイルの読み込みについて ( No.2 )
名前:double型 日時:2024/06/08 08:45

返信ありがとうございます。 言われた通りバージョンを2020.2に変更してビルドしてみた結果、次は 'DxDrawFunc_vs2015_x64_MDd.lib' を開くことができません。 とエラーが発生したのですが、どうしたらいいでしょうか。 (このエラー1つだけです。)
メンテ
Re: 現最新バージョンでのFBXファイルの読み込みについて ( No.3 )
名前:管理人 日時:2024/06/09 02:07

DxDrawFunc_vs2015_x64_MDd.lib はDXライブラリのパッケージの 『プロジェクトに追加すべきファイル_VC用』というフォルダの中にあるファイルです 使い方ページ( https://dxlib.xsrv.jp/use/dxuse_vscom2022.html )の 『4.DXライブラリを使用するためのプロジェクトの設定を行う』の F以降のリンカーの設定は問題なく行えていますでしょうか?
メンテ
Re: 現最新バージョンでのFBXファイルの読み込みについて ( No.4 )
名前:double型 日時:2024/06/09 22:41

ありがとうございます。エラーの内容解決しました。 どうやらFBXSDKのlibファイルの場所を指定した際に消えてしまっていたようです。 ですがビルドした際にモデルハンドルに-1が入ってしまいます。 もし、考えられる原因がございましたら、教えていただけますでしょうか。 ----ファイル構成----- FbxTestProject┳FbxTestProject━FbxTestProject.vcxproj ┃ FbxTestProject.vcxproj.filters        ┃ FbxTestProject.vcxproj.user        ┃ Log.txt        ┃ main.cpp ┃        test.fbx        ┃        ┗FbxTestProject.sln ----コード---- #include "DxLib.h" int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) { ChangeWindowMode(TRUE); // DXライブラリ初期化処理 if (DxLib_Init() == -1) { return -1; } int modelHandle = MV1LoadModel("test.fbx"); SetDrawScreen(DX_SCREEN_BACK); MV1DrawModel(modelHandle); DrawBox(0, 0, 100, 100, GetColor(255, 255, 255), TRUE); ScreenFlip(); WaitKey(); // DXライブラリ使用の終了処理 DxLib_End(); // ソフトの終了 return 0; }
メンテ
Re: 現最新バージョンでのFBXファイルの読み込みについて ( No.5 )
名前:管理人 日時:2024/06/09 23:20

ビルドエラーは解決したようで何よりです > ですがビルドした際にモデルハンドルに-1が入ってしまいます。 >  > もし、考えられる原因がございましたら、教えていただけますでしょうか。 プログラム実行時に Log.txt が作成されるのですが、何かエラーに関する出力はされていないでしょうか?
メンテ
Re: 現最新バージョンでのFBXファイルの読み込みについて ( No.6 )
名前:double型 日時:2024/06/10 14:31

L Log.txtです。 //////////////////////////////////////////////////////////////////////////////////// Log.txt //////////////////////////////////////////////////////////////////////////////////// 0:ChangeWindowMode実行 0:ウインドウモードフラグが立てられました 1:DXライブラリの初期化処理開始 3: システムの情報を出力します 3: DXライブラリ Ver3.24d 4: 論理プロセッサの数 : 20 4: OS Windows11 ( Build 22631 ) 104: 現時点のCPU動作速度:大体2.68GHz 104: MMX命令を使用します 104: SSE命令が使用可能です 105: SSE2命令が使用可能です 105: CPUベンダ:GenuineIntel 106: CPU名:12th Gen Intel(R) Core(TM) i7-12700H 108: COMの初期化... 成功 112: 非同期読み込み処理の初期化...成功 113: ファイルアクセス処理の初期化...成功 114: メモリ総量:16093.49MB 空きメモリ領域:2616.30MB 114: タイマーの精度を検査します 115: 精度結果 更新回数 マルチメディアタイマー:0 パフォーマンスカウンター:60 115: パフォーマンスカウンターを使用します タイマー精度 : 10000.000000 KHz 115: 115: ソフトの二重起動検査... 二重起動はされていませんでした 116: ウインドウクラスを登録します... 登録に成功しました 117: ウインドウモード起動用のウインドウを作成します 117: ディスプレイ情報のセットアップ開始 118: モニターの数:2 ディスプレイデバイスの数:8 118: No.0 モニター名:\\.\DISPLAY5 1920x1080 32bit 60Hz 96x96dpi 118: No.1 モニター名:\\.\DISPLAY1 1920x1080 32bit 144Hz 96x96dpi 131: ディスプレイ情報のセットアップ完了 131: ウインドウ矩形 ( 624, 249 )-( 1280, 768 ) 135: ウインドウの作成に成功しました 135: ウインドウを表示します 157: IMEを無効にしました 157: ウインドウスタイルをウインドウモード用に変更します... 完了 185: XInput DLL の読み込み中... 成功 188: DirectInput関係初期化処理 188: DirectInput8 の取得を試みます...成功 197: 引き続き初期化処理... 初期化成功 198: ジョイパッドの初期化... 199: XInput 対応コントローラーのチェックを開始します 199: XInput 対応コントローラー No.0 をチェック 199: XInput 対応コントローラー No.0 の接続は確認できませんでした 199: XInput 対応コントローラー No.1 をチェック 199: XInput 対応コントローラー No.1 の接続は確認できませんでした 200: XInput 対応コントローラー No.2 をチェック 200: XInput 対応コントローラー No.2 の接続は確認できませんでした 200: XInput 対応コントローラー No.3 をチェック 200: XInput 対応コントローラー No.3 の接続は確認できませんでした 200: XInput 対応コントローラーのチェック完了 201: DirectInput 対応ジョイパッドの列挙を開始します 215: DirectInput 対応ジョイパッドの列挙終了 215: ジョイパッドの初期化は正常に終了しました 215: マウスデバイスの初期化... 初期化成功 216: キーボードデバイスの初期化... 初期化成功 220: DirectInput 関連の初期化は正常に終了しました 223: WASAPI の初期化を行います 227: デバイス名 : スピーカー (Realtek(R) Audio) 232: デフォルト遅延時間 : 10.000 ms 232: 最小遅延時間 : 3.000 ms 232: 遅延時間 : 10.000 ms 233: チャンネル数   : 2 ch 233: 量子化ビット深度 : 32 bit 233: 有効ビット深度  : 32 bit 233: サンプリングレート : 48000 Hz 233: データ形式 : 浮動小数点型 245: 動作モード : 共有モード 245: WASAPI の初期化は正常に終了しました 249: d3d11.dll の読み込み.... 成功 252: dxgi.dll の読み込み.... 成功 253: API CreateDXGIFactory2 のアドレスを取得します.... 成功 253: IDXGIFactory2 を作成します.... 成功 260: API CreateDXGIFactory6 のアドレスを取得します.... 成功 260: IDXGIAdapter を列挙 261: Adapter No.0 Desc:NVIDIA GeForce RTX 3060 Laptop GPU VRAM:5996MB 261: Output Device No.0 Name:\\.\DISPLAY5 ( 0, 0 )-( 1920, 1080 ) 261: Adapter No.1 Desc:Intel(R) Iris(R) Xe Graphics VRAM:128MB 261: Output Device No.0 Name:\\.\DISPLAY1 ( 1920, -135 )-( 3456, 729 ) 262: Adapter No.2 Desc:Microsoft Basic Render Driver VRAM:0MB 262: API D3D11CreateDevice のアドレスを取得します.... 成功 262: IDXGIAdapter を取得します.... 成功 263: IDXGIAdapter1 を取得します.... 成功 263: IDXGIAdapter2 を取得します.... 成功 264: IDXGIAdapter3 を取得します.... 成功 264: IDXGIAdapter4 を取得します.... 成功 265: Direct3D 11 FeatureLevel 11_0 以上を対象とします 265: ID3D11Device オブジェクトを取得します.... 成功 382: IDXGIDevice1 を取得します.... 成功 383: IDXGIDevice1->SetMaximunFrameLatency( 1 ); を実行しました 383: [ウインドウモード 640x480 ( 640, 287 )-( 1280, 767 )] 383: IDXGISwapChain2 を作成します.... 成功 386: IDXGIFactory2->CreateSwapChainForHwnd の戻り値:0x00000000 386: IDXGIOutput を取得します.... 成功 387: Graphics Device:NVIDIA GeForce RTX 3060 Laptop GPU 387: 画面のフォーマットは DXGI_FORMAT_R8G8B8A8_UNORM です 387: 16bit Zバッファフォーマットは DXGI_FORMAT_D16_UNORM です 388: 24bit Zバッファフォーマットは DXGI_FORMAT_D24_UNORM_S8_UINT です 388: 32bit Zバッファフォーマットは DXGI_FORMAT_D32_FLOAT です 388: 16bit カラーフォーマットは DXGI_FORMAT_B5G6R5_UNORM です 388: 32bit カラーフォーマットは DXGI_FORMAT_B8G8R8X8_UNORM です 388: アルファ付き 16bit カラーフォーマットは DXGI_FORMAT_B4G4R4A4_UNORM です 389: アルファ付き 32bit カラーフォーマットは DXGI_FORMAT_R8G8B8A8_UNORM です 389: アルファテスト用 16bit カラーフォーマットは DXGI_FORMAT_B5G5R5A1_UNORM です 389: アルファテスト用 32bit カラーフォーマットは DXGI_FORMAT_R8G8B8A8_UNORM です 389: DXT1テクスチャフォーマットは DXGI_FORMAT_BC1_UNORM です 390: DXT2テクスチャフォーマットは使えません 391: DXT3テクスチャフォーマットは DXGI_FORMAT_BC2_UNORM です 391: DXT4テクスチャフォーマットは使えません 392: DXT5テクスチャフォーマットは DXGI_FORMAT_BC3_UNORM です 392: BC7_UNORM テクスチャフォーマットは DXGI_FORMAT_BC7_UNORM です 392: BC7_UNORM_SRGB テクスチャフォーマットは DXGI_FORMAT_BC7_UNORM_SRGB です 392: ABGR 整数 16 ビット型カラーフォーマットは DXGI_FORMAT_R16G16B16A16_UNORM です 392: ABGR 浮動小数点 16 ビット型カラーフォーマットは DXGI_FORMAT_R16G16B16A16_FLOAT です 393: ABGR 浮動小数点 32 ビット型カラーフォーマットは DXGI_FORMAT_R32G32B32A32_FLOAT です 393: 1チャンネル整数 8 ビット型カラーフォーマットは DXGI_FORMAT_R8_UNORM です 393: 1チャンネル整数 16 ビット型カラーフォーマットは DXGI_FORMAT_R16_UNORM です 393: 1チャンネル浮動小数点 16 ビット型カラーフォーマットは DXGI_FORMAT_R16_FLOAT です 394: 1チャンネル浮動小数点 32 ビット型カラーフォーマットは DXGI_FORMAT_R32_FLOAT です 394: 2チャンネル整数 8 ビット型カラーフォーマットは DXGI_FORMAT_R8G8_UNORM です 394: 2チャンネル整数 16 ビット型カラーフォーマットは DXGI_FORMAT_R16G16_UNORM です 394: 2チャンネル浮動小数点 16 ビット型カラーフォーマットは DXGI_FORMAT_R16G16_FLOAT です 394: 2チャンネル浮動小数点 32 ビット型カラーフォーマットは DXGI_FORMAT_R32G32_FLOAT です 395: 描画用 16bit カラーフォーマットは DXGI_FORMAT_B5G6R5_UNORM です 395: 描画用 32bit カラーフォーマットは DXGI_FORMAT_B8G8R8X8_UNORM です 395: 描画用アルファ付き 32bit カラーフォーマットは DXGI_FORMAT_R8G8B8A8_UNORM です 395: 描画用 ABGR 整数 16 ビット型カラーフォーマットは DXGI_FORMAT_R16G16B16A16_UNORM です 396: 描画用 ABGR 浮動小数点 16 ビット型カラーフォーマットは DXGI_FORMAT_R16G16B16A16_FLOAT です 396: 描画用 ABGR 浮動小数点 32 ビット型カラーフォーマットは DXGI_FORMAT_R32G32B32A32_FLOAT です 396: 描画用1チャンネル整数 8 ビット型カラーフォーマットは DXGI_FORMAT_R8_UNORM です 397: 描画用1チャンネル整数 16 ビット型カラーフォーマットは DXGI_FORMAT_R16_UNORM です 397: 描画用1チャンネル浮動小数点 16 ビット型カラーフォーマットは DXGI_FORMAT_R16_FLOAT です 397: 描画用1チャンネル浮動小数点 32 ビット型カラーフォーマットは DXGI_FORMAT_R32_FLOAT です 397: 描画用2チャンネル整数 8 ビット型カラーフォーマットは DXGI_FORMAT_R8G8_UNORM です 398: 描画用2チャンネル整数 16 ビット型カラーフォーマットは DXGI_FORMAT_R16G16_UNORM です 398: 描画用2チャンネル浮動小数点 16 ビット型カラーフォーマットは DXGI_FORMAT_R16G16_FLOAT です 398: 描画用2チャンネル浮動小数点 32 ビット型カラーフォーマットは DXGI_FORMAT_R32G32_FLOAT です 398: 使用する機能レベル:D3D_FEATURE_LEVEL_11_1 399: 同時にレンダリングできるバッファの数:8 399: 最大テクスチャサイズ 幅:16384 高さ:16384 399: 標準描画用の頂点バッファの作成.... 成功 400: シェーダーコード関係の初期化.... 成功 414: 各種シェーダー用定数バッファの作成.... 成功 415: 各種 ID3D11InputLayout の作成.... 成功 432: 画像の単純転送処理の初期化... 成功 434: 深度バッファを作成します.... 成功 437: フォントの初期化を行います 440: フォントの初期化は正常に終了しました 533: 文字コードバッファの初期化を行います... 完了しました 551:DXライブラリの初期化処理終了 568:VMD Load Error : 対応していない VMD バージョンです //////////////////////////////////////////////////////////////////////////////////////////////////////////////
メンテ
Re: 現最新バージョンでのFBXファイルの読み込みについて ( No.7 )
名前:管理人 日時:2024/06/10 22:06

Log.txt の貼り付けありがとうございます > 568:VMD Load Error : 対応していない VMD バージョンです 読み込みを試された test.fbx がFBXファイルと判定されず、他の形式の判定が行われ 最終的に VMDファイルでもないと判断されたエラー出力のようです 最新の FBX SDK ではないのが test.fbx が読み込めない原因である可能性が高い気がしますが、 断言はできません お手数で申し訳ありませんが、よろしければ読み込みに試された test.fbx をzipなどで圧縮して BQE00322(あっとまーく)nifty.com ( (あっとまーく) を @ に置き換えてください ) ↑ こちらのメールアドレスに送って頂けないでしょうか? 私の方で読み込めない原因を調べてみたいと思います m(_ _)m
メンテ
Re: 現最新バージョンでのFBXファイルの読み込みについて ( No.8 )
名前:double型 日時:2024/06/10 22:26

先ほどメールの方送らせていただきました。
メンテ
Re: 現最新バージョンでのFBXファイルの読み込みについて ( No.9 )
名前:管理人 日時:2024/06/10 23:01

メールありがとうございます 添付していただいた fbxファイルは手元では問題なく読み込むことができました( DxLibModelViewer.exe で読み込めました ) となると、fbxファイル読み込み機能が有効になっていないのかもしれません DxLib.lib を別プロジェクトでコンパイルして使用するよりDXライブラリのソースを直接コンパイルして使用する方が確実ですので お手数で申し訳ありませんが よろしければこちらのDXライブラリのソースを直接コンパイルして使用する プロジェクトで fbxファイル読み込み機能を有効にして( //#define DX_LOAD_FBX_MODEL のコメントアウトを外して ) test.fbx を読み込む処理を実行してみてください m(_ _;m https://dxlib.xsrv.jp/temp/DxLibSourceTest_WithUseCLib.zip
メンテ
Re: 現最新バージョンでのFBXファイルの読み込みについて ( No.10 )
名前:double型 日時:2024/06/14 18:55

見落としの設定がないように最初から確認を繰り返し 設定しビルドして、サンプルを実行しましたが結果は失敗でした。 エラー内容は 未解決の外部シンボル xmlCleanupParser が関数 "void __cdecl fbxsdk::Close3rdPartyLibraries(void)" (?Close3rdPartyLibraries@fbxsdk@@YAXXZ) で参照されました 等のエラーが多数出ました。 fbxsdkのバージョンも2020.2です。 VisualStudio等のバージョンが関係しているんでしょうか?
メンテ
Re: 現最新バージョンでのFBXファイルの読み込みについて ( No.11 )
名前:管理人 日時:2024/06/15 19:26

すみません、FBXファイル読み込みを有効にする場合はインクルード設定の他にリンカー設定も行う必要があります 参考にされたスレッドのこちらの手順を行うことでエラーは解消されると思います ----------------------------------------------------------------------------------------------------------- 12.プロジェクトのプロパティダイアログの左側から「構成プロパティ」→「リンカー」→「全般」を選択して、  右側の「追加のライブラリティレクトリ」に FBX SDK の該当する Visual Studio のバージョン用の lib フォルダを追加する  ( 例: VisualStudio2010 を使用していて、   32bit版 Debug  ビルド用の lib ファイルを作成する際は C:\FbxSdk\2015.1\lib\vs2010\x86\debug   32bit版 Release ビルド用の lib ファイルを作成する際は C:\FbxSdk\2015.1\lib\vs2010\x86\release ) 13.同じくプロジェクトのプロパティダイアログの左側から「構成プロパティ」→「リンカー」→「入力」を選択して、  右側の「追加の依存ファイル」に「libfbxsdk-mt.lib」という記述を追加して、「OK」ボタンを押してプロパティダイアログを閉じる ----------------------------------------------------------------------------------------------------------- ただ、上記の説明では libfbxsdk-mt.lib のみ記載されていますが、2020.2 では libfbxsdk-mt.lib;libxml2-mt.lib の2つを記述する必要があるようです( 因みに 2020.3.7 の場合は alembic-mt.lib;libfbxsdk-mt.lib;libxml2-mt.lib の3つになります ) よろしければお試しください m(_ _)m
メンテ
Re: 現最新バージョンでのFBXファイルの読み込みについて ( No.12 )
名前:double型(解決済み) 日時:2024/06/19 07:24

なるほど.....必要なlibファイルが増えていたのですね。 libファイルを増やしてみると、 無事FBXファイルの読み込みを行うことができました。 ありがとうございます。
メンテ

Page: 1 |

題名
名前
コメント
パスワード (記事メンテ時に使用)

   クッキー保存