ページ 11

Dxlibで3Dモデルを読み込むと例外が発生してソフトが強制終了する

Posted: 2016年4月06日(水) 21:35
by プラム
どうも。DxLibを用いて東方風の弾幕STGを制作しているノウルです。

3D背景を実装しようかと思い、3Dモデルを読み込んで表示させようとしてみました、なんですが。
なぜかソフトが突然強制終了し、デバッグで調べてみたところ。
VC++2010さんによると「例外が発生したためプログラムを強制終了しました」とのことでした。
しかし、例外が発生した部分のソースコードが見つからず、DxLib側の問題だと思うんですが。
ロード関数の中身に一つ一つブレークポイントを設置し、どこで例外が発生しているのかを調べてみました。そうしたら、3つほど3Dモデルをロードしているのですが、例外を起こすモデルは一つだけでした。
ちなみに3Dモデルは自作です。モデリングの仕方に問題があったんでしょうか。

コード↓

コード:


int loadnum; //ロードしているデータの番号
int loadwait; //1フレームですべてのデータを読み込むと重くなるのでwaitをかける為の一時記憶カウンタ


	loadwait++;

		if(loadnum==0&&loadwait==15){  //15フレーム目になったら1つ目の画像を読み込む
			haikei[1]=LoadGraph( "dat/img/背景yea/0_1.png" ) ;
			loadwait=0;
			loadnum++;
		}

		if(loadnum==1&&loadwait==15){//15フレーム目になったら2つ目の画像を読み込む
			haikei[0]=LoadGraph( "dat/img/背景yea/0_0.png" ) ;
			loadwait=0;
			loadnum++;
		}

		if(loadnum==2&&loadwait==15){//15フレーム目になったら3つ目の3Dモデルを読み込む
			haikei[2]=MV1LoadModel( "dat/3d/haikei.mqo" ) ;
			loadwait=0;
			loadnum++;
		
		}
	
		if(loadnum==3&&loadwait==15){//15フレーム目になったら4つ目の画像を読み込む
			haikei[3]=LoadGraph( "dat/img/背景yea/0_2.png" ) ;
			loadwait=0;
			loadnum++;
		
		}
		
		if(loadnum==4&&loadwait==15){//15フレーム目になったら5つ目の3Dモデルを読み込む

			haikei[4]=MV1LoadModel( "dat/3d/haikei_2.mqo" ) ;  //ここで例外発生
			loadwait=0;
			loadnum++;
		
		}

		if(loadnum==5&&loadwait==15){//15フレーム目になったらロードを終了
			loadwait=0;
			loadnum=0;
			counthh++;
		}

追伸:一部尾のコードに間違いがあったので修正しました。すみません。

読み込みができない3Dモデルデータ↓
haikei_2.zip
読み込みができない3Dモデル
(34.95 KiB) ダウンロード数: 148 回
どなたかアドバイスを頂けると嬉しいです。

Re: Dxlibで3Dモデルを読み込むと例外が発生してソフトが強制終了する

Posted: 2016年4月06日(水) 21:55
by みけCAT
ノウル さんが書きました:

コード:

		if(loadnum==4&&loadwait==15){//15フレーム目になったら5つ目の3Dモデルを読み込む
このコードはコンパイルが通らないでしょう。

Re: Dxlibで3Dモデルを読み込むと例外が発生してソフトが強制終了する

Posted: 2016年4月06日(水) 22:19
by Rittai_3D
モデルをDxLibModelViewerで読み込んでみたところ、(32bit/64bit)ともに「動作を停止しました」ダイアログが出ました。
おそらくモデル側の問題かと思われます。

また、記載してあるコードも変数が未初期化のままインクリメントされていたり、ソースにも問題があると思います。

Re: Dxlibで3Dモデルを読み込むと例外が発生してソフトが強制終了する

Posted: 2016年4月07日(木) 12:18
by プラム
みけCAT さんが書きました:
ノウル さんが書きました:

コード:

		if(loadnum==4&&loadwait==15){//15フレーム目になったら5つ目の3Dモデルを読み込む
このコードはコンパイルが通らないでしょう。
Rittai_3D さんが書きました:
また、記載してあるコードも変数が未初期化のままインクリメントされていたり、ソースにも問題があると思います。
ソースコードはそのままコピペではかなりわかりにくいため、そのままの形で、少し改良して貼り付けていたので間違いが生じてしまいました、すみません。。
Rittai_3D さんが書きました:モデルをDxLibModelViewerで読み込んでみたところ、(32bit/64bit)ともに「動作を停止しました」ダイアログが出ました。
おそらくモデル側の問題かと思われます。
モデリングソフト(メタセコイヤ4)では正常に読み込めるのですが、どうしてアプリケーション側だと読み込めないのでしょうか・・・(ほかのモデルも同じバージョンの同じモデリングソフトでモデリングしましたが、問題なく読み込めます)

Re: Dxlibで3Dモデルを読み込むと例外が発生してソフトが強制終了する

Posted: 2016年4月10日(日) 23:25
by ru-pu
DxLibModelViewerの問題である可能性が高いので本家に問い合わせてみては如何でしょうか?