FTKR_CSS_MenuStateを利用して、メニュー画面に現在掛かっているステート一覧を表示したい

るみー
記事: 4
登録日時: 2021年1月16日(土) 10:07

FTKR_CSS_MenuStateを利用して、メニュー画面に現在掛かっているステート一覧を表示したい

投稿記事by るみー » 2021年1月16日(土) 13:33

こんにちは、はじめまして
最近セールにてMVを購入しました、るみーと申します
よろしくお願いいたします

-------------------------------------------------------------------------------------------------------------------
自作メニュー作成についての質問
 ↓ ↓ ↓
FTKR_CSS_MenuStateを利用して、メニュー画面に現在掛かっているステート一覧を表示したい

※質問要点を整理したため、当初の投稿内容はそのまま 改題させていただきます。
-------------------------------------------------------------------------------------------------------------------


掲題の件「独自項目の多い自作メニュー画面の作成の手法と改善点」について相談させてください

まず、自分が考えているメニュー画面は以下画像の通りです
ステータス画面案.png


【要件】
①パーティはひとりのみを想定
・キャラクターはひとりのみで、途中増減はしない想定です。
・tomoaky様の「TMSoloMenu」の動き(各種メニューからキャラ選択の手間を省く等)は理想的だったのですが、
 メインメニューに表示できる項目数や内容に限界があったため、
 途中で フトコロ様の「FTKR_CSS_MenuStatus」に変更しています。
・この「各種選択の手間を省く」動きに関して、独立したプラグインはありますでしょうか??

②各種ステータス、独自項目を表示したい
・上記の通り、基本は「FTKR_CSS_MenuStatus」で項目を表示しています。
 ※名声や依頼達成数などの可変する数値は、それぞれ変数に保存したものを取り出す という方法をとっています
 ※残経験値のみ、TMSoloMenu の「あとxxxx exp」を表現したいのですが、文字サイズ可変が実現できていません

③現在かかっているステート(アイコン+名称)を表示したい
・ステート(バフ)をもりもりにして戦うゲームを想定していたので、メニュー画面に表示したいです。
 ※いわゆる「パッシブスキル系」のプラグインも考えていましたが、いったんステートでの実装にしました。
・FTKR~で「現在のステート」を一覧表示する方法がわからなかったので、
 (用途として正しいかわかりませんが)トリアコンタン様の「DTextPicture」を使い、
 現在掛かっているステートを取得→その分だけプラグインコマンド(D_TEXT~)を実行する??という方法を使って、
 「画面上の任意の場所に現在のステート一覧」を表示しています。
-----
【スクリプト】で実行

コード: 全て選択

// 現在かかっているステートとステートのアイコンを取得
var states     = $gameParty.members()[0].states()
var stateIcons = $gameParty.members()[0].stateIcons()

// メニュー画面表示限界数(10個)まで表示実行(DTextPicture)
var cntLimit = 10, cntShowLimit = 0
for(var i=0; i < states.length; ++i) {
    if (cntShowLimit >= cntLimit) {
        this.pluginCommand('D_TEXT', ['\\C[27]\\oc[black]\\ow[3]...他', '18']); break;
    }
    var iconId = stateIcons[i] ? stateIcons[i] : 0
    var args = ['\\I['+iconId+']\\C[27]\\oc[black]\\ow[3]' + states[i].name, '18']
    this.pluginCommand('D_TEXT', args); cntShowLimit++;
}

-----
 ↓ ↓ ↓ ↓
D_TEXT \I[5]\C27]\oc[black]\ow[3] テンション 18
D_TEXT \I[5]\C27]\oc[black]\ow[3] テンション+ 18
D_TEXT \I[5]\C27]\oc[black]\ow[3] テンション++ 18
・・・
ピクチャ表示(DTextPicture)
-----

 「DtextPicture」を使った課題として「メニューを開いたタイミングで表示」するためのタイミングに困っていることです。
 奏ねこま様の「CommonEventBeforeAfter」では開く直前に表示されてしまったり、ステート更新時の反映ができない
 トリアコンタン様の「MenuCommonEvent」でDtextPicture実行を試してみましたが、並列実行のために徐々に重くなっていく?ようでなかなかうまく行きません

