【RPGツクールVxAce】一時的に配置したイベントが消える原因

どうもこんにちは
久しぶりの投稿です。

RPGツクールの作業を最近行っているのですが、
作業中に気になったことがあったので、それを起こそうと思います。

事象

ある日の作業、画面に一時的にイベントを配置して、以下の手順で
ゲームを再起動したら配置したイベントが画面から消えました。

本当は、子供のドットキャラ画像が画面中央に
配置されている想定なのですが、
何故か、初期位置の左上に配置されたままでした。

前提

環境

  1. OS:Windows7
  2. CPU:Intel iCore5
  3. メモリ:8GB
  4. ソフト:RPGツクールVxAce

配置したイベント

(再現させるために、サンプルマップを作成しました。)
【マップ1】

【マップ1に指定しているイベント1】
(マップ2に移動するだけのイベント)

【マップ2】

【マップ2に指定しているイベント】
 【イベント1の1ページ目】
 (イベント2を画面の真ん中に配置し、スイッチを使って2ページ目のイベントで上書きする処理)

 【イベント1の2ページ目】
 (何もしないイベント(1ページ目のイベントを実行させないため、2ページ目で上書き))

 【イベント2の1ページ目】
 (話しかけることのできる村人)
 

 【イベント3の1ページ目】
 (話しかけることのできる村人)

 【イベント4の1ページ目】
 (マップ1に戻るためだけのイベント。再現性を繰り返し確認するために設置)
 (内容は、場所移動だけなので割愛)

上記の前提で、プレイヤーの初期位置をマップ1にします。

再現手順

1.「XXXX.rvproj2」を起動する。(ゲームのプロジェクトによって名前が違うので注意)

2.対象のイベント(イベント②)を配置しているマップ2(MapB)に移動する。
(赤丸で囲っているところに移動して、マップ2へ移動)

3.マップ2で自動実行イベント(①)が動いて、イベント②が配置されることを確認する

4.ゲームをセーブ

5.ゲームを閉じる(×ボタンで閉じる)

6.ctrl+s(または上書きボタン)でRPGツクールのプロジェクトを上書き保存する

7.ゲームを実行する(F12のテストプレイ)

想定

想定としては、以下の画像の通りで、
子供がマップ内に残っている想定でした。

実際の結果

配置されていた子供が何故か消えています……

事象が発生しないときもある

色々調査して言ったのですが、以下の操作の場合は
上記の消えてしまう事象が発生しませんでした。

事象が発生しないパターン1

 1.「XXXX.exe」で起動する。
(実行ファイル。ゲームのプロジェクトによって名前が違うので注意)
 2.「再現手順」の「2.」~「5.」と同じ操作を行う。
 3.「XXXX.exe」で起動する。
(実行ファイル。ゲームのプロジェクトによって名前が違うので注意)

事象が発生しないパターン2

 1.「再現手順」の「1.」~「5.」と同じ操作を行う。
 2.「再現手順」の「7.」と同じ操作を行う。
 ※「再現手順」の6を抜かしたパターン
 

事象の原因の推測

原因としては「再現手順」の
「6.ctrl+s(または上書きボタン)でRPGツクールのプロジェクトを上書き保存する」
が大きく関係しているのかなと推測しました。

おそらく、
「プロジェクトを保存したときに、
 内部で保持しているキャッシュと呼ばれる一時ファイルを削除しており、
 自動実行などで、一時的に配置されたイベントのキャッシュ情報も削除している」
だと推測しました。
(ポイントは、
「自動実行で配置して、その後、その自動実行のイベントが二度と実行されない」
というところです。)

ただ、これは仕様orバグというところで不明だったので
RPGツクールVxAceの開発元(販売元?)のエンターブレインさんに
問い合わせてみました。

エンターブレイン(Enterbrain)さんに問い合わせてみました

1日で回答が返ってきて、驚愕しました。
仕事早いね!

お問い合わせいただいておりました件について、ご連絡差し上げます。

「マップ上に設定されていたはずのイベントが消えている」との内容につきまして、
こちらは仕様となっております。

キャッシュデータの持ち方に依存しているため、
症状が発生している可能性がございます。

挙動の違いを考慮のうえ、公開時のexeにあわせた動作で引き続きご利用くださいますようお願い申し上げます。

何卒、ご理解・ご了承くださいますようお願い申し上げます。

つまりは仕様だそうです。
やはりキャッシュ関連が絡んでいるみたいですが、
おそらく内部がブラックボックスなこともあって、
細部の調査が難しいところなのかなと思いました。
(機密情報も絡む可能性もあるかもですね・・・)

エンターブレインさんも
そこの挙動を理解した上で、実際に実行した場合と
同じように作ってくれということでした。

適当に流さず回答していただいたエンターブレインさん
ありがとうございます!

結論

つまりは、仕様。
プロジェクトを保存したときに、内部で保存している
キャッシュが全て削除されることを理解した上で作りましょう。

何がキャッシュで残されているかは触ってみるしかないということですね……

ちなみに、イベントだけじゃなくて、
マップの一部を、別のマップに置き換えるようなスクリプトについても
同じくキャッシュで保存されている模様です。

まとめ

プログラムを組まないでも、
RPGが作れるという便利なツールではありますが、
しっかり理解するところは理解していけば
使いこなすことができ、すごいRPGが作れるんじゃないかなと思いました。
(小学生並の感想)

最後に

2018年10月現在
最新版のRPGツクールは
「RPGツクールMV」です。
JavaScriptで製造可能なこともあり、
機会があれば是非触ってみたいものではあります。

【PC版】

【Nintendo Switch版】

【PS4版】

今回は以上です!

スポンサーリンク