【解決済み】イベントが会話中でもプレイヤーが動けるプラグイン

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

Re: 【解決済み】イベントが会話中でもプレイヤーが動けるプラグイン

投稿記事by にゃたま » 2017年5月07日(日) 19:14

フトコロ様

フトコロ さんが書きました:
最初の分岐のスクリプトは以下のとおりです。
!$gameMessageEx.window(1).isBusyBase() && !$gameMessageEx.window(0).isBusyBase()

中身を説明すると、最初の分岐で、isBusyBase()というスクリプトを使用しています。
これはisBusyよりもさらに条件が厳しい判定です。
これを以前の通りの移動ルートの中で使用すると、最悪何度も同じ会話が表示する可能性があります。
フキダシを表示する処理の実行判定に使用することで、会話の重複を防ぎます。

村人1と村人2には移動ルートをなくして、会話イベントのみ残しました。

これだとうまく交互に会話が進んだようなので、試してみてもらえませんか?

>最初の分岐に条件が不足していたので修正



了解致しました。これから試してみます。

あと不具合なのかわかりませんが\EMPを削除しても動けるような動作をしていたのですが
そちらで確認していただけませんか?

一応プロジェクトにあるように「誰か話してくれー」と言ってる少年に\DMPをつけて操作禁止にしてみても
操作できてしまったのでひょっとしたらと思った次第です。

よろしくお願いします。



追記です。
画像の最上段の!$gameMessageEx.window(1).isBusyBase() && !$gameMessageEx.Windowの後が切れていたのですが
その後はどうなっていますか?

再追記
すみません書いてありました…申し訳ございません。

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

Re: 【解決済み】イベントが会話中でもプレイヤーが動けるプラグイン

投稿記事by にゃたま » 2017年5月07日(日) 19:45

フトコロ様

実行してみましたが、問題ありませんでした。
スイッチですと村人1、村人2が交互に一度話したら終わってしまうので
セルフ変数等で続ける必要がありますね。
とりあえずこの方法で検討してみることにします。
アバター
フトコロ
記事: 1029
登録日時: 2017年2月06日(月) 21:32

Re: 【解決済み】イベントが会話中でもプレイヤーが動けるプラグイン

投稿記事by フトコロ » 2017年5月07日(日) 22:02

にゃたま さんが書きました:あと不具合なのかわかりませんが\EMPを削除しても動けるような動作をしていたのですが
そちらで確認していただけませんか?

一応プロジェクトにあるように「誰か話してくれー」と言ってる少年に\DMPをつけて操作禁止にしてみても
操作できてしまったのでひょっとしたらと思った次第です

この現象は、移動ルートや並列処理などの自動実行されて表示したウィンドウに対して、行動許可・禁止の処理が正しく動作していなかったのが原因でした。
なお、この不具合の修正の兼ね合いで、バトル開始時にすべてのウィンドウIDを強制終了するように変更しました。

お手数をお掛けしますが、最新版のダウンロードをお願いします。

<ダウンロード>
https://raw.githubusercontent.com/futokoro/RPGMaker/master/FTKR_ExMessageWindow2.js

<マニュアル>
https://github.com/futokoro/RPGMaker/blob/master/FTKR_ExMessageWindow2.ja.md
---------------------------------------------------------------------------------------------------
プラグイン置き場(GitHub)
https://github.com/futokoro/RPGMaker/blob/master/README.md

検討中の内容は上記リンク先の「対応するかもしれないプラグインのメモ」を参照してください。
アバター
にゃたま
記事: 837
登録日時: 2016年1月13日(水) 23:53
お住まい: 床下の猫王国-すみませんが体調悪いのでサポートはお休みさせていただきます
連絡を取る:

Re: 【解決済み】イベントが会話中でもプレイヤーが動けるプラグイン

投稿記事by にゃたま » 2017年5月08日(月) 09:24

フトコロ様

