【解決済み】メニュー内コモンイベントプラグインの使い方

アバター
にゃたま
記事: 837
登録日時: 2016年1月13日(水) 23:53
お住まい: 床下の猫王国-すみませんが体調悪いのでサポートはお休みさせていただきます
連絡を取る:

【解決済み】メニュー内コモンイベントプラグインの使い方

投稿記事by にゃたま » 2017年12月20日(水) 23:19

こんばんは。

トリアコンタン様のメニュー内コモンイベントプラグイン(MenuCommonEvent)を使って
メニュー画面のチュートリアルを作成したいと思うのですが
ヘルプを見ただけでは使い方がちょっとよくわかりません。

トリアコンタン様の以下の動画を見たのですがこれのコモンイベントの内容など
公開していただくことは難しいでしょうか?
https://twitter.com/triacontane/status/927130099358371841

例えばユーザーに押して欲しいコマンドを示すための枠を作り(ピクチャの表示コマンドで表示)
それしか選択できないようにする方法は可能でしょうか?また押して欲しいボタン以外を暗く表示できますか?

尚、フトコロ様のアイテム画面でコモンイベントを並列実行する為のFTKR_MenuEventが
導入されいているとMenuCommonEventの機能によりアイテム画面でコモンイベントが呼ばれないようです。
更に、FTKR_MenuEventから並列実行したコモンイベントより「ピクチャの表示」コマンドが機能しなくなるようです。
同じ機能なので競合しているのかもしれませんが同時使用は難しいでしょうか?

以上になりますがよろしくお願いいたします。

追記
プラグインの順番は上から
FTKR_MenuEvent
MenuCommonEvent
の順となります。
最後に編集したユーザー にゃたま on 2017年12月23日(土) 22:13 [ 編集 1 回目 ]

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

Re: メニュー内コモンイベントプラグインの使い方

投稿記事by トリアコンタン » 2017年12月21日(木) 02:21

にゃたま さんが書きました:例えばユーザーに押して欲しいコマンドを示すための枠を作り(ピクチャの表示コマンドで表示)
それしか選択できないようにする方法は可能でしょうか?また押して欲しいボタン以外を暗く表示できますか?


windowオブジェクトが取得できるので、スクリプトで記述すればおそらく可能です。
サンプルとしてはこんな感じです。(メインメニューの「装備」コマンドを選択不可に設定する)

コード: 全て選択

var win = this.getSceneWindow('commandWindow');
win._list[2].enabled = false;
win.drawItem(2);


競合の件ですが、もともと機能が一部被っているので完全に両立させるのはおそらく難しいと思います。

動画のコモンイベントはそれぞれこんな感じです。見づらいですがご了承ください。

■メインメニュー■
◆条件分岐:スクリプト:this.isWindowActive('statusWindow');
◆条件分岐:メニューコモン2がOFF
◆プラグインコマンド:DISABLE_WINDOW_CONTROL
◆文章:Actor1(0), ウィンドウ, 下
:  :\n<ハロルド>特定のウィンドウにフォーカスが
:  :当たったときに処理を実行することもできます。
◆文章:Actor1(0), ウィンドウ, 下
:  :\n<ハロルド>さらに、ウィンドウのインデックスも取得
:  :できるのでそれに合わせた処理も実装可能です。
◆スイッチの操作:#0092 メニューコモン2 = ON

:それ以外のとき
◆変数の操作:#0149 ウィンドウインデックス = this.getSceneWindowIndex();
◆条件分岐:ウィンドウインデックス = 0
◆ピクチャの表示:#1, Package1_1, 左上 (400,200), (100%,100%), 255, 通常

:分岐終了
◆条件分岐:ウィンドウインデックス = 1
◆ピクチャの表示:#1, Package1_2, 左上 (400,200), (100%,100%), 255, 通常

:分岐終了
◆条件分岐:ウィンドウインデックス = 2
◆ピクチャの表示:#1, Package1_3, 左上 (400,200), (100%,100%), 255, 通常

:分岐終了
◆条件分岐:ウィンドウインデックス = 3
◆ピクチャの表示:#1, Package1_4, 左上 (400,200), (100%,100%), 255, 通常

:分岐終了

:分岐終了