④立ち絵の表示
 まだ構想段階ですが、ステートや装備によって複数パターン出せたらなと思っていますが
 とりあえず上記の課題を片付けてからにしようと思っています。
 ※メニューや通常マップ、戦闘シーンでの立ち絵表示に関して、おすすめのプラグインがあれば是非教えて頂けると嬉しいです。。


長々と書いてしまいましたが、「メニュー画面に任意の文字列を好きな場所に配置する」ことが思っていたより難しく
かなり強引な手を使っている感覚がするので、改善点や実現に向けたアドバイス頂けると嬉しいです!

よろしくお願いいたします
最後に編集したユーザー るみー on 2021年1月19日(火) 22:03 [ 編集 2 回目 ]

アバター
ムノクラ
記事: 2011
登録日時: 2018年2月23日(金) 11:41
連絡を取る:

Re: 自作メニュー作成についての質問

投稿記事by ムノクラ » 2021年1月16日(土) 14:55

るみー さんが書きました:こんにちは、はじめまして
最近セールにてMVを購入しました、るみーと申します
よろしくお願いいたします

掲題の件「独自項目の多い自作メニュー画面の作成の手法と改善点」について相談させてください

まず、自分が考えているメニュー画面は以下画像の通りです
ステータス画面案.png

【要件】
①パーティはひとりのみを想定
・キャラクターはひとりのみで、途中増減はしない想定です。
・tomoaky様の「TMSoloMenu」の動き(各種メニューからキャラ選択の手間を省く等)は理想的だったのですが、
 メインメニューに表示できる項目数や内容に限界があったため、
 途中で フトコロ様の「FTKR_CSS_MenuStatus」に変更しています。
・この「各種選択の手間を省く」動きに関して、独立したプラグインはありますでしょうか??

②各種ステータス、独自項目を表示したい
・上記の通り、基本は「FTKR_CSS_MenuStatus」で項目を表示しています。
 ※名声や依頼達成数などの可変する数値は、それぞれ変数に保存したものを取り出す という方法をとっています
 ※残経験値のみ、TMSoloMenu の「あとxxxx exp」を表現したいのですが、文字サイズ可変が実現できていません

③現在かかっているステート(アイコン+名称)を表示したい
・ステート(バフ)をもりもりにして戦うゲームを想定していたので、メニュー画面に表示したいです。
 ※いわゆる「パッシブスキル系」のプラグインも考えていましたが、いったんステートでの実装にしました。
・FTKR~で「現在のステート」を一覧表示する方法がわからなかったので、
 (用途として正しいかわかりませんが)トリアコンタン様の「DTextPicture」を使い、
 現在掛かっているステートを取得→その分だけプラグインコマンド(D_TEXT~)を実行する??という方法を使って、
 「画面上の任意の場所に現在のステート一覧」を表示しています。
-----
【スクリプト】で実行

コード: 全て選択

// 現在かかっているステートとステートのアイコンを取得
var states     = $gameParty.members()[0].states()
var stateIcons = $gameParty.members()[0].stateIcons()

// メニュー画面表示限界数(10個)まで表示実行(DTextPicture)
var cntLimit = 10, cntShowLimit = 0
for(var i=0; i < states.length; ++i) {
    if (cntShowLimit >= cntLimit) {
        this.pluginCommand('D_TEXT', ['\\C[27]\\oc[black]\\ow[3]...他', '18']); break;
    }
    var iconId = stateIcons[i] ? stateIcons[i] : 0
    var args = ['\\I['+iconId+']\\C[27]\\oc[black]\\ow[3]' + states[i].name, '18']
    this.pluginCommand('D_TEXT', args); cntShowLimit++;
}

