Re: pmdファイルのロード失敗 ( No.1 ) |
- 名前:管理人 日時:2010/07/03 23:41
ログの出力通りメモリが足りなくなっているようです
pmdファイルは読み込み時に作業用バッファとして数十MBのメモリをしようしますので、
読み込みに必要な空きメモリ領域がギリギリなのかもしれません
( mv1ファイルはDXライブラリネイティブのモデル形式なので、読み込み時に必要な
作業用バッファの容量は非常に少ないです )
・・・とはいえ、現在のPCは軒並み1GBを越えたメモリを搭載しているので、
ちょっと考えにくい現象だったりもします
bluefishさんがお使いのPCに搭載されているメモリの容量はどのくらいでしょうか?
|
Re: pmdファイルのロード失敗 ( No.2 ) |
- 名前:bluefish 日時:2010/07/06 02:47
ありがとうございます。
OSはWindows7の64bit版
メモリは4GB、VRAMは512MB(GeForce210)です。
容量だけ見れば単純にメモリが足りないということはないとおもいます。
いくつか試してみた感想としては、
・2つめのpmdファイルでエラーが出る
・1つだけロードした場合は問題がない
などから、pmd→mv1変換に使ったメモリ領域を
アンロックし忘れているのではないかと思います。
(でも、その場合は一般保護法エラーになりそうな感じですが)
どちらにしても、事前にmv1に変換してしまえば問題はないので、
そこまで重要度の高い問題ではないように思います。
|
Re: pmdファイルのロード失敗 ( No.3 ) |
- 名前:いっち 日時:2010/07/06 19:04
私の環境でも試してみたいので、事象の発生するソースとpmdファイルをご提供いただけますでしょうか?
> どちらにしても、事前にmv1に変換してしまえば問題はないので、
> そこまで重要度の高い問題ではないように思います。
潜在的なバグの解消につながるかもしれないので、できれば原因の追究を行って頂きたいです。
|
Re: pmdファイルのロード失敗 ( No.4 ) |
- 名前:bluefish 日時:2010/07/07 15:52
>私の環境でも試してみたいので、事象の発生するソースとpmdファイルをご提供いただけますでしょうか?
最初に現象を確認したソースがスパゲッティになっちゃってるので
プロジェクトを作り直しました。
(こちらでも同様のエラーが発生します)
URL:
ttp://www.dotup.org/uploda/www.dotup.org1012862.zip.html
パスワード:
dxlib
です。
また、追試としてほかのpmdファイルを読ませてみましたが、ポリゴン数が少ないのかボーンが少ないのか
わかりませんがうまくロードできています。
pmdの破損かと思うのですが、前述のとおりロード順を入れ替える、
片方のpmdだけ2回ロードさせるなどの方法でもロードできないのが不明です。
(pmdが破損しているなら、どちらも同じ箇所が破損している可能性が高いです。その場合ロード順の変更で結果が変わることは考えにくいですし、
どちらか片方のpmdだけロードした場合はうまくいくはずです。)
|
Re: pmdファイルのロード失敗 ( No.5 ) |
- 名前:いっち 日時:2010/07/07 22:08
ソースにある4つのセットを試してみましたが、特に問題なく読み込めているように見受けられました。
(テクスチャの読み込みでエラーは出ていましたが)
主な環境は以下の通りです。
WinXP Pro SP3 + VS2008 EE SP1 + DxLib 3.02f(06/27あたり版) + RAM 2GB + VRAM 128MB
|
Re: pmdファイルのロード失敗 ( No.6 ) |
- 名前:bluefish 日時:2010/07/08 01:08
検証ありがとうございます。
となると環境との相性になるのかもしれませんね。
(ただでさえ64bitOSはいろいろとアレですし)
|
Re: pmdファイルのロード失敗 ( No.7 ) |
- 名前:いっち 日時:2010/07/08 19:03
テクスチャ用のファイルを退避した状態(つまりテクスチャの読み込みに失敗する状態)でテストを行った場合、
bluefishさんの環境ではどのような結果になりますでしょうか?
|
Re: pmdファイルのロード失敗 ( No.8 ) |
- 名前:sss 日時:2010/07/08 21:19
ビルドする環境が手元になかったので、同梱されているexeを実行してみました。
テクスチャのロード以外は、エラーも出ずにモデルが2つ表示されました。
環境は、
OS: Windows7 64bit
メモリ: 4GB
VRAM: 1GB(GeForce GTS250)
同梱されているLOGファイルの内容が、書かれている環境の物と違うのは、色々と試していた結果なのかな。
メモリ総容量 2GBで、空きも 2GBって、どんな環境なんだろうと思いましたが^^;
(Virtual PCかなにか?)
|
Re: pmdファイルのロード失敗 ( No.9 ) |
- 名前:管理人 日時:2010/07/11 14:07
のそのそしていたらアップしていただいたファイルが期限切れで消えてしまいました orz
原因が64bitOSかどうかは・・・分かりません
> sssさん
メモリ総容量と空きメモリ容量がどちらも2GBになっているのはライブラリのプログラムが原因です
4GB以上のメモリを搭載したPCでは正常に動作しないAPIを使用していたので、4GB以上の
メモリを搭載していても正常に動作するAPIを使用するように修正しました
こちらにその修正を施したバージョンを置いておきます m(_ _;m
http://homepage2.nifty.com/natupaji/DxLib/DxLibVCTest.exe // VisualC++ 用
http://homepage2.nifty.com/natupaji/DxLib/DxLibBCCTest.exe // BorlandC++ 用
(中身を既存のライブラリのファイルに上書きして、BCCをお使いの
場合は『再構築』、VCをお使いの場合は『リビルド』をして下さい)
|
Re: pmdファイルのロード失敗 ( No.10 ) |
- 名前:sss 日時:2010/07/12 23:31
私の所では、64bitOSでも問題ないので、64bitOSだからということはないと思います。
> 4GB以上のメモリを搭載したPCでは正常に動作しないAPIを使用していたので
そんなのもあったんですね。
対応お疲れ様です。
ただ、書いた通り私の環境もメモリ 4GBですが、正常に表示されているように見えました。
(メモリ総量:4087.05MB 空きメモリ領域:2652.14MB)
そして、bluefishさんが書かれた環境が、Win7 64bitなのに、同梱のLOGでは WinXPsp3ぽかったので
何かのテスト環境なのかなと思ったのでした^^;
さて、ノートPCでも実行してみたところ、現象を確認しました。
(OSは、Windows XP sp2 もちろん32bit)
ただ、こちらは本当にメモリ不足の可能性も?
(メモリ総量:1021.48MB 空きメモリ領域:655.32MB)
まぁ、これで足りないとなると、ゲームを作ったときに
要求される実行環境が怖いことになりそうな気もします^^;
関係ないと思いつつ、DirectXの更新もしましたが変わりませんでした。
(グラフィックドライバの更新はしていませんが)
bluefishさんのLOGと同じくTotal size 114MB弱くらいで Alloc num:854で落ちているので
このあたりが鍵となるかと思ったのですが、モデルを変えると値が変わりますね^^;
(考えて見れば当たり前だ><)
|
Re: pmdファイルのロード失敗 ( No.11 ) |
- 名前:bluefish 日時:2010/07/14 00:50
しばらく見ないうちに・・・
皆様アドバイスありがとうございます。
>いっち 様
pmdのみ別フォルダにおいてロードしてみたのですが
テクスチャは貼れているようです。
テクスチャデータを内包しているだけかもしれませんが。
>sss 様
私もタスクマネージャを開いたときはびっくりしました。
LOGの内容が違うのは、研究室のPCで勝手に・・・もとい、
別のPCでも試した結果です。そっちはXPのSP3ですので。
(ちなみに、どちらも同じ症状が出ました。)
>管理人 様
ttp://www1.axfc.net/uploader/Li/so/71937.zip
こちらの方に再アップしました。
本来ならメールで送るべきなのでしょうが、
ほかの方にも試してもらいたいと思い、アップローダーの形をとりました
ご容赦ください。
メモリ使用量を改善したDxLibVCTest.exeですが
ライブラリを上書きするとClearDrawScreenが
LNK1120エラーを吐くようです。
ClsDrawScreenは問題なく使えるのですが・・・
|
Re: pmdファイルのロード失敗 ( No.12 ) |
- 名前:管理人 日時:2010/07/18 03:57
ファイルの再アップありがとうございます
私も Win7 64bit の環境があるので試してみましたが、ご報告いただいた現象は発生しませんでした
( コメントアウトされている3つのパターン全部試してみました )
お渡ししたバージョンからまた幾つか大きな変更を加えていて、もしかしたら手元のバージョンでは
正常に読み込むことができるかもしれませんので、よろしければこちらをお試しになってみてください m(_ _)m
http://homepage2.nifty.com/natupaji/DxLib/DxLibVCTest.exe // VisualC++ 用
http://homepage2.nifty.com/natupaji/DxLib/DxLibBCCTest.exe // BorlandC++ 用
(中身を既存のライブラリのファイルに上書きして、BCCをお使いの
場合は『再構築』、VCをお使いの場合は『リビルド』をして下さい)
// ビューアー
http://homepage2.nifty.com/natupaji/DxLib/DxLibModelViewerTest.zip
ClearDrawScreen が Link エラーを発生する原因はわかりません、ライブラリファイルを上書きした後
「ビルド」ではなく「リビルド」をしても Link エラーが発生するのでしょうか?
|
Re: pmdファイルのロード失敗 ( No.13 ) |
- 名前:bluefish 日時:2010/07/30 18:10
返信が遅くなりました。
管理人様の環境でエラーが出ないということは
OSかDirectXか、そのあたりの問題かもしれません。
>ClearDrawScreenについて
URLを張っていただいたライブラリを上書きしてみたのですが
LINK : fatal error LNK1104: ファイル 'DxDrawFunc.lib' を開くことができません。
とのエラーが出てしまいます。
ファイル自体はきちんとフォルダに存在していますので
何が原因か良くはわからないのですが・・・
|
Re: pmdファイルのロード失敗 ( No.14 ) |
- 名前:管理人 日時:2010/08/03 09:01
ファイル自体はフォルダに存在しているのですか・・・
そうなりますと、bluefishさんが「このフォルダのDXライブラリ郡をリンカーは参照している」と
お考えになっているフォルダとは別のフォルダにあるDXライブラリ郡をリンカーが参照して
しまっているかもしれません
DxLib.h 等のヘッダファイルの在り処を指定する設定と DxLib.lib などのライブラリファイルの
在り処を指定する設定は別々に行いますので、ヘッダファイルの在り処の設定とライブラリファイルの
在り処の設定が一致しているかどうかご確認になってみて頂けますでしょうか?
因みに、DXライブラリは関数郡がバージョン毎に殆ど変わらないので、インクルードしている
ヘッダファイルとライブラリファイルのバージョンが一致していなくても一見正常にコンパイル・リンクが
できてしまったりしますが、そうして作成された実行ファイルは正常に動作しない可能性があります
|