こんにちは。完全に詰んでしまったので相談させてくださいmm
id1のイベントがセルフスイッチAで動作中に
id2からid1のイベントのセルフスイッチをBに切り替えて
その後、id1のイベントがセルフスイッチAページに戻った時に
id1の自立移動が停止します。
100%停止する訳ではないですが、何度か繰り返していると停止する条件があるようです。
サンプルプロジェクト
https://drive.google.com/file/d/1M9rE7f ... sp=sharing
2Dマップアクションゲームを製作中です。
製作中のゲーム内で切り分けて、いろいろやってみましたが、なかなか解決に至らないので
新規プロジェクトでサンプルを作ってみたら、やっぱり自立移動が停止してしまいました。
何かアドバイス頂けないでしょうか?
半分くらいまで作りこんでるんですが、今日気が付いて^^;
自立移動が停止すると、そもそもゲームが成り立たないのです^^;;;
よろしくお願いいたします。
【解決済み】セルフスイッチ切り替えから自立移動停止が発生する件について
Re: セルフスイッチ切り替えと自立移動停止のバグ?
共有いただいたサンプルにて、同様の症状が出ました。
止まったイベントに触ると動き出すので、イベントそのものが固まっているみたいですね。
原因は不明ですが昔から自動実行関連は動作が不安定になることが多く、
そちらに関連してるかもしれません。
試しにEV1のページ3の最後にセルフスイッチAをオフにする処理を入れたところ、症状が出なくなりました。
ただ、30回の切り替え→ゲームリセットのテストを10回程度試しただけなので、
一応動くようだけど原因は不明。という完全解決には程遠い結果です。
申し訳ありません。
止まったイベントに触ると動き出すので、イベントそのものが固まっているみたいですね。
原因は不明ですが昔から自動実行関連は動作が不安定になることが多く、
そちらに関連してるかもしれません。
試しにEV1のページ3の最後にセルフスイッチAをオフにする処理を入れたところ、症状が出なくなりました。
ただ、30回の切り替え→ゲームリセットのテストを10回程度試しただけなので、
一応動くようだけど原因は不明。という完全解決には程遠い結果です。
申し訳ありません。
Re: セルフスイッチ切り替えと自立移動停止のバグ?
sally様 こんばんは! サンプルのテスト動作をして頂きましてありがとうございます。
3ページ目の最後にセルフスイッチAOFFの処理を入れると
1ページ目まで戻ることになると思うのですが
本来作っているゲームでは1ページ目で
このキャラのHPだったり攻撃力だったりの
初期値を設定しているのです。
なので、1ページ目までは、本来戻りたくないのですが
読み込みが2回目であれば、飛ばす処理を1ページ目に入れる事で
代替え対策ができる事には、気が付きました。ありがとうございます!
最終的には、これで動くようになるのかなと思ったので明日試してみます。
しかし、なぜ、自立移動が止まるのでしょう・・・
2ページ目の注釈を消してしまえば、実は自立移動は止まらないという
さらにちょっとわからない状態です^^;
とにもお時間を割いてテスト頂き感謝申し上げます。
引き続き、アドバイスがありましたら募集していますmm
3ページ目の最後にセルフスイッチAOFFの処理を入れると
1ページ目まで戻ることになると思うのですが
本来作っているゲームでは1ページ目で
このキャラのHPだったり攻撃力だったりの
初期値を設定しているのです。
なので、1ページ目までは、本来戻りたくないのですが
読み込みが2回目であれば、飛ばす処理を1ページ目に入れる事で
代替え対策ができる事には、気が付きました。ありがとうございます!
最終的には、これで動くようになるのかなと思ったので明日試してみます。
しかし、なぜ、自立移動が止まるのでしょう・・・
2ページ目の注釈を消してしまえば、実は自立移動は止まらないという
さらにちょっとわからない状態です^^;
とにもお時間を割いてテスト頂き感謝申し上げます。
引き続き、アドバイスがありましたら募集していますmm
Re: セルフスイッチ切り替えと自立移動停止のバグ?
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のままなので自立移動が処理されない。
という状況によって起こっているものと思われます。
これについては、内部的にイベントページの内容が空の場合はそもそもそのイベントは開始されないようになっているためで、イベントが開始されなければthis._lockedがtrueになることはなく、問題にならないという訳です。
結論からいいますと、
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
プラグイン置き場 : https://github.com/ste0/RPG-Maker-MV-Plugins
Re: セルフスイッチ切り替えと自立移動停止のバグ?
jp_asty様 貴重なお時間を使ってサンプルの動作確認をして頂きありがとうございます!
そして、完全な回答をとってもわかりやすい解説付きで教えていただき感謝感謝です。
前回に引き続き、助けていただいて助かりました!
(余談ですが、前回の座標の質問もうまく動作して進んでます。)
処理内部的な事がわからない身としては、本当に助かってます。
何度もですが、重ねて感謝申し上げます。ありがとうございました^^
そして、完全な回答をとってもわかりやすい解説付きで教えていただき感謝感謝です。
前回に引き続き、助けていただいて助かりました!
(余談ですが、前回の座標の質問もうまく動作して進んでます。)
処理内部的な事がわからない身としては、本当に助かってます。
何度もですが、重ねて感謝申し上げます。ありがとうございました^^
Re: 【解決済み】セルフスイッチ切り替えから自立移動停止が発生する件について
この現象についてまとめると
あるイベントが実行を開始してから終了するまでの間に、そのイベントのリフレッシュが入り、イベントの実行ページが更新されたときに、イベントのロック状態が維持されたままになり、そのイベントの自律移動が処理されなくなる。
となると思います。
これがコアスクリプト側のバグなのかと考えた場合、イベント操作としてありえるケースで自律移動が動作しなくなるので、バグと言えなくもないかもしれません。
ただこれは自分の私見にすぎず、見落としやそもそもの理解が間違っているという可能性も十分ありえます。バグかどうかの判断については有識者の方や公式の方へ判断を委ねるのが懸命であると考えます。
(個人的に気になってしまったので、動向を見守りたいor有識者の方の意見を聞いてみたいという気持ちではあります。)
微力ながらお力添えできて何よりです。制作大変とは思いますが陰ながら応援しております。半分私的好奇心のような部分もありますので、その点はお気になさらずといったところです。
あるイベントが実行を開始してから終了するまでの間に、そのイベントのリフレッシュが入り、イベントの実行ページが更新されたときに、イベントのロック状態が維持されたままになり、そのイベントの自律移動が処理されなくなる。
となると思います。
これがコアスクリプト側のバグなのかと考えた場合、イベント操作としてありえるケースで自律移動が動作しなくなるので、バグと言えなくもないかもしれません。
ただこれは自分の私見にすぎず、見落としやそもそもの理解が間違っているという可能性も十分ありえます。バグかどうかの判断については有識者の方や公式の方へ判断を委ねるのが懸命であると考えます。
(個人的に気になってしまったので、動向を見守りたいor有識者の方の意見を聞いてみたいという気持ちではあります。)
前回に引き続き、助けていただいて助かりました!
(余談ですが、前回の座標の質問もうまく動作して進んでます。)
微力ながらお力添えできて何よりです。制作大変とは思いますが陰ながら応援しております。半分私的好奇心のような部分もありますので、その点はお気になさらずといったところです。
---------------------------------------------------------------------------------------------
プラグイン置き場 : https://github.com/ste0/RPG-Maker-MV-Plugins
プラグイン置き場 : https://github.com/ste0/RPG-Maker-MV-Plugins