-----
 ↓ ↓ ↓ ↓
D_TEXT \I[5]\C27]\oc[black]\ow[3] テンション 18
D_TEXT \I[5]\C27]\oc[black]\ow[3] テンション+ 18
D_TEXT \I[5]\C27]\oc[black]\ow[3] テンション++ 18
・・・
ピクチャ表示(DTextPicture)
-----

 「DtextPicture」を使った課題として「メニューを開いたタイミングで表示」するためのタイミングに困っていることです。
 奏ねこま様の「CommonEventBeforeAfter」では開く直前に表示されてしまったり、ステート更新時の反映ができない
 トリアコンタン様の「MenuCommonEvent」でDtextPicture実行を試してみましたが、並列実行のために徐々に重くなっていく?ようでなかなかうまく行きません

④立ち絵の表示
 まだ構想段階ですが、ステートや装備によって複数パターン出せたらなと思っていますが
 とりあえず上記の課題を片付けてからにしようと思っています。
 ※メニューや通常マップ、戦闘シーンでの立ち絵表示に関して、おすすめのプラグインがあれば是非教えて頂けると嬉しいです。。


長々と書いてしまいましたが、「メニュー画面に任意の文字列を好きな場所に配置する」ことが思っていたより難しく
かなり強引な手を使っている感覚がするので、改善点や実現に向けたアドバイス頂けると嬉しいです!

よろしくお願いいたします


プログラミングに知識のある方とお見受けしました。
要望が多く、全てにお応えする自信はありませんが、取り急ぎベースとなる1つ目をこれで解決できるでしょうか?

▼Dark Plasma Skip Command Personal(DarkPlasma様作) - DarkPlasma_SkipCommandPersonal.js
https://plugin.fungamemake.com/archives/23636
メニュー画面などでのキャラクター選択をスキップし、強制的に先頭のキャラクターを選択します。


「※残経験値のみ、TMSoloMenu の「あとxxxx exp」を表現したいのですが、文字サイズ可変が実現できていません」について、具体的にどのように表示しているのか詳細を知りたく思います。
---
JavaScriptの基本を学習せずにツクールのプラグインやスクリプトを使って横着してゲームを作ろうとしている人間です。
そのような者なので、適当な投稿をするかも知れません。
他の方の投稿を信用してください。
るみー
記事: 4
登録日時: 2021年1月16日(土) 10:07

Re: 自作メニュー作成についての質問

投稿記事by るみー » 2021年1月16日(土) 23:33

> ムノクラさま
プログラミングに知識のある方とお見受けしました。
要望が多く、全てにお応えする自信はありませんが、取り急ぎベースとなる1つ目をこれで解決できるでしょうか?

▼Dark Plasma Skip Command Personal(DarkPlasma様作) - DarkPlasma_SkipCommandPersonal.js
https://plugin.fungamemake.com/archives/23636
メニュー画面などでのキャラクター選択をスキップし、強制的に先頭のキャラクターを選択します。

ありがとうございます!
まさしく希望通りのプラグインです・・!!

プログラムはコピペであれこれやってどうにか、、という感じでしたので
プラグイン側で実現可能ならまずはそれでやってみて、といった気持ちで進めています・・!


「※残経験値のみ、TMSoloMenu の「あとxxxx exp」を表現したいのですが、文字サイズ可変が実現できていません」について、
具体的にどのように表示しているのか詳細を知りたく思います。

すみません、こちら言葉足らずでした
状態としては「TMSoloMenuの表示を FTKR_CSS_MenuStatus で表現しようとして苦戦している」です。

まず、TMSoloMenu での「残り経験値表示」は、表現や設定のしやすさという点で以下メリットがあるなと感じました
①設定値「expNextText」のみで「あとxxxxx exp」の表示ができること
②基準となる文字サイズより若干小さいこと(サイズ調整がされていること)
③表示位置は「menuLevel」のゲージ位置に合わせて自動調整されること
④残経験値のケタ数に応じて横幅が可変し、文字全体が右寄せになっていること
TMSoloMenuでの残経験値表示.png
TMSoloMenuでの残経験値表示.png (212.36 KiB) 閲覧数: 2058 回