:それ以外のとき
◆条件分岐:メニューコモン1がOFF
◆プラグインコマンド:DISABLE_WINDOW_CONTROL
◆ウェイト:180フレーム
◆ピクチャの表示:#1, Package1_1, 左上 (400,200), (100%,100%), 255, 通常
◆文章:Actor1(0), ウィンドウ, 下
:  :\n<ハロルド>「メニュー内コモンイベントプラグイン」は
:  :メニュー画面中で任意のコモンイベントを
:  :並列実行できるプラグインです。
:  :メッセージやピクチャも表示できます。
◆文章:Actor1(0), ウィンドウ, 下
:  :\n<ハロルド>チュートリアルやオリジナリティのある
:  :凝った演出が可能になります。
:  :表示したピクチャはマップ画面と同様
:  :セーブ&ロードを経ても保持されます。
◆スイッチの操作:#0091 メニューコモン1 = ON

:分岐終了

:分岐終了

■スキル画面■
◆変数の操作:#0148 パーティの0番目のHP = $gameParty.menuActor().actorId();
◆条件分岐:パーティの0番目のHP = 1
◆ピクチャの表示:#1, Package1_1, 左上 (200,200), (100%,100%), 255, 通常

:分岐終了
◆条件分岐:パーティの0番目のHP = 2
◆ピクチャの表示:#1, Package1_2, 左上 (200,200), (100%,100%), 255, 通常

:分岐終了
◆条件分岐:パーティの0番目のHP = 3
◆ピクチャの表示:#1, Package1_3, 左上 (200,200), (100%,100%), 255, 通常

:分岐終了
◆条件分岐:パーティの0番目のHP = 4
◆ピクチャの表示:#1, Package1_4, 左上 (200,200), (100%,100%), 255, 通常

:分岐終了
◆条件分岐:メニューコモン3がOFF
◆文章:Actor1(0), ウィンドウ, 下
:  :\n<ハロルド>メニュー画面の種別ごとに異なる
:  :コモンイベントを設定できます。
:  :さらに、プラグインで追加された画面でも
:  :コモンイベントを実行できる場合があります。
◆文章:Actor1(0), ウィンドウ, 下
:  :\n<ハロルド>ウィンドウオブジェクトを取得できるので
:  :より高度な処理として、座標を変更したり
:  :再描画したりもできます。
◆スイッチの操作:#0093 メニューコモン3 = ON

:それ以外のとき
◆HPの増減:パーティ全体, - 1 (戦闘不能を許可)
◆スクリプト:var w = this.getSceneWindow('statusWindow');
:     :w.refresh();
:     :w.oapcity-=4;
◆ウェイト:4フレーム

:分岐終了
プラグイン関連のトラブルが発生した際の切り分けと報告の方法です。
http://qiita.com/triacontane/items/2e227e5b5ce9503a2c30

[Blog] : http://triacontane.blogspot.jp/
[Twitter]: https://twitter.com/triacontane/
[GitHub] : https://github.com/triacontane/
アバター
にゃたま
記事: 837
登録日時: 2016年1月13日(水) 23:53
お住まい: 床下の猫王国-すみませんが体調悪いのでサポートはお休みさせていただきます
連絡を取る:

Re: メニュー内コモンイベントプラグインの使い方

投稿記事by にゃたま » 2017年12月21日(木) 15:58

トリアコンタン様

いつもお世話になっております。

トリアコンタン さんが書きました:windowオブジェクトが取得できるので、スクリプトで記述すればおそらく可能です。
サンプルとしてはこんな感じです。(メインメニューの「装備」コマンドを選択不可に設定する)

コード: 全て選択

var win = this.getSceneWindow('commandWindow');
win._list[2].enabled = false;
win.drawItem(2);



なるほど、たしかにこれで一時的に指定コマンドが無効になりました。
スキル画面に移った後キャンセルボタンで戻ると元に戻っているので
継続させる場合は毎回コマンドを行う必要があるようですね。

トリアコンタン さんが書きました:競合の件ですが、もともと機能が一部被っているので完全に両立させるのはおそらく難しいと思います。


了解しました。
アイテム画面のみチュートリアルを行う際はフトコロ様のプラグイン側で行うようにしてみます。

トリアコンタン さんが書きました:動画のコモンイベントはそれぞれこんな感じです。見づらいですがご了承ください。