フトコロ さんが書きました:この現象は、移動ルートや並列処理などの自動実行されて表示したウィンドウに対して、行動許可・禁止の処理が正しく動作していなかったのが原因でした。
なお、この不具合の修正の兼ね合いで、バトル開始時にすべてのウィンドウIDを強制終了するように変更しました。

お手数をお掛けしますが、最新版のダウンロードをお願いします。


動作を確認致しました。ありがとうございます。


初期の頃からこの\EMPの件で気になっていたことなのですが
プレイヤーがダッシュしている時、移動ルートにより自動的にウィンドウが開いた時に
一瞬動作が停止してしまいます。自律移動による移動ルートで表示するフキダシが多いほど
この影響を何度もうけてしまいます。人によっては酔ってしまう人もいると思います。

恐らくこの現象はウィンドウの開くアニメーションが終わるまで\EMPが実行されないことによると
思いますが\EMPがスクリプトの先頭にある場合、ウィンドウの開くアニメーション開始前に
有効にすることは難しいでしょうか?
もしできない場合、スクリプトにより有効、無効を設定する方法でも構いません。

検討していただけると幸いです。よろしくお願いします。

追記
ウィンドウの重ね順の件ですが現在ID0が一番奥に表示されるようですがこれが一番手前にならないでしょうか?
決定キーで会話したりすると基本的にメインのメッセージウィンドウであるID0が表示されます。
メインウィンドウが他のフキダシで隠れてしまって見えなくなってしまいます。対策お願い致します。
色々要望を言って申し訳ございません。よろしくお願いします。
アバター
フトコロ
記事: 1029
登録日時: 2017年2月06日(月) 21:32

Re: 【解決済み】イベントが会話中でもプレイヤーが動けるプラグイン

投稿記事by フトコロ » 2017年5月08日(月) 21:53

にゃたまさん

ご要望に合わせて、以下の通りにプラグインを修正しました。(v2.0.10)

1.プレイヤーの行動を許可するスクリプト・プラグインコマンドを追加
2.ウィンドウIDを指定するプラグインコマンドの機能を向上
3.ウィンドウID0を最前面に表示するように変更。

<ダウンロード>
https://raw.githubusercontent.com/futokoro/RPGMaker/master/FTKR_ExMessageWindow2.js

<マニュアル>
https://github.com/futokoro/RPGMaker/blob/master/FTKR_ExMessageWindow2.ja.md
---------------------------------------------------------------------------------------------------
プラグイン置き場(GitHub)
https://github.com/futokoro/RPGMaker/blob/master/README.md

検討中の内容は上記リンク先の「対応するかもしれないプラグインのメモ」を参照してください。
アバター
にゃたま
記事: 837
登録日時: 2016年1月13日(水) 23:53
お住まい: 床下の猫王国-すみませんが体調悪いのでサポートはお休みさせていただきます
連絡を取る:

Re: 【解決済み】イベントが会話中でもプレイヤーが動けるプラグイン

投稿記事by にゃたま » 2017年5月09日(火) 08:36

フトコロ さんが書きました:ご要望に合わせて、以下の通りにプラグインを修正しました。(v2.0.10)

1.プレイヤーの行動を許可するスクリプト・プラグインコマンドを追加
2.ウィンドウIDを指定するプラグインコマンドの機能を向上
3.ウィンドウID0を最前面に表示するように変更。

修正いただきありがとうございます。
1についてはうまく動作しませんでした。
EMW_メッセージウィンドウ行動許可 Id及びenabledCanMovePlayer()が追加されたのは確認しました。
2についてはいまのところ確認しておりません。どのように変わったのでしょうか?
3については正常な動作を確認しました。


適用してみたところ当方の手順がおかしいのか動作しなかったので
手順をご紹介しますので一度試してもらえませんか?
$gameMessageEx.window(4).enabledCanMovePlayer()を使用する場合、
\\EMPは不要という認識でよいですか?
dispの雑談の文字数を増やしてるのはウィンドウの開くアニメーションを延長し
症状をわかりやすくするためです。

よろしくお願いします。



自律移動カスタムー移動ルートにて

コード: 全て選択

