【一旦解決】SceneCustomMenuの使い方でお聞きします

ヒグラシ
記事: 94
登録日時: 2019年8月03日(土) 21:00

Re: SceneCustomMenuの使い方でお聞きします

投稿記事by ヒグラシ » 2020年6月28日(日) 10:33

論理イヌ様

論理イヌ さんが書きました:同時に再描画したいウィンドウの数だけスイッチを用意して、使いまわせば大丈夫だと思います。
おそらく1つか2つで十分?


自分もその方法でいけると思ったんですが一つのシーンに複数のウィンドウがあると
ウィンドウが再描画された時点でスイッチがオフになる仕様のため
一つのウィンドウしか再描画されないようです。
ですので全てのウィンドウに対してスイッチが必要のようです。

論理イヌ さんが書きました:1つのトピックで1つの質問の方がいいと思うので、このトピックは解決済みにしていただいたほうがいいかもです。
新しい困りごとがでたら、その都度トピックを作った方が、わかりやすいですからね!


論理イヌ様の仰られる1つのトピックで一つの質問という考え方も正しいと思います。
ただそうも思ったんですが自分的にはわからないことが度々発生するので
その度にトピックを作ると乱立してしまってそれもどうなのかなぁと思ってしまったり…
大抵このプラグインの使い方に関することばかりなので
(このプラグインはヘルプが比較的あっさりしていて細かいところがわかりにくい場合がありますので)
使い方としてまとめてしまったほうが合理的かなと。
ということでシステムが完成するまでもうしばらくお付き合いいただけましたら幸いです。

論理イヌ さんが書きました:「項目描画で指定したメモ欄のピクチャを表示できる機能」は私もすっっごく欲しかったので、うれしかったです!!


個人的にこのプラグインを使うならなくてはならない機能だと思っています。
このプラグイン以外ではこのように簡単にピクチャを挿入できるものは見たことがありません。
用語辞典も素晴らしいプラグインだと思いますがピクチャの挿入位置とかウィンドウサイズ及び配置とか
融通がききにくい部分もあるのでオリジナル度を高めたいと思うならこちらに軍配があがると思います。
ただし専門的な知識がいる部分があるので(やや上級者向け)簡単に実装したいのなら
用語辞典を使う方法もありますけど。ただあちらではアイテムを使うことしかできないので
アイテムごとにいろんな処理をしたい場合はこちらのプラグイン一択ですね。

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

Re: SceneCustomMenuの使い方でお聞きします

投稿記事by トリアコンタン » 2020年6月28日(日) 14:06

こんにちは!

自分もその方法でいけると思ったんですが一つのシーンに複数のウィンドウがあると
ウィンドウが再描画された時点でスイッチがオフになる仕様のため
一つのウィンドウしか再描画されないようです。
ですので全てのウィンドウに対してスイッチが必要のようです。


全てのウィンドウの再描画は一応可能ですがパフォーマンス上の懸念があります。
ウィンドウ再描画スイッチを使い回した場合に、全てのウィンドウが再描画されるよう仕様に変更することで対応できるならパフォーマンスへの影響が最小限で済むのですが、この仕様でも問題ないでしょうか。
プラグイン関連のトラブルが発生した際の切り分けと報告の方法です。
http://qiita.com/triacontane/items/2e227e5b5ce9503a2c30

[Blog] : http://triacontane.blogspot.jp/
[Twitter]: https://twitter.com/triacontane/
[GitHub] : https://github.com/triacontane/
ヒグラシ
記事: 94
登録日時: 2019年8月03日(土) 21:00

Re: SceneCustomMenuの使い方でお聞きします

投稿記事by ヒグラシ » 2020年6月28日(日) 14:35

トリアコンタン様

トリアコンタン さんが書きました:全てのウィンドウの再描画は一応可能ですがパフォーマンス上の懸念があります。
ウィンドウ再描画スイッチを使い回した場合に、全てのウィンドウが再描画されるよう仕様に変更することで対応できるならパフォーマンスへの影響が最小限で済むのですが、この仕様でも問題ないでしょうか。


はい!スイッチが全てのウィンドウで再描画できるように設定できるのならそれでも構いません。
既存の機能を維持しつつ便利につかえるのでしたら是非ともお願いします。

トリアコンタン様の余裕のある時で構いません。お手数おかけしますがよろしくおねがいします。
ヒグラシ
記事: 94
登録日時: 2019年8月03日(土) 21:00

Re: SceneCustomMenuの使い方でお聞きします

投稿記事by ヒグラシ » 2020年6月29日(月) 20:57

