イベント中にメニューを開きたい

アバター
Okayu
記事: 11
登録日時: 2018年1月10日(水) 02:51

イベント中にメニューを開きたい

投稿記事by Okayu » 2019年2月16日(土) 21:17

専門的な知識をイベントとクイズで学習できるゲームを作成しているのですが、選択肢を表示させた状態でメインメニューを表示させて閉じるとエラーを吐いてしまい困っています。

用途としては、会話やクイズの文中に多くの専門用語が登場するため、ヒントとして「用語辞典」などをメッセージの都度、プレイヤーの好きなタイミングで参照できるようにしたいのです。
イメージとしてはトリアコンタン様のサウンドノベルプラグイン(NobleMushroom.js)に実装されているような文章表示中に開閉可能なメニューを希望しています。

[試みたこと]
・会話(クイズ)イベントの最中に操作が可能なように「並列処理」イベントとしました。
・それでも右クリックではメニュー開閉が不可能だったため、トリアコンタン様のピクチャのボタン化プラグイン(PictureCallCommon.js)を用いて「メニューを開くコモンイベントを実行するボタン」を画面上に作成したところ、イベント処理の任意の箇所でメニューの開閉が可能になりました。
・ところが、肝心の選択肢を表示させたところで同様の操作を行うと、メニューを閉じた際に
「TypeError Cannot read property 'bitmap' of undefined」と表示されてしまいました。
・直接「用語辞典」を呼び出しても同様でした。

[試みたこと2]
・フトコロ様のメッセージウィンドウを複数表示するプラグイン(FTKR_ExMessageWindow2.js)の「メッセージ表示中にプレイヤーの行動を許可」機能を選択肢表示のタイミングで呼び出してみました。
・右クリック&ボタンでのメニュー表示はできたものの、イベント処理が中断してしまいました。

エラー回避方法や、私の意図した動作が可能になるイベント記述方法、スクリプト等ご存知でしたらご教授いただけないでしょうか。宜しくお願いします。

RPGツクール初心者です。
アバター
トリアコンタン
記事: 2311
登録日時: 2015年11月10日(火) 21:13
お住まい: きのこ王国
連絡を取る:

Re: イベント中にメニューを開きたい

投稿記事by トリアコンタン » 2019年2月16日(土) 22:41

こんにちは!
選択肢を表示している状態でメニュー画面など別の画面に遷移し、戻ってくるとご提示のエラーが発生します。
これはMVコアスクリプトの元々の動作です。

エラーの回避は以下のプラグインで可能なのでもしかしたら問題を解決できるかもしれません。

https://raw.githubusercontent.com/triacontane/RPGMakerMV/master/BugFixLoadErrorChoiceSetup.js
プラグイン関連のトラブルが発生した際の切り分けと報告の方法です。
http://qiita.com/triacontane/items/2e227e5b5ce9503a2c30

[Blog] : http://triacontane.blogspot.jp/
[Twitter]: https://twitter.com/triacontane/
[GitHub] : https://github.com/triacontane/
アバター
Okayu
記事: 11
登録日時: 2018年1月10日(水) 02:51

Re: イベント中にメニューを開きたい

投稿記事by Okayu » 2019年2月17日(日) 21:49

>トリアコンタンさん
こんにちは!

いつもお世話になっております!
ご呈示頂いたプラグインで確かにエラーが解消されました!
本当にありがとうございます!

ただ、メニューを閉じた際のエラーは出なくなったものの、選択肢による分岐処理をスキップしてしまいました。
(メニューを閉じるとなにも選択しなかった体で次の処理に進んでしまう)
選択肢以外のメッセージウィンドウも、同様にメニューを閉じたと同時にクリックが入るのか次の処理に進んでしまいます。
文章中にボタン押下待ちの制御文字を入れてみましたが、無視されるようです。

メニューを閉じても直前の処理に留まるようにするにはどうすればよいのでしょうか。

