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

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

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

投稿記事by にゃたま » 2017年5月01日(月) 21:48

フトコロ様

先程はいろいろお世話になりました。
解決済みにさせていただきましたが一点だけ聞きたいことがありまして投稿させていただきます。
プラグインパラメータのCreate ExWindow Numberは0にすると必ずエラーになるのですが
これは基本的に使わないほうが良いという認識でよろしいでしょうか?
0はなるべく使わないようにしてほしいと言われればそれまでなんですがちょっと気になります。
逆に0の使いみちはどんなときでしょうか?

FTKR_ExMessageWindow2単体で動作させてもCannot read property 'choices' if undefinedエラー
が出てしまいます。
エラーの出ない条件は全てのイベントをマップから削除したときで
マップに一つでもイベントがあるとこのエラーになってしまいます。
それとも当方の環境だけの症状なのでしょうか?
先程アップしたプロジェクトのプラグインパラメータのCreate ExWindow Numberを0にするだけで
この症状が発生するはずです。お手数ですがご確認いただいてもよろしいでしょうか?
よろしくお願いします。

アバター
フトコロ
記事: 1029
登録日時: 2017年2月06日(月) 21:32

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

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

にゃたまさん

不具合のご報告ありがとうございます。
何度もお手数をおかけして申し訳ございません。

Create ExWindow Number の設定0 の処理を見直しました。
元は、設定0にするとマップ上のイベントの数だけウィンドウIDを作成する機能がありましたが、
何度か処理を変えたことでうまく動作しなくなっていたようです。

この機能は削除しましたのでエラーは起きなくなります。
今後は、設定0にするとウィンドウ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月02日(火) 11:12

フトコロ様

おはようございます。了解致しました。
0にすると拡張ウィンドウを生成せずツクール標準のウィンドウのみということですね。



ヘルプより
>>ウィンドウIDの数が多すぎる場合、その分処理が重くなる可能性があります。

こちら拡張ウィンドウの生成上限という認識なのですが
徐々に増やす可能性を考慮して余裕をみて100とかにすると重すぎますか?
また、あまり多すぎる値にしないほうが良いのでしょうか?
マップAが5つでマップBが20使用する場合ギリギリの20に設定しておいたほうが安全ですか?
少し疑問に思いましたのでご回答いただけたら幸いです。
アバター
フトコロ
記事: 1029
登録日時: 2017年2月06日(月) 21:32

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

投稿記事by フトコロ » 2017年5月02日(火) 11:45

にゃたま さんが書きました:こちら拡張ウィンドウの生成上限という認識なのですが
徐々に増やす可能性を考慮して余裕をみて100とかにすると重すぎますか?
また、あまり多すぎる値にしないほうが良いのでしょうか?
マップAが5つでマップBが20使用する場合ギリギリの20に設定しておいたほうが安全ですか?
少し疑問に思いましたのでご回答いただけたら幸いです。

負荷についてはさまざまな要因で変わりますので、実際に試してみて動作に問題なければ、100でも大丈夫だと思います。

後は、マップ毎に生成する数を設定できるようにする機能を検討してみます。
---------------------------------------------------------------------------------------------------
プラグイン置き場(GitHub)
https://github.com/futokoro/RPGMaker/blob/master/README.md

検討中の内容は上記リンク先の「対応するかもしれないプラグインのメモ」を参照してください。
アバター
ビービー
記事: 308
登録日時: 2016年1月12日(火) 18:40

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

投稿記事by ビービー » 2017年5月02日(火) 13:46

こんにちは。
横から失礼します。

こちらのプラグインを使用し
プレイヤーが近づくと自動で話しかけてくるイベントを作成しようとしたところ
二点ほどできない事があったので
可能であれば機能を追加していただきたいので書き込ませていただきました。

追加していただきたい機能ですが
まず一点は
マウス異動で移動したり決定ボタンを押してしまうとウィンドウが消えてしまうので
移動ルートのスクリプトで文章を表示した場合にもウィンドウを終了禁止にする機能が欲しいです。
スクリプトまたは制御文字で可能にしていただけるとありがたいです。

二点目は
プレイヤーとイベントの距離をスクリプトで判定するイベントで
セルフスイッチを切り替えることで話しかけてくるイベントを作成しているのですが
現状一定距離内、一定距離外で決定ボタンを押さないとウィンドウが更新されないので
スクリプトでの文章の表示の強制終了ができると助かります。