お世話になっています。作業中、使い方で聞きたいことができました。
アイテムリストで項目のなかにスクリプトを実行した結果の値を入れたいです。

アイテムのメモのタグに例えば<num:10>のように数値を入れています。
このタグが存在する場合はアイテム名の右横に()で囲んでタグ内の数値(2以上)を入れたいと思います。
そしてタグが存在しない場合(item.meta.numがundefinedの時)はなにも入れないこととしたいと思います。
(つまりは前に投稿したスクショのような感じですがあれはアイテム名に直接数値を追加していますが
これを上記のようなタグ形式にしたいのです)

つまり項目描画スクリプトのthis.drawText()内にif文等のスクリプトを実行した結果を
表示するようなことはできませんか?

これができるとやれることが無限大に広がります。
もしご存知であればやり方をご教授くださいますと助かります。
それでは用件のみですが失礼します。
論理イヌ
記事: 186
登録日時: 2020年3月13日(金) 13:05

Re: SceneCustomMenuの使い方でお聞きします

投稿記事by 論理イヌ » 2020年6月29日(月) 22:30

毎度こんばんは。

ダメ元で「ツクール this.drawTextEx 条件」という頭悪い検索ワードで検索したところ、
viewtopic.php?t=2977
上記のトピックスがヒットしました。
回答内容の「三項演算子(条件演算子)」を打ち込んだところ、たぶん動きました。

コード: 全て選択

this.drawTextEx(`${item.meta.num ? item.meta.num : '表示しない'}`, r.x, r.y, r.width); // 任意のテキスト描画(制御文字変換あり)

この'表示しない'を空白にするなり「''」にするなり。

ただ、他のプラグインが悪いのか、私の環境では2つ目以降のアイテムが表示されない気がします。
三項演算子について理解できていないので、もし表示されない場合は、他の方にお任せしたいです……。
ヒグラシ
記事: 94
登録日時: 2019年8月03日(土) 21:00

Re: SceneCustomMenuの使い方でお聞きします

投稿記事by ヒグラシ » 2020年6月29日(月) 23:23

論理イヌ様

ヒントをありがとうございます。できました!!
そのままでは目的の表示にならなかったので以下のようにしたら想定通りになりました。

コード: 全て選択

this.drawText(`${item.name}${item.meta.num >= 2 ? '('+item.meta.num+')' : ''}`, r.x+35, r.y, r.width-80); // 任意のテキスト描画(制御文字変換なし)

3項演算子というものを初めて使ってみましたがかなり強力でした。
if文使わなくてもできてしまうんですねぇ…if文を強引にいれてみようとしたんですができなかったんですorz
タグが存在しないときや値が2以上のときのみ()をつけて値とともに表示してねってことが
簡単にできてしまうだなんて…想定外。

あと1点ついでに聞きたいんですが
this.drawText()内にゲーム変数の値を「変数1」「変数2」と続けて入れるにはどうすればよいでしょう?
(追記:2点あったうちの1点は解決しました)

何度も本当にすみません。自分でも調べてはいますがわからないことがまだ多いです。
今後もまた出てくると思います。お返事くださいますと嬉しいです。

<追記>
ゲーム変数の件で以下のようにすることでゲーム変数の値自体は取得できました。
一覧取得スクリプト:$gameVariables.value(18);
項目描画スクリプト:this.drawText(`${item}}`, r.x, r.y, r.width, 'right'); // 任意のテキスト描画(制御文字変換なし。右揃え)
ただこれですと一つのウィンドウに2つの変数を続けて表示することができません。
一つのウィンドウに「(変数1)-(変数2)」と続けて表示する方法はありますか?

以下のようにしたら続けてゲーム変数表記でき自己解決しました。ありがとうございました。
一覧取得スクリプト:true
項目描画スクリプト:
this.drawText($gameVariables.value(18)+` - `+$gameVariables.value(19), r.x, r.y, r.width, 'right'); // 任意のテキスト描画(制御文字変換なし。右揃え)
最後に編集したユーザー ヒグラシ on 2020年6月30日(火) 22:23 [ 編集 1 回目 ]
ヒグラシ
記事: 94
登録日時: 2019年8月03日(土) 21:00

Re: SceneCustomMenuの使い方でお聞きします

投稿記事by ヒグラシ » 2020年6月30日(火) 20:02

お世話になっております。
製作中少し気になることがありました。

シーンが起動したらすぐアイテムリストにフォーカスがいきますが
アイテムリストからXキーでキャンセルもしくはマウスで右クリックによる
キャンセルをしてもキャンセルイベント(コモンイベントの実行)
が発生しませんでした。シーンのメニュー自体は消えることを確認しています。

