ページ 1 / 1
【解決済】WindowBackImage.js 同じ場面で複数のパラメータ指定
Posted: 2020年8月11日(火) 14:24
by TEN
お世話になっております。
WindowBackImage.jsを使わせていただいているのですが、同じ場面で複数の設定を指定する事はできますでしょうか?
(例)
セーブ/ロード画面 ピクチャA スイッチ1
セーブ/ロード画面 ピクチャB スイッチ2
セーブ/ロード画面 ピクチャC スイッチ3 ……
パーティーの先頭キャラによってセーブ画面の画像を変えたいのですが、上記のように設定しても一番下に設定したパラメータのみ有効になるようでした。
同じ場面でスイッチにより画像を変える場合はどうしたらいいでしょうか?

- キャプチャ.PNG (123.52 KiB) 閲覧された回数 3724 回
↑ のように先頭キャラを参照して並列イベントを置き、WindowBackImage.jsのパラメータ内 ↓ のように複数の画像を指定しています。

- キャプチャ2.PNG (106.14 KiB) 閲覧された回数 3724 回
これではダメなようなのでどなたかわかる方、ご教授いただきたいです。
よろしくお願いいたします。
Re: WindowBackImage.js 同じ場面で複数のパラメータ指定
Posted: 2020年8月11日(火) 21:30
by 論理イヌ
条件分岐が違っているのではないでしょうか。
コード: 全て選択
$gameParty.members()[0].actorId() == 1
↑こちらを条件のスクリプトに入れると、「アクターID1の場合」になると思います。
参考:
Re: WindowBackImage.js 同じ場面で複数のパラメータ指定
Posted: 2020年8月12日(水) 00:12
by TEN
論理イヌ様 返信ありがとうございます。
お世話になっております。
コード: 全て選択
$gameParty.members()[0].name(1)
$gameParty.members()[0].actorId() == 1
どちらでも変わらずでした。
ちなみに条件分岐のテストとして
◆条件分岐:スクリプト:$gameParty.members()[0].name(1)
◆文章:あああ
:分岐終了
◆条件分岐:スクリプト:$gameParty.members()[0].actorId() == 1
◆文章:あああ
:分岐終了
どちらも試しました。
先頭がアクター1でゲームスタートすると「あああ」と文字の表示がされました。
ですのでスクリプトは間違っていないと思います。
WindowBackImage.jsにそういった機能がないのでしょうか……?
Re: WindowBackImage.js 同じ場面で複数のパラメータ指定
Posted: 2020年8月12日(水) 03:00
by Plasma Dark
先頭がアクター1でゲームスタートすると「あああ」と文字の表示がされました。
ですのでスクリプトは間違っていないと思います。
全く間違っています。
Game_Party.prototype.members の戻り値は Game_Actor の配列です。
Game_Actor.prototype.name は引数を要求せず、対象アクターの名前を返します。
$gameParty.members()[0].name(1) において、 name に渡している 1 は無意味な値です。
$gameParty.members()[0].name(1) であっても $gameParty.members()[0].name() であっても、結果は変わりません。
条件をこう書いた場合、先頭のアクターが誰であっても真になります。
また、パーティの先頭のアクターを取得する場合、 $gameParty.leader() という書き方も可能です。
先頭のキャラクターで分岐したい場合は $gameParty.leader().actorId() === アクターID の書き方で分岐すると良いでしょう。
このレベルであればまだ単純なのでどうにかなるかもしれませんが、スクリプトを書く場合は読んで意味を理解できるようにしておくことを推奨します。
理解できないままスクリプトを書き連ねると、メンテナンスできないものになってしまいます。
ところで、隊列変更で先頭を入れ替えてからセーブ画面にたどり着くまでにスイッチの書き換えを行うタイミングがない場合、要件であるところの 先頭キャラクターによってセーブ画面のウィンドウ背景を変更する が実現できないかと思います。
メニュー画面での隊列変更をさせず、イベントでのみ先頭キャラクターを入れ替えられるようにするのであれば問題はなさそうですが。
Re: WindowBackImage.js 同じ場面で複数のパラメータ指定
Posted: 2020年8月12日(水) 03:52
by TEN
Plasma Dark様 返信ありがとうございます。
私はスクリプトの知識が全くと言っていいほどなくて、先に載せていた条件分岐に使っているスクリプトもネットから見つけてきたもので、わからないままこうだろうと勝手に思い書いてしまいました。
Plasma Dark様が仰った通りにスクリプトで条件分岐をした所、先頭を入れ替える事で文章を表示する事はできました。
ありがとうございます。
しかし、なぜだかプラグインのほうが反応してくれなくて困っております。
パラメータに
セーブ/ロード画面 ピクチャ スイッチ1~
を15個作っているのですが、なぜか15番目のピクチャだけが表示された状態になります。
「一番下」のが表示されていると思っていたらそうではなくて、15番目に設定したパラメータと14番目に設定したパラメータを入れ替えても(つまり14番目に設定したものが一番下)、15番目のピクチャが表示されました。
そして試しにと思って、15番目に設定したものを消して14個のパラメータだけにしてみました。
そしたらセーブ画面に他のピクチャが表示されることはなく、通常通りの透明の背景?のままでした。