今回お借りしたプラグイン「FTKR_CSS_MenuStatus」では上記を実現するのに
①文字表示、②サイズ調整 はそれらしいことができたのですが・・
・「カスタムパラメータ」の仕組みを使って「あとxxxxx exp」の表示
・※文字サイズ調整には別途 木製ペンギン様の「MPP_MessageEX」で追加した制御文字(\FS[x])を併用
FTKRCSSの設定.png
FTKRCSSの設定.png (19.26 KiB) 閲覧数: 2058 回

③表示位置調整、④桁数に応じた調整 を実現しようとしたのですが
・文字は基本的に左寄せのため「あと~」と「必要経験値」の間に大きな余白ができてしまう
・上記解決のため横幅を狭めてみましたが、一定値以上無いと表示が崩れてしまいました
 (画像では240を下回ったあたりから徐々に内側が潰れていき、最終的に見えなくなってしまいました)
FTKRCSSの表示結果.png



・・・という経緯があり「DTextPicture」を使ってなんとかそれっぽい表現ができたのですが
別の「メニュー画面を開いたタイミングでの表示」の問題にぶつかってしまった、という状況です。

■DTextPictureでの方法
①文字表示、②サイズ調整 は「パーティ一人目の残り経験値」がとれたので、それをくっつけて表現
--------------------------------------------------

コード: 全て選択

var nokori = $gameParty.members()[0].nextRequiredExp()
var args = ['\\C[16]あと\\C[0] ' + nokori + '\\C[16]exp', '20']
this.pluginCommand('D_TEXT', args)

 ↓ ↓ ↓
D_TEXT あとXXXXXXexp 20
--------------------------------------------------

③文字位置調整、④桁数に応じた調整 は「D_TEXT が一行だと文字寄せができない」と書いてあったので、
無理やり「ただの全角スペース」を二行目に表示することで、複数行表示=右寄せ可能 にする、という手法をとりました
--------------------------------------------------
D_TEXT あとXXXXXXexp 20
D_TEXT □□□□□□□□□□ 20
--------------------------------------------------
※マップ上に表示していますが、メニューステータス画面上に表示したい
※背景色は透明にできるので、表示位置を経験値ゲージの上に調整しています
※画像では見やすくするのに背景色の指定や、確認用の文字(|)が入ってます
DTextでの残経験値表示.png
DTextでの残経験値表示.png (20.07 KiB) 閲覧数: 2058 回
最後に編集したユーザー るみー on 2021年1月16日(土) 23:48 [ 編集 1 回目 ]
るみー
記事: 4
登録日時: 2021年1月16日(土) 10:07

Re: 自作メニュー作成についての質問

投稿記事by るみー » 2021年1月16日(土) 23:35

全体で見ると小さな項目ですが、掲題の「自作メニュー作成」がどの程度できるか?どれだけ手間がかかるか?
を経験したかったので、色々試しているところです。
(皆さんはどういった風に実現してるのかな~、というのも含めて)

引き続きご意見募集したいのですが、一件のトピックで取り扱うには課題が多すぎる気もしています。
このあたりについてもご指摘ありましたらお願いいたします。
アバター
ムノクラ
記事: 2011
登録日時: 2018年2月23日(金) 11:41
連絡を取る:

Re: 自作メニュー作成についての質問

投稿記事by ムノクラ » 2021年1月16日(土) 23:58

るみー さんが書きました:全体で見ると小さな項目ですが、掲題の「自作メニュー作成」がどの程度できるか?どれだけ手間がかかるか?
を経験したかったので、色々試しているところです。
(皆さんはどういった風に実現してるのかな~、というのも含めて)

