【解決済み】プレイ時にある操作でフリーズすることについて

アバター
にいやん
記事: 218
登録日時: 2016年7月02日(土) 00:38
お住まい: 地獄4丁目西のゴミ置き場
連絡を取る:

【解決済み】プレイ時にある操作でフリーズすることについて

投稿記事by にいやん » 2018年1月06日(土) 02:11

ゲームをプレイ時、メニュー画面からアイテムのカテゴリを選択した後にフレームずらしのような感じでキャンセルを押してメニュー画面に戻るとツクールMVがフリーズしてしまう時があるのですが皆さんの環境でも同じように起こったりはしないのでしょうか?
私はMVが発売してからすぐに購入してこのバグ?を見つけたのですが(2015年12月くらい)、実際にツクール公式に発生状況をメールで送ってその結果、検証を行いますとメールが返って来たのですがそれから今に至るまで改善された形跡は無いです。
公式に聞けば良いかもしれないですが、既に聞いて対策が施されていないところを考えるともう一度聞く気になれないのが正直な気持ちです。それに私のパソコンの相性もあるので他の方ではフリーズしないことも考えられます。なのでツクールを始めたばかりの方でも良いので現状での報告をお願いしたいです。

■バージョン
ツクールMV1.5.1 コアスクリプト1.5.1

■発生状況
メニュー画面からカテゴリ欄のアイテムを決定キーで選んだ後に1フレームずらす感じでキャンセルを押す動作を繰り返す。
メニュー画面からカテゴリ欄のスキルを決定キーで選んだ後に1フレームずらす感じでキャンセルを押す動作を繰り返す。

ニコニコのアツマールで他製作者様のゲームでも確認してみましたが同じようにフリーズするので出来ればたくさんの方にご報告頂ければと思っています。私の環境でだけ発生するようでしたら安心出来ますので。

追記:YOUTUBEにフリーズの発生した動画があります。→https://www.youtube.com/watch?v=ni2SWrJcIZs
最後に編集したユーザー にいやん on 2019年5月12日(日) 23:22 [ 編集 2 回目 ]

アバター
しぐれん
記事: 972
登録日時: 2017年3月28日(火) 22:22
連絡を取る:

Re: プレイ時にある操作でフリーズすることについて

投稿記事by しぐれん » 2018年1月06日(土) 02:44

私の手元では確認できませんでした。

フリーズが発生した場合にF8でコンソールは開けますか?
現在、プラグイン依頼はお休み中です。
アバター
にいやん
記事: 218
登録日時: 2016年7月02日(土) 00:38
お住まい: 地獄4丁目西のゴミ置き場
連絡を取る:

Re: プレイ時にある操作でフリーズすることについて

投稿記事by にいやん » 2018年1月06日(土) 02:55

しぐれんさん
スタックトレースには何も表示されていないです。
プロジェクトは新規で作ったもので確認しています。
動画を撮れる環境はあるのでそれを見てもらったほうが良いと思うので少しお待ち下さい。
アバター
にいやん
記事: 218
登録日時: 2016年7月02日(土) 00:38
お住まい: 地獄4丁目西のゴミ置き場
連絡を取る:

Re: プレイ時にある操作でフリーズすることについて

投稿記事by にいやん » 2018年1月06日(土) 03:26

YOUTUBEに動画を投稿したのでご確認をお願いします。
一番上の追記にリンクを貼っています。
アバター
あかみどり
記事: 57
登録日時: 2017年7月08日(土) 12:07
連絡を取る:

Re: プレイ時にある操作でフリーズすることについて

投稿記事by あかみどり » 2018年1月06日(土) 06:52

おはよ~ございます

メニューからアイテム選択画面へ何回か連続で高速で切り替える事で再現できました
コントローラの決定ボタンとキーボードのキャンセルボタンで押すと簡単に出来ますね~(連打しやすい)
アイテム画面を開きなおすたびにFPSが下がっていってフリーズしました
メニュー開閉でもFPSガクッと落ち続けるけどこっちではフリーズしないのね……
---------------------------------------------
Twitter
https://twitter.com/aoki_akamidori
---------------------------------------------
アバター
ツミオ
記事: 83
登録日時: 2017年4月02日(日) 13:46
連絡を取る:

Re: プレイ時にある操作でフリーズすることについて

投稿記事by ツミオ » 2018年1月06日(土) 10:09

こんにちは。

こちらの環境でも再現しました。
マウス操作・キーボード操作のどちらでも発生するようです。

追記:
少し調査しました。
結論から言うと、何らかのタイミングで以下のウィンドウがdeactivateされているのが原因だと思われます。

・Window_ItemCategory
・Window_SkillType

フリーズ後、僕の制作したデバッグプラグインで上記のコンストラクタ関数から生成されたインスタンスを無理やりactivateさせたところ、フリーズは解除されました。
これらのウィンドウはアイテム画面もしくはスキル画面で使用されています。