「キャンセル可能」項目はtrueとなっています。
自分以外の方でこちらの機能は動作していますか?
尚、決定イベント、カーソルイベントに関しては動作を確認しています。

<追記>
キャンセルイベントについてシーン終了時以外は動作していました。
シーン終了時にキャンセルイベントを行いたいのですが…困りました(泣)
アバター
トリアコンタン
記事: 2311
登録日時: 2015年11月10日(火) 21:13
お住まい: きのこ王国
連絡を取る:

Re: SceneCustomMenuの使い方でお聞きします

投稿記事by トリアコンタン » 2020年7月02日(木) 09:04

こんにちは!

シーン終了時はコモンイベントは実行できません。
これはプラグインの仕様となります。
スクリプトは実行できるはずなので、そちらでの代用をお願いします。
プラグイン関連のトラブルが発生した際の切り分けと報告の方法です。
http://qiita.com/triacontane/items/2e227e5b5ce9503a2c30

[Blog] : http://triacontane.blogspot.jp/
[Twitter]: https://twitter.com/triacontane/
[GitHub] : https://github.com/triacontane/
ヒグラシ
記事: 94
登録日時: 2019年8月03日(土) 21:00

Re: SceneCustomMenuの使い方でお聞きします

投稿記事by ヒグラシ » 2020年7月02日(木) 10:13

トリアコンタン様

ヒントをありがとうございます!キャンセルイベント内にスクリプトが存在することを見落としていました。
スクリプトでなら動作するんですね!$gameTemp.reserveCommonEvent(3)のようにしてみたところ
コモンイベントを動作させることができました。ありがとうございました。


別件になりますが…
画像のとおり貴重品カテゴリを追加したいと思いますが以下の項目が可能かどうかお聞かせください。
①特定のウィンドウフォーカス時に特定のボタンで起動するコモンイベントを分けれますか?
②インデックス格納変数を設定すると選択されている箇所のインデックスをゲーム変数に入れることができますが、その逆にゲーム変数で指定されているインデックス位置に変更することはできますか?
③フォーカスされてなくてもクリックで選択できませんか?

この3点ができれば画像のようなことができそうな気がします。
お返事おまちしています。



<追記>
助言をおねがいします…
ウィンドウ内の文字に制御文字と右揃えをしたいのですがdrawTextだと制御文字は使えず右揃えでき
drawTextEXだと制御文字が使えるかわりに右揃えできませんが
なんとか制御文字と右揃えを兼ねて表示することはできませんか?
何故これがしたいのかというと文字色の変更と右揃えを兼ねたいためです。

トピックが長くなってしまいすみません。
あまり長くなりすぎるのも恐縮しますので上記の問題が解決したら
一旦こちらのトピックは解決済みとして別途作ることにします。
最後に編集したユーザー ヒグラシ on 2020年7月27日(月) 18:59 [ 編集 1 回目 ]
アバター
トリアコンタン
記事: 2311
登録日時: 2015年11月10日(火) 21:13
お住まい: きのこ王国
連絡を取る:

Re: SceneCustomMenuの使い方でお聞きします

投稿記事by トリアコンタン » 2020年7月06日(月) 22:59

①についてはコモンイベント内で条件に応じて処理を分岐させれば実現可能です。
プラグイン側で呼び出すコモンイベントを分けるのは、実装の複雑さが増し、今後の運用保守に影響がでるので対応は難しいです。

②については、スクリプトから任意のウィンドウのインデックスを変更できる機能を追加しました。よろしければお試しください。

1.6.1 2020/07/06 任意のウィンドウのインデックスをコモンイベントなどから変更できるスクリプトを追加
https://raw.githubusercontent.com/triacontane/RPGMakerMV/master/SceneCustomMenu.js

③については、①と同様にプラグイン側での対応は難しいです。②で追加したスクリプトとうまく使えばイベントで実現することは可能だと思います。

追記部分については、コアスクリプトで用意されている関数の仕様となるためここを改変することは難しいです。changeTextColorという別のスクリプトが凡例に用意されているので、これを使えば文字色と揃えの変更の両立ができるかもしれません。
プラグイン関連のトラブルが発生した際の切り分けと報告の方法です。
http://qiita.com/triacontane/items/2e227e5b5ce9503a2c30

[Blog] : http://triacontane.blogspot.jp/
[Twitter]: https://twitter.com/triacontane/
[GitHub] : https://github.com/triacontane/

“MV:質問” へ戻る