- キャプチャ.PNG (99.4 KiB) 閲覧された回数 3632 回
上記の画像の赤線の部分のパラメータを消しても他のパラメータで設定したピクチャが表示される事はありませんでした。
これは他に原因があるのでしょうか?
厚かましいですがもう少しお付き合いいただけると幸いです。
Re: WindowBackImage.js 同じ場面で複数のパラメータ指定
Posted: 2020年8月12日(水) 09:53
by トリアコンタン
こんにちは!
プラグインのご利用ありがとうございます。
WindowBackImage.jsには、スイッチの状態により画像を切り替える機能があります。
まず、この機能のスイッチ番号が適切に設定されているかをご確認ください。

- コメント 2020-08-12 094912.png (45.26 KiB) 閲覧された回数 3597 回
そのうえで一旦スクリプト、イベントは置いておいて、デバッグ画面(F9で表示)からスイッチを設定して、期待通りにプラグインが動作しているかどうかを確認すれば問題の切り分けができると思います。
Re: WindowBackImage.js 同じ場面で複数のパラメータ指定
Posted: 2020年8月12日(水) 10:12
by TEN
トリアコンタン様 返信ありがとうございます。
そして提案をして下さりありがとうございます。
その方法は思いつかなかったです……
デバック画面で確認した所、期待通りの動きをしていました。
という事はプラグインは問題ないのですね。
では、条件分岐のスクリプトが間違っているという事なのでしょうか?
当方全くスクリプトがわからないのでもう一度お聞きしたいです。
上記の画像でどこがわるいのかさっぱりわかりません……
先頭のアクターが1の場合、2の場合、3の場合……と続き全部で15まで条件分岐を作成しています。
どうすれば良いのかご教授いただけたら幸いです。
■試した事
・それぞれの条件分岐で先頭を変えて文章表示した(きちんと先頭を変えたら文章が表示されました)
・文章を無くしてスイッチに変えると(画像のように)セーブ画面が希望の画像にならない
Re: WindowBackImage.js 同じ場面で複数のパラメータ指定
Posted: 2020年8月12日(水) 11:05
by 論理イヌ
試してみましたが、こちらの環境では動作しました。
マップイベントで並列処理をしているので、一度メニューを閉じてマップに戻らなければ
スイッチは入れ替わりません。
もしメニューを閉じずに実行したいという場合は、
「メニュー内コモンイベントプラグイン」(
https://triacontane.blogspot.com/2017/11/blog-post.html)
を使って、コモンイベントで並列処理をするとできます。
(確認しました。)
「メニュー内コモンイベントプラグイン」を使う場合は、
コモンイベントを並列処理にしなくても、メニュー画面を開くと並列処理を実行してくれるので便利です。
一応、処理の内容を書きますが、記載していただいたのと一緒です。
コード: 全て選択
◆条件分岐:スクリプト:$gameParty.leader().actorId() === 1
◆スイッチの操作:#0001 a1 = ON
◆スイッチの操作:#0002 a2 = OFF
◆
:分岐終了
◆条件分岐:スクリプト:$gameParty.leader().actorId() === 2
◆スイッチの操作:#0001 a1 = OFF
◆スイッチの操作:#0002 a2 = ON
◆
:分岐終了
Re: WindowBackImage.js 同じ場面で複数のパラメータ指定
Posted: 2020年8月12日(水) 11:54
by TEN
理論イヌ様
並列イベントで一度メニューから戻っても起動されなかったため、紹介いただいたプラグインを導入する事にしました。
これは素晴らしいプラグインですね(^^♪
コモンイベントに用意して、これを導入したらメニューから並び替えしてもきちんと反映されました。
これで希望通りの事ができました。
ご助力いただいた論理イヌ様、Plasma Dark様、トリアコンタン様、本当にありがとうございました。
助かりました♪