具体的には
セルフスイッチA=OFFの場合、移動ルートのスクリプトで”EMW_メッセージウィンドウ強制終了 1”
セルフスイッチA=ONの場合、移動ルートのスクリプトで$gameSystem.setMessagePopupEx(1, 3)
                          $gameMessageEx.window(1).add('\\EMP文章')終了禁止
ということがやりたいのです。

こちら二点の機能追加、ご検討よろしくおねがいします。

参考までにプレイヤーとの距離でセルフスイッチを切り替えるイベントのスクリプトを書いておきます。

コード: 全て選択

var player = this.character(-1);
for(var i = 1; i <= 23; i++){
var unit = this.character(i);
if(!unit){ continue; }
var x = player.x - unit.x;
var y = player.y - unit.y;
var v = Math.sqrt(x*x+y*y);
if(v <= 6){
$gameSelfSwitches.setValue([$gameMap.mapId(), i, "A"], true)
}else if(v > 6){
$gameSelfSwitches.setValue([$gameMap.mapId(), i, "A"], false)
}}
------------------------------------------------------
Twitterやってます。
https://twitter.com/BB_ENTER
ブログもやってます。
http://bb-entertainment-blog.blogspot.jp/
アバター
にゃたま
記事: 837
登録日時: 2016年1月13日(水) 23:53
お住まい: 床下の猫王国-すみませんが体調悪いのでサポートはお休みさせていただきます
連絡を取る:

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

投稿記事by にゃたま » 2017年5月02日(火) 14:43

>フトコロ様

フトコロ さんが書きました:後は、マップ毎に生成する数を設定できるようにする機能を検討してみます。


検討していただきありがとうございます。
拡張ウィンドウ使わないマップでも重くなるのもアレですしね。
マップのメモ欄にタグで数値入力できるといいですね!
タグがなければプラグインの初期値を使う感じで。
それでは正座でおまちしております。

>ピーピー様

マウス移動での動作までチェックしていませんでした。
確かにマウスが動作できないと困りますね。
フトコロ様こちらもお手数おかけしますがよろしくお願いします。
アバター
フトコロ
記事: 1029
登録日時: 2017年2月06日(月) 21:32

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

投稿記事by フトコロ » 2017年5月02日(火) 17:57

>にゃたまさん
>ビービーさん

お世話になっております。
プラグインの機能更新しました。

1. マップメモ欄でウィンドウID生成数を設定するタグを追加しました。
以下のタグで、マップ別に設定できます。
<EMW_生成数: x>
x : ウィンドウIDの生成数

2. ウィンドウの終了禁止、終了許可、強制終了のスクリプトを追記しました。

<ダウンロード>
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

検討中の内容は上記リンク先の「対応するかもしれないプラグインのメモ」を参照してください。
アバター
ビービー
記事: 308
登録日時: 2016年1月12日(火) 18:40

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

投稿記事by ビービー » 2017年5月02日(火) 19:13

スクリプトの追加ありがとうございます。

さっそく試したところ、おおよそ思い描いた通りの動作を確認しました。
ただ二点、こちらのイベントの組み方のミスかもしれませんが
わからないことがあったので教えていただけると助かります。

まずどのようにイベントを組んだのか説明させていただきます。

前回の書き込みで書いた通り、並列処理のイベントで距離を計測してセルフスイッチのON/OFFを切り替えています。

コード: 全て選択

◆スクリプト:var player = this.character(-1);
:     :for(var i = 1; i <= 23; i++){
:     :var unit = this.character(i);
:     :if(!unit){ continue; }
:     :var x = player.x - unit.x;
:     :var y = player.y - unit.y;
:     :var v = Math.sqrt(x*x+y*y);
:     :if(v <= 6){
:     :$gameSelfSwitches.setValue([$gameMap.mapId(), i, "A"], true)
:     :}else if(v > 6){
:     :$gameSelfSwitches.setValue([$gameMap.mapId(), i, "A"], false)
:     :}}
◆ウェイト:10フレーム

このようなイベントです。

そして文章の表示をするイベントですが、
まず一ページ目は白紙で移動ルートのスクリプトのみ

コード: 全て選択

◇スクリプト:$gameMessageEx.window(2).terminate()