また、以下のシーンでのフリーズは確認できませんでした(試行回数が少ないのでフリーズするかも)。
・Scene_ItemBaseを継承した空のシーン
・オプション画面
・セーブ画面

根本的な直し方は不明ですが、とりあえずここまで調査できたので報告しておきます。
最後に編集したユーザー ツミオ on 2018年1月06日(土) 11:01 [ 編集 3 回目 ]
【Twitter】https://twitter.com/TsumioNtGame/
【GitHub】https://github.com/Tsumio/rmmv-plugins

有償の依頼も募集中。
今まで有償で制作したものは実績をご覧ください。
アバター
しぐれん
記事: 972
登録日時: 2017年3月28日(火) 22:22
連絡を取る:

Re: プレイ時にある操作でフリーズすることについて

投稿記事by しぐれん » 2018年1月06日(土) 10:54

再現しつつ原因を特定しました。
_scene._categoryWindow.activeがfalseになっており、何らかの要因でフォーカスを失ってます。
SceneManager._scene._categoryWindow.active=trueとコンソールで入力することによってフリーズから脱出できました。
対処は困難でしょうが、色々さがしてみます。
現在、プラグイン依頼はお休み中です。
アバター
しぐれん
記事: 972
登録日時: 2017年3月28日(火) 22:22
連絡を取る:

Re: プレイ時にある操作でフリーズすることについて

投稿記事by しぐれん » 2018年1月06日(土) 12:24

修正ができました。
ただし、かなり付け焼刃の対処ですので、絶対にバグが起きないという保証はできません。
rpg_scene.jsに以下のような修正をしてください。

コード: 全て選択

Scene_Item.prototype.create = function() {
    Scene_ItemBase.prototype.create.call(this);
    this.createHelpWindow();
    this.createCategoryWindow();
    this.createItemWindow();
    this.createActorWindow();
    this._categoryWindow.activate();
};


これでもバグが起きたら、改めて対応します。
現在、プラグイン依頼はお休み中です。
アバター
ツミオ
記事: 83
登録日時: 2017年4月02日(日) 13:46
連絡を取る:

Re: プレイ時にある操作でフリーズすることについて

投稿記事by ツミオ » 2018年1月06日(土) 13:52

こんにちは。

こちらでも修正を試みました。

フリーズが発生する可能性のあるシーンに対策をほどこしました。
具体的には以下の通りです。
・アイテムシーン
・スキルシーン
・装備シーン
・デバッグシーン

ただ安全面で言えば、しぐれんさんが提示しているコードがよいと思います。
つまり、僕のプラグインは別の不具合を誘発するかもしれません(しないかもしれません)。

それでもよければ、以下のURLからDLしてください。
https://raw.githubusercontent.com/Tsumio/rmmv-plugins/master/plugins/BugFixFreezeOfSomeScenes.js

公式が正式に対応してくれるまでの暫定的な処置程度のコードですので、先にも書いた通り不具合があったらすみません :geek:
【Twitter】https://twitter.com/TsumioNtGame/
【GitHub】https://github.com/Tsumio/rmmv-plugins

有償の依頼も募集中。
今まで有償で制作したものは実績をご覧ください。
アバター
剣崎 宗二
記事: 678
登録日時: 2016年11月12日(土) 20:36
連絡を取る:

Re: プレイ時にある操作でフリーズすることについて

投稿記事by 剣崎 宗二 » 2018年1月06日(土) 14:02

あかみどり さんが書きました:おはよ~ございます

メニューからアイテム選択画面へ何回か連続で高速で切り替える事で再現できました
コントローラの決定ボタンとキーボードのキャンセルボタンで押すと簡単に出来ますね~(連打しやすい)
アイテム画面を開きなおすたびにFPSが下がっていってフリーズしました
メニュー開閉でもFPSガクッと落ち続けるけどこっちではフリーズしないのね……


こちらについては当方の方で再現できましたので、調査いたしました。
結論としてはScene系の遷移速度の問題です。

アイテム画面に於いてキャンセルキーを押すと、processCancelによりWindow_ItemCategoryがdeactivateされ、更にSceneManager.popが呼び出されてScene_Menuに遷移する手はずとなっております。
ですが、この際、Scene_Menu->Scene_Itemに遷移するSceneManager.changeSceneが終了していないと(画像のロードが終わっていなくともボタン受付は開始しております)、

コード: 全て選択

SceneManager.changeScene = function() {
    if (this.isSceneChanging() && !this.isCurrentSceneBusy()) {

の部分によりpopScene(実質的にはScene_Item→Scene_Menu)の要求が拒否され、結果として
「キャンセルを押してwindowがdeactivateされたが画面だけ変わらなかった」と言うオチが発生したのがこの問題の正体ではないかと思います。
----
-出先に居る場合回答が未テスト状態である事が多い為、テストは重々にお願いいたします。
-基本自分や友人の問題解決は自分で1からプラグインを書いているので、「こういうプラグインはありますか」に対しては助けになれません。ご了承ください。

“MV:質問” へ戻る