凄く勉強になりました。このようにウィンドゥID取得して処理させればよいのですね。
1点だけ不明な点がありましたがHPを減らすところでw.capacity-=4としていますが
これはウィンドゥの透明度を変更しようとしているみたいですが画面に反映されてませんでした。
何故反映されないのでしょうか?他のプラグインは全てオフにしています。
回答いただけましたら幸いです。

追記
すみません。あと一点。
チュートリアル中(上記コマンド制限中)は一時的にキャンセルボタンで
メニュー画面から脱出させないようにしたいのですがどのようにスクリプトを組めばよいのでしょうか?
スキル画面に居るときはスキル画面のチュートリアル(コマンド制限)が終わるまでキャンセル拒否したいです。
お手数おかけして申し訳ございません。
アバター
トリアコンタン
記事: 2311
登録日時: 2015年11月10日(火) 21:13
お住まい: きのこ王国
連絡を取る:

Re: メニュー内コモンイベントプラグインの使い方

投稿記事by トリアコンタン » 2017年12月21日(木) 22:30

すみません、スペルが間違ってました。正しくは以下の通りです。

コード: 全て選択

w.opacity-=4;


また、キャンセルの禁止ですが以下のプラグインコマンドでOKです。
内部的にはメニュー画面でのキャンセルはウィンドウ操作のひとつとして実装されています。

コード: 全て選択

ウィンドウ操作禁止
プラグイン関連のトラブルが発生した際の切り分けと報告の方法です。
http://qiita.com/triacontane/items/2e227e5b5ce9503a2c30

[Blog] : http://triacontane.blogspot.jp/
[Twitter]: https://twitter.com/triacontane/
[GitHub] : https://github.com/triacontane/
アバター
にゃたま
記事: 837
登録日時: 2016年1月13日(水) 23:53
お住まい: 床下の猫王国-すみませんが体調悪いのでサポートはお休みさせていただきます
連絡を取る:

Re: メニュー内コモンイベントプラグインの使い方

投稿記事by にゃたま » 2017年12月22日(金) 11:48

トリアコンタン様

トリアコンタン さんが書きました:すみません、スペルが間違ってました。正しくは以下の通りです。

コード: 全て選択

w.opacity-=4;



私も気づいてませんでした。oapcity→opacityですね。
こういうのってなかなか気づきづらいですよね……
徐々に透明になる動作が確認できました。

トリアコンタン さんが書きました:また、キャンセルの禁止ですが以下のプラグインコマンドでOKです。
内部的にはメニュー画面でのキャンセルはウィンドウ操作のひとつとして実装されています。

コード: 全て選択

ウィンドウ操作禁止


トリアコンタン様のサンプルコードを同じように入力してDISABLE_WINDOW_CONTROLを行っておりますが
180フレームウェイトを行っている部分でキャンセル決定等キー入力を受け付けないことを
確認しましたがその後のメッセージ表示後キャンセルできてしまうようです。
メッセージ表示後、コマンド操作及び決定キーのみ受け付けてキャンセルできないようにすることはできませんか?

追記
キャンセルできてしまうとその時点でチュートリアルが終了してしまいます。
継続してスキル画面のチュートリアルを行いたいのでキャンセルできてしまうと都合が悪いです。
お手数おかけしますがご回答よろしくお願いいたします。
もし難しい場合はチュートリアルをなくす方向でいきたいと思います。
アバター
トリアコンタン
記事: 2311
登録日時: 2015年11月10日(火) 21:13
お住まい: きのこ王国
連絡を取る:

Re: メニュー内コモンイベントプラグインの使い方

投稿記事by トリアコンタン » 2017年12月23日(土) 14:38

任意のウィンドウのキャンセルを一時的に禁止

コード: 全て選択

var win = this.getSceneWindow('commandWindow');
win.tempCancelHandler = win._handlers['cancel'];
win._handlers['cancel'] = null;


キャンセルを再度許可

コード: 全て選択

var win = this.getSceneWindow('commandWindow');
win._handlers['cancel'] = win.tempCancelHandler;


別の画面に移動すると禁止は無効になります。
プラグイン関連のトラブルが発生した際の切り分けと報告の方法です。
http://qiita.com/triacontane/items/2e227e5b5ce9503a2c30