引き続きご意見募集したいのですが、一件のトピックで取り扱うには課題が多すぎる気もしています。
このあたりについてもご指摘ありましたらお願いいたします。


自分はこの2年程度しかツクール界隈に関わっていないという前提で感じていることですが…

1.質問に返信が付くと、他の人が返信しにくいらしい(そのうち解決するだろう、解決してるかもという感覚?)
2.1.により、複数の要素を1トピックに盛り込むと、一部しか解決していなくても「終了!」感が出ているっぽい。

ので、個別のトピックに分けられるケースは分けたほうが良いと思っています。

ただ、今回のケースは全てが連動していそうなので分けるのか迷うところですが…


メニュー画面の改変については、公式プラグイン(RPGツクールMVだと新規プロジェクトを作成した時に入っているプラグイン)の AltMenuScreen.js が非常に分かりやすく改変しやすいと思います。

また、コアスクリプト自体を書き換えていそうなので、そういう箇所は個人プラグイン化しておくことをお勧めします。
https://fungamemake.com/archives/12254


FTKR_CSS_MenuStatus は機能盛りだくさんで色々できるのですが、全体把握が難しく、作者が忙しそうなので、ヘルプが難しいです…

せめてもの、参考まとめです。
https://fungamemake.com/archives/835
※戦闘画面についてのまとめですが、基本的な設定方法は同じですし、作者のマニュアルはプラグイン最新版についてきていないという事情が…

おそらく、
・表示したい文字列と値を別々に設定する。
・それぞれに座標を幅を全て個別に指定。
すれば解決できそうな予感がします。

ピクチャ表示関連は、手前味噌(かつ他人のプラグインの改変ではありますが)ですが、下記を読むと、色々と分かりやすいかと思います。
構造が単純ですので…
https://fungamemake.com/archives/12214


※気になること
画像で3桁毎にカンマが入っているのはYEPシリーズのCore Engineとか入っているのでしょうか?
とりあえず、YEPシリーズは他のプラグインとの競合が多いので、想定通りに動かない原因の可能性は高いです。
---
JavaScriptの基本を学習せずにツクールのプラグインやスクリプトを使って横着してゲームを作ろうとしている人間です。
そのような者なので、適当な投稿をするかも知れません。
他の方の投稿を信用してください。
るみー
記事: 4
登録日時: 2021年1月16日(土) 10:07

Re: 自作メニュー作成についての質問

投稿記事by るみー » 2021年1月19日(火) 21:46

ムノクラ様

お返事ありがとうございます
読み返してみて、もう少し質問内容を絞って書くべきだったかな、と反省しております。
※特に「ステートや装備の状況に応じて変化する立ち絵を表示」は別に分けた方が良かったですね、、

「(FTKR_CSS_MenuStateを利用して)現在掛かっているステートを一覧表示したい」が優先的に解決したい事象です。
イチから作成(AltMenuScreen の改変)していくことで実現はできそうですが、
「FTKR~」がすごく便利なので、できればこれを併用した上で実現できるのが理想です・・
または、DTextPictureではそれっぽい表現を実現できたので、方法次第でなんとかいけないでしょうか・・

はYEPシリーズのCore Engineとか入っているのでしょうか?

はい、ご推察の通り YEP_CoreEngine, YEP_MessageCore を導入しています。
FTKR_CSS_MenuState(および FTKR_CustomSImpleActorStatus)のみを導入した状態で幅調整してみたところ
ある程度狭めると値部分が圧縮されてしまうのは通常通りのようでした。
※上から横幅 100, 120, 150, 200, 220
残経験値_幅指定.png
残経験値_幅指定.png (51.71 KiB) 閲覧数: 1943 回

ここも自分で調整して・・!という事ができればよかったのですが、
フリーテキストでとりあえず表示する分には難しくないので、ここに関してはいったん保留にしたいと思います。


引き続きご意見募集とさせていただきます
よろしくお願いいたします。

“MV:質問” へ戻る