HSPポータル
サイトマップ お問い合わせ


HSPTV!掲示板


未解決 解決 停止 削除要請

2011
0815
ちこ。エラーメッセージが分かりませぬ。10解決


ちこ。

リンク

2011/8/15(Mon) 00:05:44|NO.40574

(さきほど誤ってサブ掲示板に出してしまいました、ごめんなさい)
投稿2回目になります、すいません、3Dゲームを作成しているのですが、なぜか突然、「Invalid ObjID#-1」と書かれたダイアログボックスが出現し、
その次に、「問題が発生したため、hsp3hg.exe を終了します。 ご不便をおかけして申し訳ありません。」などというダイアログボックスが登場し、ゲームが強制終了してしまいます。
この「Invalid ObjID#-1」というエラーの意味、もしどなたか分かる方いらっしゃればご教授お願います。

使用しているのはつい最近公開されたHSP3.3RC1です。でも、それまで使用していたHSP3.2でも、なぜか突然強制終了してしまうことが頻繁にありました。(でも今までは「Invalid〜」のダイアログボックスは登場せず、いきなり「問題が〜」というダイアログボックスでした。)
ソースを提示できればと思うのですが、ちょっと膨大で、ソースのどこが問題なのかさっぱり分かりません。せめてエラーの意味だけでも分かれば・・・と思い投稿させていただきました。



この記事に返信する


check

リンク

2011/8/15(Mon) 00:15:55|NO.40576

Invalid ObjID#-1は何らかの理由でregobjなどのオブジェクトIDを返す、
もしくは引数に取る命令が失敗したときにでるダイアログ。だと思う。

スクリプトエディタからデバッグダイアログを表示のフラグをオンにして
逐一実行させて確かめるか、簡易ログでも出力させたらいい。

しかしひどいな

#include "hgimg3.as" hgini regobj a
だけで強制終了しやがる。
せめてHSPのエラーダイアログくらい出してやれよ…。



ちこ。

リンク

2011/8/15(Mon) 00:19:09|NO.40577

おお・・・
早速の回答、ありがとうございます。
デバックダイアログも簡易ログも使ったことがありません。
でも回答ありがとうございます。
今からデバックダイアログの使い方を勉強します。サンクスです。
でも、当面は未解決・・・。すいません。



check

リンク

2011/8/15(Mon) 00:19:14|NO.40578

ああ、そうだ。
delobj命令などに与えるオブジェクトIDに-1などの負の値が入っていると
ダイアログすら表示されずに強制終了するぞ。


#include "hgimg3.as" hgini a = -1 delobj a

突然強制終了の原因はこれらにあるかもな。



ちこ。

リンク

2011/8/15(Mon) 00:25:42|NO.40579

ほんとだ・・・
紹介していただいた、そんなに小さなプログラムでも
Invalid何とかの同じエラーや、突然終了などになるのですね。
これはちょっといろいろ勉強せねば・・・サンクスです。



晩御飯

リンク

2011/8/15(Mon) 00:37:47|NO.40580

コンパイルエラーはともかくランタイムエラーが死ぬほど分かりづらいのは
仕方ないことなんかなあ



backdrop

リンク

2011/8/15(Mon) 02:16:02|NO.40581

「死ぬほど分かりづらい」のはHGIMG3の仕様ですね。
おそらくDirectXがそのまんま返すエラーかと。

それを認識して、HSPのエラーとしてかえってきたらいいのに。



黒豹

リンク

2011/8/15(Mon) 10:25:15|NO.40586

いつもこの掲示板で勉強させていただいております。

もしや生成しているオブジェクト数が多すぎるとか。
ゲームループ内でチェックしてみてはどうでしょうか。

生成できる最大数は例えば
hgsetreq SYSREQ_MAXOBJ, 1024
で1024個に変更できます。hginiの前に書くとよいようです。

違っていたら済みません。



backdrop

リンク

2011/8/15(Mon) 10:42:18|NO.40587

たぶんそういう話でもない
http://hsp.tv/play/pforum.php?mode=all&num=40475

↑「最初からつまづいてる」んだったら、そんなにモデル登録もしてないと思われるが、
多分RockDeBone2とHGIMG3の互換性が全くないもんだから
個人的にRockDeBone2が変な風にxファイルを出力しているとしか思えない。
つまりRockDeBone2が出力するxファイルはそのままHGIMG3には使えない
いつE3D専用になったのだ。
Vistaや7になるとそもそもRockDeBone2すら動かない。

ま、xファイルはもともとC向けのモデルデータでメモ帳とかで改造できるし、その構造を理解していないとxファイルは作れない
逆に構造を理解していたらモデリングツールなぞ使わなくてもメモ帳で作れてしまう(でも死ぬよ)



ちこ。

リンク

2011/8/15(Mon) 12:57:44|NO.40590

黒豹さん、もしかしたらビンゴかもしれません。
なぜかオブジェクトが控え目だとそんなこと出なかったりするんです。
Backdropさま、実は自分はRockDeBone2も盛り込もうと思ったんですけれど、
はやばやと挫折しまして。
OSもVistaにも7にも手を出さずXPで粘っています。
ちょっと
hgsetreq SYSREQ_MAXOBJ, 1024
やってみます。
いくつにしようかな。またご報告いたします。



ちこ。

リンク

2011/8/15(Mon) 13:20:24|NO.40592

おお、ビンゴでした。
hgsetreq SYSREQ_MAXOBJ, 1024
にしたらエラーが出なくなり、1024の代わりに512にしたら途中でエラーになりました。
なんともまあ。。。
今まで自分はきっと自分のパソコンの処理能力に原因があるのかと思って、
テクスチャを16色から4色にしたりいろいろちまちまやってたのですが、関係なかったみたいです。
そもそもhgsetreq SYSREQ_MAXOBJ というコマンドの存在すら知りませんでした。
本は何冊か読んでいるのですが書いてなかったし・・・。

いえ、本当にどうもありがとうございます皆さん。
ちなみに、作っているのは下のやつです(ニコ動です)。
もし完成したらまたご連絡いたします。
http://www.nicovideo.jp/watch/sm13074124
サンクス!



ONION software Copyright 1997-2023(c) All rights reserved.