ページ 11

【解決済み】数値入力の処理で入力途中の数字を反映させる方法

Posted: 2021年8月14日(土) 17:04
by toko
タイトルの件で、わからないことがあり質問させていただきます。

例えば、鍛冶を依頼するイベントを作っていて

材料1:アイテムID1を3(v1)個
材料2:アイテムID2を2(v2)個
できあがるもの:アイテムID3 1(v3)個

というものがあったとき、アイテムID3をいくつ作りますか?
という数値入力の場面で、2個や3個を指定したとき(まだ決定は押していない)に、材料1と材料2の数値も比例させて表示させるにはどうしたらいいでしょうか?
(例えば、2個に表示を変えたら 材料1の必要数v1が6に、材料2の必要数v2が4個に切り替わる形です。)

1個ではなくどうしても複数個の入力をできるようにしたくて、トピックやネット上の記事を探し回ったのですが、自分の力では見つけることができませんでした。


これさえできれば目標にしていたものが出来上がるので、どうしても知りたいと思っております。
立て続けの質問になってしまい申し訳ありませんが、どうぞよろしくお願いいたします。

Re: 数値入力の処理で入力途中の数字を反映させる方法

Posted: 2021年8月16日(月) 11:34
by リクドウ
こんにちは

「数値入力の処理」および「質問者様が実現したい鍛冶イベントの全体像」が
質問文を見る側からはイメージしづらいため、現状では回答がつきにくいのではないかと思います。
 →数値入力の処理と一口に言っても、
  ショップシーン等で売買する際の数値入力のことを指しているのか、
  それともイベントコマンドの「数値入力の処理」のことを指しているのか。

例えば、Tomoaky様の「欲張りショッププラグイン」(TMGreedShop.js)なら
合成シーンのように見せることもできるので、ご希望の動作を実現できるのではないかと思いますが、
自作の鍛冶シーンを実装したいということなのでしょうか?

※欲張りショッププラグインはこちらからダウンロードできます
https://plugin.fungamemake.com/archives/2361

また、先日のカスタムメニュー作成プラグインに関するご質問と、関連があるでしょうか?
viewtopic.php?f=23&t=11743
 →もしカスタムメニューで実現させたいということであれば
  ガイドできるかもしれませんので(必ずしも実現できるというお約束はできかねますが…)
  詳細を教えていただきたいなと思う次第です。

また、MV向けの合成シーン用のプラグインは上記の例以外にも複数あると思います。
それらを使用せずに自作したい理由があるようであれば、
その事情をご説明いただいたり、実現したい鍛冶イベントの詳細を
もっと具体的にご説明いただけると、協力を得られやすくなると思います。

ご検討いただけますと幸いです。

Re: 数値入力の処理で入力途中の数字を反映させる方法

Posted: 2021年8月17日(火) 23:11
by toko
リクドウ様
ご返信ありがとうございます!

実は前回アドバイスをいただいた後、リクドウ様のサンプルプロジェクトを参考にしながら、
アイテム情報の詳細を連動して表示したり、所持/必要個数を表示したりと、ほとんど最後の部分までは作ることができました。何度も何度もリクドウ様のプロジェクトを読み直させてもらったおかげです。本当にありがとうございます。

ところが、最後、作成個数選択の所で複数選択をしたかったのですが、リクドウ様は1個の処理で合成をしていたので、複数選択をする場合の表記の仕方がわからず困ってしまった次第です。


個数選択の処理(イベントコマンド1ページ目の3つ目のものです)をカーソルイベントのコモンイベント内に組みこめば、その入力に従って必要なアイテム数も変動するだろうと考えたのですが、個数選択の処理ウインドウが用意したカスタムメニューウインドウと別扱いになってしまって(作ったウインドウの中に格納されない形で)入力も反映されず、動作もおかしくなってしまい、そこで手詰まりになってしまいました。

それで個数選択の処理をカスタムシーン内ではなく、マップに戻って変数テキストで呼び出して処理を・・と考えたのですが、カスタムシーンのようにカーソルが動いた時の動作の指定ができないので、結局個数選択時にほかの材料を比例表示することができず、このような質問をさせていただく形に至りました。


合成プラグインは海外の物もほとんど全部調べて実行させていただいていて(もちろん、欲張りショップ様もです!)、それでも自分がやりたいこと(アイコンではなく一つ一つ画像を表示したいとか)の細かいこだわりが実現できるプラグインがどうしても見つからなくて、なんとか作ってみたい!と思って挑戦している次第であります。