スクリプト $gameMessageEx.window(4).enabledCanMovePlayer()
スクリプト $gameSystem.setMessagePopupEx(4,this._eventId);
スクリプト $gameMessageEx.window(4).disp("雑談1雑談1雑談1雑談1雑談1雑談1雑談1\\|\\|\\|\\^");
ウェイト 200フレーム
スクリプト $gameMessageEx.window(4).disp("雑談2雑談2雑談2雑談2雑談2雑談2雑談2\\|\\|\\|\\^");
ウェイト 200フレーム
アバター
フトコロ
記事: 1029
登録日時: 2017年2月06日(月) 21:32

Re: 【解決済み】イベントが会話中でもプレイヤーが動けるプラグイン

投稿記事by フトコロ » 2017年5月09日(火) 09:52

にゃたま さんが書きました:適用してみたところ当方の手順がおかしいのか動作しなかったので
手順をご紹介しますので一度試してもらえませんか?
$gameMessageEx.window(4).enabledCanMovePlayer()を使用する場合、
\\EMPは不要という認識でよいですか?

dispスクリプトは最初に初期化をするため、それまでの設定は無効になります。
そのため、dispの後に設定してください。

enabledCanMovePlayerスクリプトを使用した場合は、制御文字は不要です。

にゃたま さんが書きました:2についてはいまのところ確認しておりません。どのように変わったのでしょうか?

EMW_メッセージウィンドウ指定 のコマンドに使用できる引数を増やしました。
詳しくは、プラグイン内のヘルプ、またはマニュアルを見てください。
---------------------------------------------------------------------------------------------------
プラグイン置き場(GitHub)
https://github.com/futokoro/RPGMaker/blob/master/README.md

検討中の内容は上記リンク先の「対応するかもしれないプラグインのメモ」を参照してください。
アバター
にゃたま
記事: 837
登録日時: 2016年1月13日(水) 23:53
お住まい: 床下の猫王国-すみませんが体調悪いのでサポートはお休みさせていただきます
連絡を取る:

Re: 【解決済み】イベントが会話中でもプレイヤーが動けるプラグイン

投稿記事by にゃたま » 2017年5月09日(火) 10:49

フトコロ様

>dispスクリプトは最初に初期化をするため、それまでの設定は無効になります。
>そのため、dispの後に設定してください。

こんにちは。返信ありがとうございます。
「直前のdispを表示中のときはプレイヤーは動けるよ」といった意味になるのですね。了解です。

あとプロジェクトをアップデートしましたが、
2点ほど気になった点がありましたのでご確認いただければと思います。

一つ目はこのプロジェクトの右下にいる少年に話しかけたとき「スクリプト」を選択すると
「スクリプトテストです」が表示されず直ぐに「ありがとう」になってしまいます。
入力待ちにならないようです。
念の為「スクリプトテストです\\!」としても入力待ちにならなかったのですがこの動作は正しいのでしょうか?
もしかしてdispとコマンドの「文章の表示」は同義ではないのでしょうか?
スクリプトのときは入力待ちにする方法が無いのでしょうか?

二つ目は$gameSystem.setMessagePopupEx(0,0);とポップアップ表示を指定しているのに
ポップアップ表示にならず標準のウィンドウになってしまうことです。

少年に話した時に「プラグイン」を選択した状態が正しいと思いますが
ご確認いただけますでしょうか?

理解できてない点が多く申し訳ございません。よろしくお願いします。

追記
またマップ外に出たときに文章が次のマップに引き継がれる問題が稀に発生します。
タイミング次第ですが完全に防ぐことはむずかしいでしょうか?
アバター
フトコロ
記事: 1029
登録日時: 2017年2月06日(月) 21:32

Re: 【解決済み】イベントが会話中でもプレイヤーが動けるプラグイン

投稿記事by フトコロ » 2017年5月09日(火) 15:30

