フリーゲーム制作ツクールのウディタについて質問です。
つい最近にウディタを始めたのですが、マップ作りで困ってます。
ダンジョンが作り終わり、テストプレイをしようとすると、必ず「1フレームあたりの処理が500000個を超えました!イベント‐1(コモン79)6行」とでます。
これは、どうしたらいいですか?コモンとはなんですか?
どなたか回答お願いします。
フリーゲーム制作ツクールのウディタについて質問です。
つい最近にウディタを始めたのですが、マップ作りで困ってます。
ダンジョンが作り終わり、テストプレイをしようとすると、必ず「1フレームあたりの処理が500000個を超えました!イベント‐1(コモン79)6行」とでます。
これは、どうしたらいいですか?コモンとはなんですか?
どなたか回答お願いします。
▼エラーの説明
このエラーは、1回の処理(ウェイト「1」の時間(60分の1秒の時間))でイベントコマンドを50万個以上処理しようとすると発生するエラーです。
イベントコマンドとは、文章を表示したり、変数を操作したりする時に設定するもので、
■文章:こんにちわ。
■変数操作: V0[会話回数] += 1 + 0
の場合は、2個のイベントコマンドが設定されている状態になります。
通常は一気に50万個以上のイベントコマンドを処理する事はなく、エラーが発生した制作者としても「そんな50万個もイベントコマンドを設定してないけど」と言うかもしれません。
しかしループ処理の設定など、イベントの設定状況によっては、意外と簡単に50万個を超える事があります。
例えば、
■ループ開始
|■変数操作: このEvのセルフ変数0 += 1 + 0
|■
◇ループここまで◇◇
と言った設定の場合、イベントコマンドの数としては2個だけですが、このループ処理には「終わり(ループ中断)」が無いので、永遠に「変数操作」を実行し続けます。
50万個のカウントは「ウェイトがある所まで」なので、このウェイトの無い設定では、実行してすぐに50万個以上の処理(エラー発生)になってしまいます。
同様に「自動実行」のイベントも「終わり」が無く、さらに途中にウェイトの設定なども無いなど、条件によってはこのエラーが発生します。
このエラーが発生した時には、「ループ処理」とループ処理と同じような使い方ができる「ラベル処理」、それに「自動実行」で動かしているイベントなどを再確認した方が良いでしょう。
▼コモン(コモンイベント)の説明
コモンイベントとは、ゲーム全体で実行する事ができるイベント処理を設定する所の名称です。
例えばゲーム中にどのマップに居ても、取り消しキー(Xキー)を押せばメニュー画面が表示されますが、これもコモンイベントにメニュー画面が表示されるイベント処理が設定されているので、どのマップに居ても同じようにメニュー画面が表示されます。
他にも戦闘の処理(画面表示やダメージ計算)など、RPGに必要な設定がコモンイベントにあります。
コモンイベントの画面は、ウディタのマップ制作画面の上部アイコン(右から4番目)か、上部メニューの「表示→コモンイベント」を選択すると開きます。
初期設定されているコモンイベントは、基本的にいじらない方が良いです。
▼エラーの原因元
問題が起きているウディタの作品データが手元に無い回答者としては、このエラーの原因元を特定するのはかなり難しいです。
エラーが発生しているコモンイベント79「X[移]パーティー情報計算」は、メニュー画面を表示する時などに必要に応じて自動的に呼び出して実行しているものなので、このコモン79の問題と言うよりは、コモン79を呼び出している別のコモンイベントに何らかの問題があり、その問題のコモンイベントからコモン79が呼び出した所で、たまたま50万個のイベントコマンドの処理数に達してエラーが発生した・・・・と言った感じになると思います。
そのため、エラーで表示されているコモン79を調べても、原因の特定は出来ないでしょう。
エラー表示に「イベント-1」があるようなので、コモン79を呼び出している元のイベントは、マップイベントではなく、コモンイベントである事が分かります。
(マップイベントからコモンイベントを呼び出してエラーを発生させている場合は「イベント0」など、0以上の値になる)
コモンイベントに何らかの改造を加えた場合は、その改造が原因になりますが、特に改造をしていない場合は、データベース(システム、ユーザー、可変)の設定にエラーを起こす原因がある可能性があります。
例えば必要な設定なのに「これはいらない」と自己判断して、データベースの項目数を減らしたなど。
どうしても原因が分からない場合は、データベースを初期化(ウディタをダウンロードした時の最初の状態に)するなどの作業が必要です。
▼データベースやコモンイベントの初期化
作業を行う前に制作中の作品のフォルダーをコピー&貼り付けして、バックアップを残して下さい。
初期化にはダウンロードした新規のウディタが必要です。
公式サイトより新たにウディタをダウンロードして圧縮を解凍したのち、フォルダー「Data」を開き、さらにフォルダー「BasicData」を開き、初期化したい内容に合わせて以下のファイルを選択し、ファイルのコピーを実行して下さい。
◆システムDBのファイル
「SysDatabase.dat」
「SysDatabase.project」
◆ユーザーDBのファイル
「DataBase.dat」
「DataBase.project」
◆可変DBのファイル
「CDataBase.dat」
「CDataBase.project」
◆コモンイベントのファイル
「CommonEvent.dat」
そして制作中の作品のフォルダーを開き、「Data」→「BasicData」と開き、貼り付けを実行して下さい。
貼り付け時に表示される確認画面で「ファイルを置き換える」を選択すれば、初期化完了です。
一部の可変DBだけを初期化したい場合は、ダウンロードしたウディタの可変DBの画面を開き、初期化したい可変DBのタイプを画面左上で選択し、画面左下の「タイプ&全データ」をクリック。
デスクトップなどにファイルを保存し、制作しているウディタを開き、可変DBの画面を開き、初期化したい可変DBのタイプを画面左上で選択した上で画面左下の「読み込み」をクリック。
そして先ほどデスクトップに保存したファイルを選択して開けば、その部分だけが初期化されます。
▼補足
ゲーム制作では、こまめに動作テストを行った方が良いです。
大量に設定してから動作テストを行ってバグが発生すると、バグの原因元を特定するのに時間がかかるからです。
あとバックアップをこまめに取った方が良いです。
もしもおかしな事になった時に、おかしな事になる前に戻せるからです。
だいたい1日の作業終了時にバックアップを取っておくと良いでしょう。
パソコン自体が壊れる事を想定すると、バックアップはUSBメモリなどの外部記憶メディアが良いです。
ありがとうございました!