トップページ > 記事閲覧
オブジェクト読み込みの限界容量
名前:ごんた 日時: 2016/10/28 17:00

Metasequoiaで作成したmqoファイル(20MB×6個)を用いてプログラムを実行したところ,オブジェクトの読み込み途中で「.exeは動作を停止しました」とエラーが発生し,プログラムが終了してしまいます。 3個のオブジェクトまでなら,プログラムは動作するのですが,オブジェクト読み込みの限界容量があるのでしょうか? またその場合,オブジェクトを読み込むためには容量を減らすしか方法はないのでしょうか? よろしくお願いします。
メンテ

Page: 1 |

Re: オブジェクト読み込みの限界容量 ( No.1 )
名前:管理人 日時:2016/10/29 02:30

エラーが発生する原因は恐らく使用できるメモリが限界に達しているのだと思います 32bitアプリの場合、ひとつのソフトが使用できるメモリの容量は 1GB未満なので、3Dモデルファイルの 内容によっては比較的すぐにメモリ容量の限界に達してしまいます( DXライブラリの3Dモデル読み込み処理が 非効率なので、20MB の mqoファイルでもファイルサイズの何倍ものメモリ容量を使用してしまいます… ) mqoファイルの容量を減らすことも方法のひとつですが、64bitアプリとしてコンパイルする方法もあります 32bitアプリでは、例えば仮にPCに 8GB のメモリを搭載していたとしても一つのソフトが使用できる メモリ容量は 1GB 未満ですが、64bitアプリでは 1GB 以上のメモリを使用することができ、 メモリ不足によるエラーが発生しにくくなります 64bitアプリとして起動するにはお使いの開発環境が Visual Studio である必要がありますが、 もし Visual Studio でしたら以下の手順で 64bit版としてソフトを起動できますので よろしければ試してみてください m(_ _)m <VisualStudio で 64bit版としてビルドする方法>   プロジェクトを開いた状態で VisualStudioのメニューから    「ビルド」→「構成マネージャー」を選択して構成マネージャーを表示して、    『アクティブソリューションプラットフォーム』で「新規作成」を選び、    『新しいプラットフォームを入力または選択してください』の箇所を「x64」にしてOKを押すと、    64bit版プロジェクトが作成されます   その状態でビルドすると 64bit版の実行ファイルが作成されます
メンテ
Re: オブジェクト読み込みの限界容量 ( No.2 )
名前:ごんた 日時:2016/10/31 10:30

ご回答ありがとうございます。 Windows8.1Pro/64bit/メモリ8GBで、教えていただいた方法を試したところ、 プログラムの if( DxLib_Init() == -1 ) return -1; で停止し 「ハンドルされない例外が 0x00007FF7FA38A420 (DxlNetworkBioSig.exe) で発生しました: 0xC0000005: 場所 0x0000000045C81C50 の読み取り中にアクセス違反が発生しました。」 と表示されます。 設定を変更したら直るものなのか、または、このパソコンでは不可能なのか教えていただきたいです。
メンテ
Re: オブジェクト読み込みの限界容量 ( No.3 )
名前:管理人 日時:2016/11/02 17:39