[Blog] : http://triacontane.blogspot.jp/
[Twitter]: https://twitter.com/triacontane/
[GitHub] : https://github.com/triacontane/
アバター
にゃたま
記事: 837
登録日時: 2016年1月13日(水) 23:53
お住まい: 床下の猫王国-すみませんが体調悪いのでサポートはお休みさせていただきます
連絡を取る:

Re: メニュー内コモンイベントプラグインの使い方

投稿記事by にゃたま » 2017年12月23日(土) 22:12

トリアコンタン様


ありがとうございました。できました!!
これでチュートリアルが作れそうです。

単純なことですがそれがわからなく止まっておりました。
ハンドラ?とかいうのが自分いまいちわかってなくて
他の方のコードを見ると使われていて理解せねばと思ってました。

ホント助かりました。
また単純なことでわからないことがあるかもしれませんが
お付き合いいただけましたら幸いです。
ひさや
記事: 11
登録日時: 2018年10月12日(金) 21:01

Re: メニュー内コモンイベントプラグインの使い方

投稿記事by ひさや » 2018年10月24日(水) 00:51

トリアコンタン さんが書きました:
windowオブジェクトが取得できるので、スクリプトで記述すればおそらく可能です。
サンプルとしてはこんな感じです。(メインメニューの「装備」コマンドを選択不可に設定する)

コード: 全て選択

var win = this.getSceneWindow('commandWindow');
win._list[2].enabled = false;
win.drawItem(2);


競合の件ですが、もともと機能が一部被っているので完全に両立させるのはおそらく難しいと思います。

動画のコモンイベントはそれぞれこんな感じです。見づらいですがご了承ください。

■メインメニュー■
◆条件分岐:スクリプト:this.isWindowActive('statusWindow');
◆条件分岐:メニューコモン2がOFF
◆プラグインコマンド:DISABLE_WINDOW_CONTROL
◆文章:Actor1(0), ウィンドウ, 下
:  :\n<ハロルド>特定のウィンドウにフォーカスが
:  :当たったときに処理を実行することもできます。
◆文章:Actor1(0), ウィンドウ, 下
:  :\n<ハロルド>さらに、ウィンドウのインデックスも取得
:  :できるのでそれに合わせた処理も実装可能です。
◆スイッチの操作:#0092 メニューコモン2 = ON

:それ以外のとき
◆変数の操作:#0149 ウィンドウインデックス = this.getSceneWindowIndex();
◆条件分岐:ウィンドウインデックス = 0
◆ピクチャの表示:#1, Package1_1, 左上 (400,200), (100%,100%), 255, 通常

:分岐終了
◆条件分岐:ウィンドウインデックス = 1
◆ピクチャの表示:#1, Package1_2, 左上 (400,200), (100%,100%), 255, 通常

:分岐終了
◆条件分岐:ウィンドウインデックス = 2
◆ピクチャの表示:#1, Package1_3, 左上 (400,200), (100%,100%), 255, 通常

:分岐終了
◆条件分岐:ウィンドウインデックス = 3
◆ピクチャの表示:#1, Package1_4, 左上 (400,200), (100%,100%), 255, 通常

:分岐終了

:分岐終了

:それ以外のとき
◆条件分岐:メニューコモン1がOFF
◆プラグインコマンド:DISABLE_WINDOW_CONTROL
◆ウェイト:180フレーム
◆ピクチャの表示:#1, Package1_1, 左上 (400,200), (100%,100%), 255, 通常
◆文章:Actor1(0), ウィンドウ, 下
:  :\n<ハロルド>「メニュー内コモンイベントプラグイン」は
:  :メニュー画面中で任意のコモンイベントを
:  :並列実行できるプラグインです。
:  :メッセージやピクチャも表示できます。
◆文章:Actor1(0), ウィンドウ, 下
:  :\n<ハロルド>チュートリアルやオリジナリティのある
:  :凝った演出が可能になります。
:  :表示したピクチャはマップ画面と同様
:  :セーブ&ロードを経ても保持されます。
◆スイッチの操作:#0091 メニューコモン1 = ON

:分岐終了

:分岐終了

■スキル画面■
◆変数の操作:#0148 パーティの0番目のHP = $gameParty.menuActor().actorId();
◆条件分岐:パーティの0番目のHP = 1
◆ピクチャの表示:#1, Package1_1, 左上 (200,200), (100%,100%), 255, 通常