二ページ目はセルフスイッチAをトリガーに設定し、移動ルートのスクリプトで

コード: 全て選択

◇スクリプト:$gameSystem.setMessagePopupEx(2, 3)
◇スクリプト:$gameMessageEx.window(2).prohibitClose()
◇スクリプト:$gameMessageEx.window(2).add('\\EMPA ON')

イベント内容が

コード: 全て選択

◆プラグインコマンド:EMW_メッセージウィンドウ強制終了 2
◆プラグインコマンド:EMW_メッセージウィンドウリセット
◆プラグインコマンド:MWP_VALID [0]
◆文章:なし, ウィンドウ, 下
:  :aaaaaaa
◆セルフスイッチの操作:A = OFF
◆ウェイト:10フレーム
◆セルフスイッチの操作:A = ON

という感じです。

本題のわからない二点ですが、
一点目は、近づいてスイッチAがONになりA=ONが表示され、離れると消えるのですが
もう一度近づいても表示されません。
マウス移動だと表示されます。
どうやら一度スイッチAがONになっている状態で決定ボタンを押さないと
強制終了後にもう一度文章を表示できないようです。
こちらの解決策はありますでしょうか?

二点目は、
話しかけた後にもう一度、移動ルートの設定で設定したウィンドウ(A=ON)を表示したくて
◆文章:なし, ウィンドウ, 下
:  :aaaaaaa
◆セルフスイッチの操作:A = OFF
◆ウェイト:10フレーム
◆セルフスイッチの操作:A = ON
という風にしているのですが、なぜかゲーム開始時の一回目だけ反応してくれず
A=ONのウィンドウが表示されません。
もう一度話しかけた後からはちゃんと表示されます。
こちらも解決策があれば教えていただけると助かります。

まとめると
・プレイヤーがイベントに近づき6マス以内に入るとセルフスイッチAがONになる
・トリアコンタンさんのプラグインでイベントの頭上にA=ONとウィンドウが表示される
・離れると消える
・また近づくと表示される
・話しかけるとaaaaaaと文章が表示され、終わるともとのA=ONに戻る
といった感じです。

もし現在の機能でできないのであれば、機能を追加していただきこの動作が可能になるとありがたいです。
よろしくお願いします。

それとgithubのマニュアルが追記されたスクリプトの項で表題と説明が入れ替わっているようです。
プラグインのヘルプの方が正しいようでしたので、お伝えしておきます。
------------------------------------------------------
Twitterやってます。
https://twitter.com/BB_ENTER
ブログもやってます。
http://bb-entertainment-blog.blogspot.jp/
アバター
フトコロ
記事: 1029
登録日時: 2017年2月06日(月) 21:32

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

投稿記事by フトコロ » 2017年5月02日(火) 19:43

ビービーさん

まずマニュアルの誤記の件ご連絡ありがとうございます。
早速修正しました。

さて、ご質問の件ですが

1点目については、文章表示後の入力待ちをしないように制御文字「\^」を追加するとうまく動きます。

コード: 全て選択

◇スクリプト:$gameMessageEx.window(2).add('\\EMPA ON\\^')


2点目については、申し訳ないですが良く分かりませんでした。
こちらでも、イベント内容や移動ルートの設定を合わせてみましたが、ゲーム起動後に「A ON」のウィンドウが表示しました。
これは、1点目の修正をする前も同じです。
---------------------------------------------------------------------------------------------------
プラグイン置き場(GitHub)
https://github.com/futokoro/RPGMaker/blob/master/README.md

検討中の内容は上記リンク先の「対応するかもしれないプラグインのメモ」を参照してください。
アバター
ビービー
記事: 308
登録日時: 2016年1月12日(火) 18:40

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

投稿記事by ビービー » 2017年5月02日(火) 20:19

二点目ですが、
起動後A=ONが表示中に話しかけた場合aaaaaaの表示後A=ONが表示されず
もう一度話しかけた後からでないとA=ONが表示されないというものでしたが
一点目の解決策として教えていただいた制御文字を入れることで解決したようです。

一点目も解決し、今のところ完璧な動作になりました。

素晴らしいプラグインをありがとうございます。
------------------------------------------------------
Twitterやってます。
https://twitter.com/BB_ENTER
ブログもやってます。
http://bb-entertainment-blog.blogspot.jp/

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