DXライブラリのプログラムを実行すると、プログラムを実行したフォルダに Log.txt という ファイルが作成されるのですが、よろしければ Log.txt の内容を掲示板にコピー&貼り付けして いただけないでしょうか? エラーが発生してしまう原因が分かるかもしれませんので… m(_ _;m
メンテ
Re: オブジェクト読み込みの限界容量 ( No.4 )
名前:ごんた 日時:2016/11/07 16:07

返信遅れまして、申し訳ございません。 以下が、Log.txtです。宜しくお願いいたします。 2:システムの情報を出力します 4: DXライブラリ Ver3.08a 6: 論理プロセッサの数 : 8 7: OS Windows ( Build 9200 ) 11: CPUID命令は使えません 13:COMの初期化... 成功しました 17:メモリ総量:8146.75MB 空きメモリ領域:4473.91MB 19:タイマーの精度を検査します 20:精度結果 更新回数 マルチメディアタイマー:0 パフォーマンスカウンター:60 21: パフォーマンスカウンターを使用します タイマー精度 : 3507.515000 KHz 22: ソフトの二重起動検査... 二重起動はされていませんでした 26:ウインドウクラスを登録します... 登録に成功しました 27:ウインドウモード起動用のウインドウを作成します 28:ウインドウの作成に成功しました 32:IMEを無効にしました 34:ウインドウスタイルをウインドウモード用に変更します... 完了 36:DirectInput関係初期化処理 36: DirectInput7 の取得中... 成功 83: 引き続き初期化処理... 初期化成功 86: ジョイパッドの初期化... 91: ジョイパッドの初期化は正常に終了しました 92: マウスデバイスの初期化... 初期化成功 94: キーボードデバイスの初期化... 初期化成功 96:DirectInput 関連の初期化は正常に終了しました 109:DirectSound の初期化を行います 110:DirectSound インターフェースの取得を行います.... 成功 130:引き続きインターフェースの初期化処理... 成功 212: DirectSound デバイスを列挙します 214: モジュール名: ドライバ記述:プライマリ サウンド ドライバー 215: モジュール名:{0.0.0.00000000}.{001fa5eb-320d-4787-994c-362942f7f307} ドライバ記述:スピーカー (Realtek High Definition Audio) 216: モジュール名:{0.0.0.00000000}.{245bd0d6-eae6-4125-9ce2-03a9e3b8ae87} ドライバ記述:Realtek Digital Output (Realtek High Definition Audio) 217: 最大サンプリングレート:200.00KHz 最小サンプリングレート:0.10KHz 217: 総サウンドメモリ領域:0.00KB 空きサウンドメモリ領域:0.00KB 218: 利用可能サンプリング精度 219: プライマリ 16bit = OK 8bit = OK 220: セカンダリ 16bit = OK 8bit = OK 221: 利用可能チャンネル 222: プライマリ MONO = OK STEREO = OK 222: セカンダリ MONO = OK STEREO = OK 224:DirectSound の初期化は正常に終了しました 243:DirectDraw オブジェクトの取得を行います.... 成功 260:引き続き初期化処理... 初期化に成功しました 407:IDirect3D9Ex オブジェクトを取得します.... 成功 412:IDirect3DDevice9Ex オブジェクトを取得します.... ハードウエア頂点演算を使用します 741:成功 742:Driver:nvd3dumx.dll Description:NVIDIA GeForce GTX 760 743:画面のフォーマットは D3DFMT_X8R8G8B8 です 744:Zバッファのフォーマットは D3DFMT_D16 です 745:16bit カラーフォーマットは D3DFMT_R5G6B5 です 745:32bit カラーフォーマットは D3DFMT_X8R8G8B8 です 746:アルファ付き 16bit カラーフォーマットは D3DFMT_A4R4G4B4 です 747:アルファ付き 32bit カラーフォーマットは D3DFMT_A8R8G8B8 です 747:アルファテスト用 16bit カラーフォーマットは D3DFMT_A1R5G5B5 です 748:アルファテスト用 32bit カラーフォーマットは D3DFMT_A8R8G8B8 です 749:DXT1テクスチャフォーマットはD3DFMT_DXT1 です 749:DXT2テクスチャフォーマットは D_D3DFMT_DXT2 です 750:DXT3テクスチャフォーマットはD3DFMT_DXT3 です 751:DXT4テクスチャフォーマットはD3DFMT_DXT4 です 751:DXT5テクスチャフォーマットはD3DFMT_DXT5 です 752:描画用 16bit カラーフォーマットは D3DFMT_R5G5B5 です 752:描画用 32bit カラーフォーマットは D3DFMT_X8R8G8B8 です 753:描画用アルファ付き 32bit カラーフォーマットは D3DFMT_A8R8G8B8 です 754:描画用ABGR整数16ビット型カラーフォーマットは D3DFMT_A16B16G16R16 です 754:描画用ABGR浮動小数点16ビット型カラーフォーマットは D3DFMT_A16B16G16R16F です 755:描画用ABGR浮動小数点32ビット型カラーフォーマットは D3DFMT_A32B32G32R32F です 756:描画用1チャンネル整数8ビット型カラーフォーマットは D3DFMT_L8 です 756:描画用1チャンネル整数16ビット型カラーフォーマットは D3DFMT_L16 です 757:描画用1チャンネル不動少数点16ビット型カラーフォーマットは D3DFMT_R16F です 758:描画用1チャンネル不動少数点32ビット型カラーフォーマットは D3DFMT_R32F です 758:描画用2チャンネル整数8ビット型カラーフォーマットは D3DFMT_A8B8G8R8 です 759:描画用2チャンネル整数16ビット型カラーフォーマットは D3DFMT_G16R16 です 760:描画用2チャンネル不動少数点16ビット型カラーフォーマットは D3DFMT_G16R16F です 760:描画用2チャンネル不動少数点32ビット型カラーフォーマットは D3DFMT_G32R32F です 761:同時にレンダリングできるバッファの数:4 762:最大テクスチャサイズ 幅:16384 高さ:16384 762:テクスチャステージテンポラリレジスタ:使用可 763:減算合成のハードウェア対応:ネイティブ 764:ハードウェア頂点シェーダーバージョンコード:300 764:エミュレーション頂点シェーダーバージョンコード:エミュレーション無し 765:ピクセルシェーダーバージョンコード:300 799:バックバッファロック転送の時間:124nsec 一時的な描画可能バッファを使用した転送の時間:1003nsec 800:バックバッファロックを使用します 801:Zバッファを作成します.... 成功 818:プログラマブルシェーダーを使用します 888:フォントの初期化を行います 891:フォントの初期化は正常に終了しました
メンテ
Re: オブジェクト読み込みの限界容量 ( No.5 )
名前:管理人 日時:2016/11/07 22:41

ログには特にエラーの原因が分かりそうな出力はされていないみたいです… ただ、ログを拝見する限りではお使いのDXライブラリのバージョンが 3.08a( 2012年5月27日公開 )と、 かなり古い( 4年前 )のバージョンのようです 最新バージョンでしたら正常に動作するかもしれませんので、よろしければこちらの 暫定の最新バージョンをお試しになってみてください m(_ _)m https://dxlib.xsrv.jp/temp/DxLibVCTest.exe // VisualC++ 用 https://dxlib.xsrv.jp/temp/DxLibBCCTest.exe // BorlandC++ 用 https://dxlib.xsrv.jp/temp/DxLibGCC_DevCppTest.exe // Dev-C++ 用 https://dxlib.xsrv.jp/temp/DxLibGCC_MinGWTest.exe // MinGW 用 https://dxlib.xsrv.jp/temp/DxLibDotNet.zip // .NET用 https://dxlib.xsrv.jp/temp/DxLibMakeTest.exe // ソース (中身を既存のライブラリのファイルに上書きして、BCCをお使いの 場合は『再構築』を、VCをお使いの場合は『リビルド』を、 Dev-C++をお使いの方は「Rebuild All(Ctrl+F11)」をして下さい)
メンテ
Re: オブジェクト読み込みの限界容量 ( No.6 )
名前:ごんた(解決) 日時:2016/11/09 16:54

新しいバージョンで試してみたのですが、やはり同じエラーでダメみたいでした。 質問をさせていただいてる間に、オブジェクトをいくつかに分割する作業もしてまして、それで実行してみたところ、動作しました。 複数回の御回答ありがとうございました<(_ _)>
メンテ

Page: 1 |

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

   クッキー保存