にゃたま さんが書きました:一つ目はこのプロジェクトの右下にいる少年に話しかけたとき「スクリプト」を選択すると
「スクリプトテストです」が表示されず直ぐに「ありがとう」になってしまいます。
入力待ちにならないようです。
念の為「スクリプトテストです\\!」としても入力待ちにならなかったのですがこの動作は正しいのでしょうか?
もしかしてdispとコマンドの「文章の表示」は同義ではないのでしょうか?

先日もお伝えしましたが、dispスクリプトはそれまでの設定内容を初期化した上で、文章を登録するスクリプトです。
そのため、dispを連続で使用しているため、1回目の文章を2回目のdispで初期化しています。
間にウェイトを挟んで、1回目の文章を表示させてから、2回目のdispを実行してください。

にゃたま さんが書きました:二つ目は$gameSystem.setMessagePopupEx(0,0);とポップアップ表示を指定しているのに
ポップアップ表示にならず標準のウィンドウになってしまうことです。

ID0は、拡張ウィンドウを使用しません。
ポップアップ表示をするためには$gameSystem.SetMessagePopup()スクリプトを使用してください。

にゃたま さんが書きました:またマップ外に出たときに文章が次のマップに引き継がれる問題が稀に発生します。
タイミング次第ですが完全に防ぐことはむずかしいでしょうか?

これは恐らく、場所移動のイベント実行で、強制終了の処理を実行した後からマップを移動する間に、移動ルートのスクリプトを実行して、文章が登録されてしまっているのだと思います。

これを回避するためには、場所移動のコマンド実行前にすべてのイベントの移動を止めるようにイベントを組むか、場所移動後に強制終了させるイベントを組まなくてはいけないと思います。

なお、プラグインパラメータ<Scene Start terminate>を有効にすることで、場所移動後に強制終了します。
---------------------------------------------------------------------------------------------------
プラグイン置き場(GitHub)
https://github.com/futokoro/RPGMaker/blob/master/README.md

検討中の内容は上記リンク先の「対応するかもしれないプラグインのメモ」を参照してください。
アバター
にゃたま
記事: 837
登録日時: 2016年1月13日(水) 23:53
お住まい: 床下の猫王国-すみませんが体調悪いのでサポートはお休みさせていただきます
連絡を取る:

Re: 【解決済み】イベントが会話中でもプレイヤーが動けるプラグイン

投稿記事by にゃたま » 2017年5月09日(火) 17:22

フトコロ様
フトコロ さんが書きました:先日もお伝えしましたが、dispスクリプトはそれまでの設定内容を初期化した上で、文章を登録するスクリプトです。
そのため、dispを連続で使用しているため、1回目の文章を2回目のdispで初期化しています。
間にウェイトを挟んで、1回目の文章を表示させてから、2回目のdispを実行してください。

すみません理解力が乏しくご迷惑をおかけしております。
以下のように単純にウェイトを入れただけですがこれですと「ありがとう」が表示されませんでした。
しかしながらウェイトを60フレームにして「スクリプトテストです」のときに1秒以内に
決定キーを押すと「ありがとう」まで表示されるようです。
このあたりの動作がまだ理解できておらずお手を煩わせ申し訳ございません。

コード: 全て選択

スクリプト $gameSystem.setMessagePopup(0);
スクリプト $gameMessageEx.window(0).disp("スクリプトテストです");
ウェイト 10フレーム
スクリプト $gameSystem.setMessagePopup(-1);
スクリプト $gameMessageEx.window(0).disp("ありがとう\\|\\|\\^");


フトコロ さんが書きました:ID0は、拡張ウィンドウを使用しません。
ポップアップ表示をするためには$gameSystem.SetMessagePopup()スクリプトを使用してください。


こちら上のコードのように変えたことでポップアップ表示にすることができました。
Exはあくまでも拡張ウィンドウに対して有効ということですね。こちら了解しました。

フトコロ さんが書きました:なお、プラグインパラメータ<Scene Start terminate>を有効にすることで、場所移動後に強制終了します。


こちらパラメータを有効にしたはずですが色々いじっていたせいかいつの間にか無効になってましたorz
すみません。ご指摘いただきありがとうございました。

“MV:プラグイン素材のリクエスト” へ戻る