現時点では、シーンカスタムメニュープラグインを使って、何とか個数選択の処理ができる方法をみつけるか、数値の比例表示はあきらめて、マップの方のイベントでそれらしい続きを再現するかしかないのかなという形で悩んでいます。

リクドウ様に質問できるなんてめったに起こらないチャンスだと思っているので、質問させていただきたいです。
シーンカスタムメニュー内で個数選択の処理をすることは可能でしょうか?

長い文章になってしまい申し訳ありません。
どうぞよろしくお願いいたします。

Re: 数値入力の処理で入力途中の数字を反映させる方法

Posted: 2021年8月18日(水) 12:11
by リクドウ
こんにちは
ご事情理解いたしました。

サンプルプロジェクトを活用してくださりありがとうございます。
説明や解説がやや不足していることは自覚しており、
分かりにくい点もあったかと思いますので申し訳ありません。
サンプルはあくまでも「こんなシーンも作れるよ」というデモンストレーションの意味合いが強いので、
合成するアイテムの個数を可変にするのがベターとは思いつつも、
より複雑になって理解しづらくなることを懸念し、断念した経緯があります。


試しに作成してみたところ、カスタムメニュー作成プラグインで作った独自シーンに
数値入力用のコマンドウインドウを追加し、
作成数の数値が変わるたびに素材の必要数も増減する挙動は、カーソルイベントで実装できそうです。
現状は雑なレイアウトですが、テスト用に作ったシーンのスクショを添付します。

▼シーンを開いた直後は、1個あたりの作成に必要な素材の数を表示するようにしています。
scene_001.png
▼作成数の増減に合わせて素材の必要数が増減する動作は実装できそうです。(カーソルイベント)
scene_002.png
▼素材の所持数を参照して最大何個作れるかを表示しています。
 それを超えた入力は受け付けないようにするのも可能です。(条件分岐)
scene_003.png
今回は、文章と画像だけで実装方法をご説明するのは少々厳しいので、
MVのサンプルデータをお渡しできるように整えてみますので、少しお時間ください。
ただ、プレイヤーにとって分かりやすい操作が実現できるかどうかはまだ分からないので、
期待し過ぎずにお待ちいただけるとありがたいです…

あくまで参考用のテストシーンの作成にはなりますが、
差し支えなければ下記について教えていただけると助かります。
・アイテム所持数の上限はいくつでしょうか?(デフォルトは99個)
・一度に作成できる個数に上限を設ける予定はありますか?(一度に作れるのは10個まで等)
・素材の消費以外に、費用も発生しますか?
※詳細はまだ決まっていないということでしたら、こちらで想定して作ってみます。


なお、ツクールフォーラムで公開しているサンプルプロジェクトでの合成シーンは、
所持数の上限を超えて作成しようとした場合などは想定していなかったり、
(上限を超えて作成できてしまうので、その分の素材や費用が無駄になる)
そのほか細かい部分で穴もあると思うので、ご注意いただければと思います。

あまり複雑な実装になると、チェックの手間が相当かかってくると思いますので、
合成シーン専用プラグインとのメリットデメリットを比較して
どの手段をとるかご検討いただければ幸いです。

ちなみに、私は出現率高い方なんじゃないかと思うので、
遭遇するのはそれほどレアケースではないかも…(コイツいつも出てくるなーみたいな…)
なので、何かありましたらお気軽にどうぞ

Re: 数値入力の処理で入力途中の数字を反映させる方法

Posted: 2021年8月18日(水) 13:03
by toko
リクドウ様
ご返信ありがとうございます。
いえいえ、ところどころに親切な注釈があって、自分にはとてもわかりやすかったです。
共有して下さったことに本当に感謝しています。

数値入力の件、もしよろしかったら是非参考にさせていただきたいです!
・アイテムの所持上限は99個のデフォルトです。
・作成個数上限は作成可能な最大個数を越えなければいくつでも大丈夫です
・費用は発生しません

です。

なんとか作り上げたいと思う反面、リクドウ様が挙げて下さったような自分の知らない細かい穴に直面してしまったとき、なんとかする手段が乏しいのでそこはどこまで踏み込むべきなのかというところも悩んでいる状態です。
あまりにも複雑な処理になりすぎてしまうようなら、同トリアコンタン様の用語辞典をベースとして使って続きを再現するという方法の勉強も進めております。
最終的には、できそうなプラグインでの表現方法を自分のできる範囲で勉強して、自分にとって難しすぎないものを選んで進んでいこうと思っております。