宜しくお願いします。
RPGツクール初心者です。
アバター
トリアコンタン
記事: 2311
登録日時: 2015年11月10日(火) 21:13
お住まい: きのこ王国
連絡を取る:

Re: イベント中にメニューを開きたい

投稿記事by トリアコンタン » 2019年2月19日(火) 02:22

こんばんは!
こちらで簡易的な環境を作成して試したところ、現象を再現できませんでした。。
ツクール本体(1.6.2)およびコアスクリプト(v1.6.1_community-1.3b)のバージョンはそれぞれ最新で確認しています。
イベントの組み方など何らかの発生条件があるか、あるいは他のプラグインの影響かもしれません。

イベント処理(通常イベント)

コード: 全て選択

◆プラグインコマンド:P_CALL_SWITCH 1 1 1
◆ピクチャの表示:#1, image, 左上 (0,0), (100%,100%), 255, 通常
◆選択肢の表示:はい, いいえ (ウィンドウ, 右, #1, #2)
:はいのとき
  ◆文章:なし, ウィンドウ, 下
  :  :はい
  ◆
:いいえのとき
  ◆文章:なし, ウィンドウ, 下
  :  :いいえ
  ◆
:分岐終了


イベント処理2(スイッチ[1]が出現条件の並列処理)

コード: 全て選択

◆メニュー画面を開く
◆スイッチの操作:#0001 ピクチャクリック = OFF
プラグイン関連のトラブルが発生した際の切り分けと報告の方法です。
http://qiita.com/triacontane/items/2e227e5b5ce9503a2c30

[Blog] : http://triacontane.blogspot.jp/
[Twitter]: https://twitter.com/triacontane/
[GitHub] : https://github.com/triacontane/
アバター
Okayu
記事: 11
登録日時: 2018年1月10日(水) 02:51

Re: イベント中にメニューを開きたい

投稿記事by Okayu » 2019年2月20日(水) 11:09

ご返信頂きありがとうございます!

動作確認していただき恐縮です。
教えて頂いた通りにテスト環境を作成したところ、確かに選択肢はスキップしませんでした!
[試みたこと2]で導入したフトコロ様のプラグインがONの状態だとスキップが発生していたようです。
(ツクールのVer.は、、確認の仕方がわからず不明です、申し訳ありません)

ただ、やはり通常のメッセージウィンドウはメニュー閉と同時に次の処理にスキップしてしまうため、以下の処理で対応しました。

Untitled.jpg


1)「スイッチ○番をONにする」というコモンイベントを用意。これをYanfly様のYEP_UtilityCommonEvents.jsを用いて、「メニューを閉じた」というトリガで起動するように設定する。
2)文章表示の後に上記スイッチ○番のON/OFFを調べる条件分岐をおき、「ON:メニューを使用した」場合はループ処理で再度文章を表示。「OFF:メニューを使用していない」場合はループを抜けて次の処理に進む。
3)このままではメニューを閉じるたびに文章表示の演出(\.や\|など)が適用されてしまうので、ループ処理に入る前に文字を一瞬で表示する処理を挟む(rpg_windows.jsをいじってshowFastをスイッチで制御できるようにしました)。

上記のイベントを並列処理で実行することで、文章表示のクリック待ち毎にメニューを開閉し元の文章に戻ってくることができるようになりました、、、。

改善したい点としては
・選択肢の待機中は3)のような二度目以降の文章の演出を無視する処理が同じ手法では実現できませんでした、、。
→問題文は最初から\>で記述するしかない?
・文章表示イベント毎に上記1)〜3)の処理を書くとEVページが煩雑に、、、
もうちょっと勉強してみようと思います、、。


とりあえず、当初思い描いていた動作をほぼ完全に実現することができました。
トリアコンタン様のBugFixLoadErrorChoiceSetup.jsがなければ頓挫するところでしたので、大変助かりました!
RPGツクール初心者です。

“MV:質問” へ戻る