:分岐終了
◆条件分岐:パーティの0番目のHP = 2
◆ピクチャの表示:#1, Package1_2, 左上 (200,200), (100%,100%), 255, 通常

:分岐終了
◆条件分岐:パーティの0番目のHP = 3
◆ピクチャの表示:#1, Package1_3, 左上 (200,200), (100%,100%), 255, 通常

:分岐終了
◆条件分岐:パーティの0番目のHP = 4
◆ピクチャの表示:#1, Package1_4, 左上 (200,200), (100%,100%), 255, 通常

:分岐終了
◆条件分岐:メニューコモン3がOFF
◆文章:Actor1(0), ウィンドウ, 下
:  :\n<ハロルド>メニュー画面の種別ごとに異なる
:  :コモンイベントを設定できます。
:  :さらに、プラグインで追加された画面でも
:  :コモンイベントを実行できる場合があります。
◆文章:Actor1(0), ウィンドウ, 下
:  :\n<ハロルド>ウィンドウオブジェクトを取得できるので
:  :より高度な処理として、座標を変更したり
:  :再描画したりもできます。
◆スイッチの操作:#0093 メニューコモン3 = ON

:それ以外のとき
◆HPの増減:パーティ全体, - 1 (戦闘不能を許可)
◆スクリプト:var w = this.getSceneWindow('statusWindow');
:     :w.refresh();
:     :w.oapcity-=4;
◆ウェイト:4フレーム

:分岐終了





大変申し訳ございませんが、トピックをお借りしてトリアコンタン様に聞きたいです。
初心者なので、メニュー内コモンイベントプラグインの使い方が何度も見てもよく分からないです。(泣)
「遊び方の説明」のように、メインメニューが自動的に出させて、テキストやピクチャなどを行うことをやりたいです。どうか教えてください。
あと他のメニュープラグインと連動できますか?たとえばYEP_MainMenuManagerです。
そして他のプラグイン内にも実行できますか?たとえば合成システムや用語辞典など、各ウインドウの名称がどこから知れますか?

お邪魔したらお許しください。
ありがとうございます。
アバター
トリアコンタン
記事: 2311
登録日時: 2015年11月10日(火) 21:13
お住まい: きのこ王国
連絡を取る:

Re: 【解決済み】メニュー内コモンイベントプラグインの使い方

投稿記事by トリアコンタン » 2018年10月26日(金) 03:32

こんばんは!
プラグインを使ってくださり、ありがとうございます!
うまく説明できていなかったら申し訳ありません。

使い方について、まずシーンと、そのシーンで実行するコモンイベントIDを指定します。
2018-10-26 (1).png
2018-10-26 (1).png (23.61 KiB) 閲覧数: 8719 回


あとは指定した番号のコモンイベントを組みます。
ひとまず「文章の表示」だけを実行して、正しくイベントが動くことを確かめてみるのがいいと思います。

あと他のメニュープラグインと連動できますか?たとえばYEP_MainMenuManagerです。

プラグイン次第ですが、ある程度は連動できると思います。
ただ、競合する場合もあるので、まずは他のプラグインなしで動作を確かめるのがいいと思います。

そして他のプラグイン内にも実行できますか?たとえば合成システムや用語辞典など、各ウインドウの名称がどこから知れますか?

これについてはプラグイン次第です。実行できる場合もあります。
ウィンドウの名称はプラグインのコードを見て使われている変数名から判断するしかないです。
JavaScriptの知識が必要になります。
プラグイン関連のトラブルが発生した際の切り分けと報告の方法です。
http://qiita.com/triacontane/items/2e227e5b5ce9503a2c30

[Blog] : http://triacontane.blogspot.jp/
[Twitter]: https://twitter.com/triacontane/
[GitHub] : https://github.com/triacontane/
ordbr
記事: 2
登録日時: 2018年12月03日(月) 13:53

Re: 【解決済み】メニュー内コモンイベントプラグインの使い方

投稿記事by ordbr » 2018年12月03日(月) 14:00

すみません、こちらのプラグインのパラメータの設定で悩んでいます。
コモンイベント情報のパラメータを、例えば「Scene_Menu 48」と設定すると、
Plugin param is wrongとalertが発生します。
正しいパラメータの設定を教えてください。よろしくお願いします。

“MV:質問” へ戻る