必ずクラッシュするバグに遭遇しました

使用バージョン:V1.3.5

あるオブジェクトのVS内で接続線のコピーを作成し、別の類似したオブジェクトに貼り付けました。その後、奇妙な問題が発生しました。この貼り付けた接続線に触れると、AGMが必ず即座にクラッシュします。マウスの左クリックでも右クリックでも、触れるたびに必ずクラッシュします。

マウスで範囲選択してもクラッシュします。図に示すように、私は何度もクラッシュしました……

多数のエラーログを調査した結果、マウスで範囲選択する際に、他の接続線やアクションに触れながら同時にこの問題のある接続線に触れるとクラッシュしないことがわかりました。その状態でこの接続線を削除し、他の場所から同じ条件の接続線をコピーして貼り付け直したところ、問題は解決しました。

しかし、このバグは非常に恐ろしく、長年の心血を注いだプロジェクトがいつの日か破損するのではないかと心配なので、報告します。

エラーログによると、例外コードは 0xc0000005`(メモリアクセス違反)でした。

プロジェクトをメールで送信していただき、そのメールに再現手順を含めていただければ、それが最も良い助けになると思います。さらに絞り込むことができるはずです。

pgmmv-support@gotchagotcha.jp

申し訳ありませんが、復元できませんでした。元々問題があったオブジェクトの接続条件は削除済みです。
問題があったリンクの条件は、「XXスイッチがオンになっている場合」でした。
しかし、削除後に同じ条件の線をコピーしたところ、問題なく動作しました。具体的な原因や、なぜこの事象が発生したのかは分かりません。

なるほど、わかりました。絶対的な失敗をそれほど心配する必要はありません。次発生した際にはプロジェクトを送ってください。自分で直せない場合は、.vsファイル内のリンクを削除することもできます。選択肢はありますよ!

ありがとうございます。次回は再現用としてコピーを送信します。

この問題を引き起こした操作を振り返ってみました。少し微妙なケースです。

私はシーンにtscnオブジェクトを配置し、それを3つコピーしました(同じtscnですが)。そして、それぞれに3つの異なるビジュアルスクリプト(VS)を設定しました。ここでいうVSの動作は基本的に同じで、最後に生成される変数の値だけが異なります。

そこで、私はVS_1をコピーしてVS_2とVS_3を作成しました。その後、VS_1にSE(効果音)の再生アクションを追加したため、音声がなかったVS_2とVS_3を完全に削除し、最終版のVS_1を再度2つコピーし直しました。

しかし、奇妙なことが起きました。コピーされたVS_2とVS_3には、音声を再生するアクションの条件が追加されていませんでした。代わりに、以前に削除した旧版のパラメータが基準として残されていたのです。

その原因は、コピー後に名前が同じであるため、旧アクションのパスが保持されたからではないでしょうか?

そこで、更新されていないアクションの接続条件をすべて削除し、VS_1からマウスでアクションを範囲選択してコピーし、VS_2とVS_3に貼り付けました。

その結果、特定の接続線を貼り付けた瞬間に必ずクラッシュするBUGが発生しました。 全体の流れは上記の通りで、内部で何らかの謎のエラーが発生していた可能性があります。

「いいね!」 1