お手数をお掛けいたしますが、どうぞよろしくお願いいたします。

(あはは、そうなんですね。でもカスタムメニュー作成の件ですぐにリクドウ様からアドバイスをいただけたなんて、やっぱり自分は幸せ者です。お気遣いありがとうございます!)

Re: 数値入力の処理で入力途中の数字を反映させる方法

Posted: 2021年8月20日(金) 20:51
by リクドウ
お待たせしております。

情報ありがとうございます。
現在サンプルデータを作成中なのですが、
決定イベントに指定したコモンの実行に関して原因の分からない不備が発生してしまっており、
解決にちょっと手間取っております。

サンプルをアップできるのは明日頃になりそうです。
恐れ入りますが、もう少々お待ちいただければと思います。

Re: 数値入力の処理で入力途中の数字を反映させる方法

Posted: 2021年8月21日(土) 16:56
by リクドウ
大変お待たせしました。
サンプルデータを作成したのでお試しいただければと思います。
2種類の鍛冶シーンを作成してみました。

◆Scene_TestA
イベントコマンド「数値入力の処理」を使って作成個数を入力させる方式です。
最大作成可能個数が1桁か2桁かによって、数値入力ウインドウの桁数も変動するようにしました。
こちらの方が実装は楽です。

▼「数値入力の処理」はキャンセルボタンが効かないので、0の入力でキャンセルできるようにしました。
Scene_A.png
◆Scene_TestB
イベントコマンド「数値入力の処理」を使わず、
シーン内に数値選択用のウインドウを作ってカーソル選択させる方式です。
カーソルを動かすたび素材の必要数が変動する作りになっているので、その分実装やチェックの手間が掛かります。
連続で作成を実行していると途中の処理で不具合が発生する場合があったので、
苦肉の策で、作成を実行する度にシーンを一旦閉じてから開き直すようにしました。

▼このままだと数値入力ウインドウの見栄えが良くないので、
 ウインドウスキンを変更するなどして、適宜カスタマイズしていただければと思います。
Scene_B.png
鍛冶に必要な素材は、カウンターのところにいるキャラから購入できるようになっています。

どちらのシーンも、最大作成可能数を超えた数値を入力すると、アラートが出るようになっています。
最大作成可能数は所持上限数(99)も含めて算出されるようになっているので、
例えば、ある武器を10個作成できる分の素材を持っていたとしても、
その武器の所持数が98の場合は「作成可能数」は1の表示になります。

必要素材の所持数が0の場合、または作成する武器の所持数が99に達している場合は
アラートが出て作成が行えないようになっています。

一通り動作チェックはしましたが、
不備が発生した場合や、分かりにくい点がある場合などはご遠慮なくお知らせください。
もちろん、別の解決策がありこちらのサンプルがご不要になる場合でも、
お気になさらないでください。

※追記※
サンプルを作ってはみたものの、スムーズな数値入力が実現できたとはちょっと言い難く、
質問者様のイメージ通りのものにはなっていない気がしているのですが、
今の私にできるのはここまでのようです。
もしかしたら、実現したいイメージに一番近い既存の合成専用プラグインに、
画像の表示などが追加できるよう、改変をリクエストする方がいいかもしれません。

-----------------------------------------------------------------------------------------------------------------
サンプルデータ(zipファイル)をダウンロードされる前に、
「ReadMe_はじめにお読みください.txt」に記載してある内容をお読みいただき、同意の上ご利用ください。

(サンプルデータは、質問者様以外の方でもご利用いただけます)
ReadMe_はじめにお読みください.txt
(4.21 KiB) ダウンロード数: 4 回
SceneCustomMenu_BlackSmithSample.zip
(16.61 KiB) ダウンロード数: 4 回
-----------------------------------------------------------------------------------------------------------------

Re: 数値入力の処理で入力途中の数字を反映させる方法

Posted: 2021年8月22日(日) 12:22
by toko
リクドウ様
ご返信ありがとうございます。
サンプルプロジェクトのおかげで、数値入力の処理も行うことができました!
本当にありがとうございます。

自分一人で悩んでいては絶対に思いつかないようなところがいくつもあって、カスタムメニュー作成プラグイン外でも使えそうなテクニックまで覚えさせていただいて、とても勉強になりました。

リクドウ様にアドバイスいただけたおかげで形にすることができて、感謝の気持ちでいっぱいです。
本当にありがとうございます!