トップページ > 過去ログ > 記事閲覧
VMD読み込みのバグ
名前:uchan 日時: 2012/03/06 08:38

hoge.pmdファイルに対応したhoge000.vmdを用意しておけば、PMDファイルの読み込みと同時にVMDファイルも読み込まれるのは、DXライブラリの仕様です。 バグっぽい挙動を発見しましたので報告させて頂きます。 使っているのはDXライブラリ3.06です。 具体的な問題は、foo.bar.pmdというPMDファイルとfoo.bar000.vmdというVMDファイルが有った際に、MV1LoadModelでPMDファイルは読み込めるが、VMDファイルが読み込まれないというものです。 VMDファイル名をPMDファイル名から自動生成する際に、ファイル名の前方からピリオドを検索しているのではないかと推測します。 ご対応をよろしくお願いします。

Page: 1 |

Re: VMD読み込みのバグ ( No.1 )
名前:管理人 日時:2012/03/11 02:55

手元のバージョンで試したところ、ピリオドが複数あるファイルも正常に vmdファイルを読み込めるようです よろしければ Ver3.07a か、こちらの暫定最新バージョンをお試しになってみてください http://homepage2.nifty.com/natupaji/DxLib/DxLibVCTest.exe // VisualC++ 用 http://homepage2.nifty.com/natupaji/DxLib/DxLibBCCTest.exe // BorlandC++ 用 http://homepage2.nifty.com/natupaji/DxLib/DxLibGCC_DevCppTest.exe // Dev-C++ 用 http://homepage2.nifty.com/natupaji/DxLib/DxLibGCC_MinGWTest.exe // MinGW 用 http://homepage2.nifty.com/natupaji/DxLib/DxLibMakeTest.exe // ソース (中身を既存のライブラリのファイルに上書きして、BCCをお使いの 場合は『再構築』を、VCをお使いの場合は『リビルド』を、 Dev-C++をお使いの方は「Rebuild All(Ctrl+F11)」をして下さい)
Re: VMD読み込みのバグ ( No.2 )
名前:uchan 日時:2012/03/14 16:27

ご返信ありがとうございました。 3.07aと暫定最新バージョン両方とも試してみましたが、当方では解決しませんでした。 ソースコードを追ったところ、暫定最新バージョンのDxModel.cpp:15083において、拡張子を抜いたファイル名を得る処理で「_TSTRCHR」を用いているために、ファイル名の先頭からピリオドを検索してしまっているようです。 そして、ファイル名の先頭から_TSTRCHRで検索された位置(最初のピリオド)までの文字列が「Name」変数に格納され、MV1LoadModel_Static関数に渡ります。 MV1LoadModel_Static関数の中では、渡されたName変数がLoadParam.Nameへ代入されています。 LoadParam.NameはDxModelLoader3.cpp:1306で _TSPRINTF( _DXWTP( StringT ), _DXWTR( "%s%03d.vmd" ), LoadParam->Name, i ) ; として使われています。 僕がソースを追跡したところ、以上のように、ファイル名の先頭のピリオドまでしか認識しないという問題は、暫定最新バージョンにも残っていると思うのですが、どうでしょうか。
Re: VMD読み込みのバグ ( No.3 )
名前:管理人 日時:2012/03/17 15:28

申し訳ありません、ご指摘の通りです 問題なく読み込めていたと思ったら model.pmd model000.vmd model.test.pmd model.test000.vmd ↑このようなファイル構成のフォルダで model.test.pmd を読み込んだところアニメーションも読み込まれたので、 「model.test000.vmd が読み込まれた」と思い込んでいたのですが、単に model000.vmd が読み込まれていただけでした orz 修正版をアップしましたので、よろしければお試しになってみてください m(_ _;m http://homepage2.nifty.com/natupaji/DxLib/DxLibVCTest.exe // VisualC++ 用 http://homepage2.nifty.com/natupaji/DxLib/DxLibBCCTest.exe // BorlandC++ 用 http://homepage2.nifty.com/natupaji/DxLib/DxLibGCC_DevCppTest.exe // Dev-C++ 用 http://homepage2.nifty.com/natupaji/DxLib/DxLibGCC_MinGWTest.exe // MinGW 用 http://homepage2.nifty.com/natupaji/DxLib/DxLibMakeTest.exe // ソース (中身を既存のライブラリのファイルに上書きして、BCCをお使いの 場合は『再構築』を、VCをお使いの場合は『リビルド』を、 Dev-C++をお使いの方は「Rebuild All(Ctrl+F11)」をして下さい)
Re: VMD読み込みのバグ ( No.4 )
名前:uchan 日時:2012/03/22 08:13

返信遅くなりました。 確認したところ、バグは治ったようでした。 ご対応有難うございました。

Page: 1 |