【解決済み】セルフスイッチ切り替えから自立移動停止が発生する件について

アバター
MEIKOI
記事: 168
登録日時: 2018年9月22日(土) 20:13
連絡を取る:

【解決済み】セルフスイッチ切り替えから自立移動停止が発生する件について

投稿記事by MEIKOI » 2020年9月05日(土) 19:37

こんにちは。完全に詰んでしまったので相談させてくださいmm

id1のイベントがセルフスイッチAで動作中に

id2からid1のイベントのセルフスイッチをBに切り替えて

その後、id1のイベントがセルフスイッチAページに戻った時に

id1の自立移動が停止します。

100%停止する訳ではないですが、何度か繰り返していると停止する条件があるようです。

サンプルプロジェクト
https://drive.google.com/file/d/1M9rE7f ... sp=sharing

2Dマップアクションゲームを製作中です。

製作中のゲーム内で切り分けて、いろいろやってみましたが、なかなか解決に至らないので

新規プロジェクトでサンプルを作ってみたら、やっぱり自立移動が停止してしまいました。

何かアドバイス頂けないでしょうか?

半分くらいまで作りこんでるんですが、今日気が付いて^^;

自立移動が停止すると、そもそもゲームが成り立たないのです^^;;;

よろしくお願いいたします。
最後に編集したユーザー MEIKOI on 2020年9月06日(日) 11:26 [ 編集 1 回目 ]

sally
記事: 119
登録日時: 2019年8月06日(火) 05:11

Re: セルフスイッチ切り替えと自立移動停止のバグ?

投稿記事by sally » 2020年9月05日(土) 21:38

共有いただいたサンプルにて、同様の症状が出ました。
止まったイベントに触ると動き出すので、イベントそのものが固まっているみたいですね。

原因は不明ですが昔から自動実行関連は動作が不安定になることが多く、
そちらに関連してるかもしれません。

試しにEV1のページ3の最後にセルフスイッチAをオフにする処理を入れたところ、症状が出なくなりました。
ただ、30回の切り替え→ゲームリセットのテストを10回程度試しただけなので、
一応動くようだけど原因は不明。という完全解決には程遠い結果です。

申し訳ありません。
アバター
MEIKOI
記事: 168
登録日時: 2018年9月22日(土) 20:13
連絡を取る:

Re: セルフスイッチ切り替えと自立移動停止のバグ?

投稿記事by MEIKOI » 2020年9月05日(土) 21:53

sally様 こんばんは! サンプルのテスト動作をして頂きましてありがとうございます。

3ページ目の最後にセルフスイッチAOFFの処理を入れると

1ページ目まで戻ることになると思うのですが

本来作っているゲームでは1ページ目で

このキャラのHPだったり攻撃力だったりの

初期値を設定しているのです。

なので、1ページ目までは、本来戻りたくないのですが

読み込みが2回目であれば、飛ばす処理を1ページ目に入れる事で

代替え対策ができる事には、気が付きました。ありがとうございます!

最終的には、これで動くようになるのかなと思ったので明日試してみます。

しかし、なぜ、自立移動が止まるのでしょう・・・

2ページ目の注釈を消してしまえば、実は自立移動は止まらないという

さらにちょっとわからない状態です^^;

とにもお時間を割いてテスト頂き感謝申し上げます。

引き続き、アドバイスがありましたら募集していますmm
jp_asty
記事: 81
登録日時: 2019年11月12日(火) 15:34

Re: セルフスイッチ切り替えと自立移動停止のバグ?

投稿記事by jp_asty » 2020年9月06日(日) 07:38

MEIKOIさん

結論からいいますと、
ID1のイベントのページ3の最後に
◆スクリプト:this.character(0).unlock();
を追加すると自立移動が停止しなくなることが確認できました。

以下、理由となります。

まず、自立移動が停止しているのは
Game_Event.prototype.updateSelfMovementのタイミングでthis._lockedにtrueが設定されているためでした。

this._lockedがtrueになるのは「決定ボタン」「プレイヤーから接触」「イベントから接触」のいずれかのトリガーのイベントが開始されたときだけで、このいずれかのトリガーで開始されたイベントが終了したとき、this._lockedはfalseになります。

今回の”自立移動がたまに停止することがある”という問題は

ID1のイベントがスライム状態のときに、プレイヤーに接触してイベントが開始される。
(イベント内容としては注釈のみですがイベントとして実行されます)

this._lockedがtrueになる。

イベントが終了する前にEnterキーを押すことでセルフスイッチが変更され、オーク状態となる。

オーク状態のイベントがすべて終了した後、スライム状態に戻る。

このとき、this._lokedはオーク状態になる前のtrueのままなので自立移動が処理されない。

という状況によって起こっているものと思われます。
2ページ目の注釈を消してしまえば、実は自立移動は止まらないという

これについては、内部的にイベントページの内容が空の場合はそもそもそのイベントは開始されないようになっているためで、イベントが開始されなければthis._lockedがtrueになることはなく、問題にならないという訳です。
---------------------------------------------------------------------------------------------
プラグイン置き場 : https://github.com/ste0/RPG-Maker-MV-Plugins
アバター
MEIKOI
記事: 168
登録日時: 2018年9月22日(土) 20:13
連絡を取る:

Re: セルフスイッチ切り替えと自立移動停止のバグ?

投稿記事by MEIKOI » 2020年9月06日(日) 11:25

jp_asty様 貴重なお時間を使ってサンプルの動作確認をして頂きありがとうございます!

そして、完全な回答をとってもわかりやすい解説付きで教えていただき感謝感謝です。

前回に引き続き、助けていただいて助かりました!
(余談ですが、前回の座標の質問もうまく動作して進んでます。)

処理内部的な事がわからない身としては、本当に助かってます。

何度もですが、重ねて感謝申し上げます。ありがとうございました^^
jp_asty
記事: 81
登録日時: 2019年11月12日(火) 15:34

Re: 【解決済み】セルフスイッチ切り替えから自立移動停止が発生する件について

投稿記事by jp_asty » 2020年9月06日(日) 13:07

この現象についてまとめると

あるイベントが実行を開始してから終了するまでの間に、そのイベントのリフレッシュが入り、イベントの実行ページが更新されたときに、イベントのロック状態が維持されたままになり、そのイベントの自律移動が処理されなくなる。

となると思います。

これがコアスクリプト側のバグなのかと考えた場合、イベント操作としてありえるケースで自律移動が動作しなくなるので、バグと言えなくもないかもしれません。

ただこれは自分の私見にすぎず、見落としやそもそもの理解が間違っているという可能性も十分ありえます。バグかどうかの判断については有識者の方や公式の方へ判断を委ねるのが懸命であると考えます。
(個人的に気になってしまったので、動向を見守りたいor有識者の方の意見を聞いてみたいという気持ちではあります。)

前回に引き続き、助けていただいて助かりました!
(余談ですが、前回の座標の質問もうまく動作して進んでます。)

微力ながらお力添えできて何よりです。制作大変とは思いますが陰ながら応援しております。半分私的好奇心のような部分もありますので、その点はお気になさらずといったところです。
---------------------------------------------------------------------------------------------
プラグイン置き場 : https://github.com/ste0/RPG-Maker-MV-Plugins

“MV:質問” へ戻る