モン○ン風、防具スキルプラグインの依頼

ぼぶのすけ
記事: 17
登録日時: 2023年9月23日(土) 16:40

モン○ン風、防具スキルプラグインの依頼

投稿記事by ぼぶのすけ » 2023年10月02日(月) 12:41

はじめまして。
今回、某有名アクションゲームであるモン○ターハ○ターに実装されております、防具の組み合わせでスキルを発動するといった内容の機能が欲しく、製作を依頼するという運びとなりました。
AIを使って試しに作っては見たものの、さすがに実装したい機能が難しすぎたのか、動作しない機能が大半でした。
(参考程度に、AIで作ったjsファイルをアップしておきます。)
プログラミングに関する知識はほとんど無く、AIに頼るしかない自分を助けてくださる有識者の方を探しております。
実際に製作して頂きたい機能は下記のようなものです。

【実装機能一覧】
1.メニューコマンドに「スキルポイント一覧」を表示(プラグインパラメータでON,OFFや、名前を変えられると使いやすいかもしれません)
2.「スキルポイント」ウィンドウの作成
3.スキルポイントシステムの作成
4・条件達成で自動発動するステート

詳細情報
1.メニューコマンドに「スキルポイント一覧」を表示させることは自力でできましたので、もしもっといい方法で表示できるなどがあれば勝手に書き換えてやってください。
2.「スキルポイント」ウィンドウの作成について、作成自体はできたのですが、思っている挙動はしてくれませんでした。現状、スキルポイントを表示するためのウィンドウは作成し、アクターセレクト機能も作成。アクター選択後にそのアクター専用のスキルポイントウィンドウに飛ばす。
ここまではできたのですが、肝心のスキルポイントを表示するという部分ができませんでした。
理想の挙動は専用スキルポイントウィンドウに入ると表のようなものが出てきて、そこに現在アクターが持っているスキルの名前と、そのポイント数が表示されるようなものですが、調べた感じ表を出力するのは難しそうな感じがしたので、専用ウィンドウに
スキルA: 3ポイント
スキルB: 8ポイント
のような感じで全然かまいません。
それと、これは実現不可能そうな機能なのでなくても構わないのですが、
スキルA: 3ポイント 現在の発動スキル=○○ 上位スキル発動まで○ポイント
スキルB: 8ポイント 現在の発動スキル=無し 上位スキル発動まで○ポイント
のように、現在の発動スキルや、次の同系統のスキル発動までのポイントを表示できたらいいかなとも思っております。
3.スキルポイントシステムの作成につきましては、防具・ステートのメモ欄を使用した方法を考えております。
このシステムでは、防具がスキルポイントを保有し、ステートが発動するスキルの役割を担います。
現状のコードでは、防具のメモ欄に<BobSkill: "tag", point>のような形で設定しており、タグというのがそのスキルの系統(モンスターハンターをご存じでなければ大変申し訳ないたとえなのですが、このタグというのが耳栓のような、そのスキルシリーズ?を表すものです。) で、ポイントがその防具が保有するポイント数です。
そして、ステートのメモ欄には<BobPoints: "tag", point>で記入し、タグがどのスキルシリーズかを認識させる要素で、ポイントがそのステートを発動させるために必要なポイント数です。
例えば、<BobSkill: "攻撃", 3>が記載された防具を着た際には、<BobPoints: "攻撃", 1>が記載されたステートが発動するといったイメージです。
また、<BobSkill: "耳栓", 20>の場合、<BobPoints: "耳栓", 3>の耳栓スキルは発動せず、<BobPoints: "耳栓", 13>の高級耳栓スキルが発動。のように、常に上位スキルを発動できればいいかなと考えております。
4.条件達成で自動発動するステートにつきまして、先ほどご説明させていただいたスキルの発動条件を満たしたとき、毎戦闘ターンの開始時にステートを自動で発動するという機能を付けたいと思っております。


かなり複雑な内容で、難しいご相談であることは重々承知しております。
アドバイスのみでも構いませんので、どなたかお助けいただければ幸いです。
また、必要な補足情報等ありましたらお申し付けください。
添付ファイル
BobArmorSkill.js
(12.35 KiB) ダウンロード数: 1 回

アバター
くろうど
記事: 263
登録日時: 2016年1月22日(金) 20:52
お住まい: 東京都
連絡を取る:

Re: モン○ン風、防具スキルプラグインの依頼

投稿記事by くろうど » 2023年10月03日(火) 19:08

こんばんは。

指定のゲームをプレイしたことがないのでどんな仕様なのか全く分からない点と、私にとって需要がないプラグインなので、私は作らないのですが、要件や仕様の勉強のために確認させてください。

尚、添付ファイルは未確認です。

1. どのような見た目および操作をするのですか?
画面のイメージ画像があると良いと思います。

2. スキルなのかステートなのか分からない
呼称は「防具スキル」となっていますが、実装上「ステート」で事足りる範囲の機能だと考えていいのでしょうか?

3. 防具とステートが何個なのか分からない
見落としてたら申し訳ないのですが、防具は何枠装備できるのか、1つの防具に何個の防具スキルがあって、戦闘中に発動するステートが何個なのか分かりません。

4. ポイントって消費するの?
ポイントは持っていれば良いものなのか、消費するものなのか分かりません。
防具を複数枠装備した時、合算するのでしょうか?

5. 「毎戦闘ターン開始時にステートを自動で付与する」のはバトルイベントで出来そう
以下がメモ欄のタグを味方全員分取得して、コンソールに表示するスクリプトです。
試しにバトルイベントのターン0などで動かしてみてください。

このスクリプトに書き加えて、最終的にステート番号を取得し、ステート付与することができれば、バトルイベントで実現できるかもしれません。

コード: 全て選択

const armorTag = $gameParty.members().map(member => member.armors().map(armor => armor.meta));
console.log(armorTag);

尚、バトルイベントを使う場合、バトルイベントを共通化するプラグインを探すと良いかと思います。

よろしくお願いします。
▼だいたいTwitterにいます。たぶん。
https://twitter.com/kuroudo119
ぼぶのすけ
記事: 17
登録日時: 2023年9月23日(土) 16:40

Re: モン○ン風、防具スキルプラグインの依頼

投稿記事by ぼぶのすけ » 2023年10月04日(水) 00:00

こんばんは。確かにご指摘のように説明が足りてない部分がありました。
後にもし制作してくださる方がわかりやすいように、指摘いただいた点の説明をさせていただきます。

1に関しましては、
見た目に関しては下記のようなものを想定しております。
Desktop Screenshot 2023.10.03 - 23.00.14.38.png

一番実装しやすいのは上側の文字列による表示だろうと考えており、コードのほうにもこのような処理を
書いているのですが、イメージしているゲームでは下側の表のような形式(発動状況項目につきましては完全にオリジナル要素)となっておりますので、もしプラグインの機能内で表が出力できるなら下側のほうがいいなと考えております。プラグイン制作に関しましてはAIに書いてもらうほどの全くの素人なので、表出力ができるのかもわからず、とりあえず理想挙動の二通りを挙げさせていただいております。
また、操作に関しましては、この画面はスキルの発動状況を見るためだけのウィンドウとなっているため、
ここからの操作はアクター画面に戻るためのキャンセル入力処理のみとなっています。
そして、画像では武器の項目が追加されていますが、これはあくまで試しに作った画像であり、実際の動作では防具のみスキルを指定できるものでも問題は無い形となっております。

2に関しましては、
「防具スキル」として新たにシステムを追加できれば良いですが、良い方法を思いつかなかったのと、
ステートの効果のみで実装できるかなと思ったので、指定ポイント数を上回ったらステートが発動するという
機能を持たせてやりたいと考えています。
ただ、「発動ステート」のような形にするのは個人的に面白みが無いなと感じてしまったので、名前だけでも新要素として「防具スキル」とさせていただいております。

3に関しましては、
装備できる防具枠数などは特に制限なく、装備中の防具のメモタグを取得してスキルポイントウィンドウに合計値を出力するといった形を想定しております。
また、一つの防具に設定できるスキル数や、戦闘中に発動するステートの上限にも制限はなく、いくらでも設定できるというのが頭の中にある構想です。
沢山のスキルを発動するとバランス崩壊が起きますが、そこはゲーム制作側が個人で調整する必要があるのかなと思っております。

4に関しましては、
ポイントは蓄積型を考えています。
例えばスキルAを発動するのに2ポイント必要だとして、アクターの所持ポイントが4ポイント。
消費する場合はスキルAを発動したら残りポイントが2ポイントとなりますが、そうすると上位スキルの発動難易度が一気に上がってしまう恐れがあるので、スキルAを発動しても所持ポイントは4ポイントのまま。
上位スキルであるスキルA2の発動条件である11ポイントを達成するときもポイントは消費せず、スキルA2を発動して残りポイントが11ポイントとなる。というのが理想です。
また、添付画像下側の表形式を見ていただければわかりますが、複数の防具を装備した際にはすべての防具のタグが合算され、合計値に応じてスキルを発動するというのを想定しております。

最後にスクリプトのアドバイスありがとうございます。
ただ、私自身ゲーム内でスクリプトを使用するという経験がなく、ステート番号取得や付与なども全く分からないので、せっかくいただいたアドバイスを無駄にしてしまうかもしれませんが、できる限り調べて試してみます。

沢山のご指摘・アドバイスありがとうございました。
アバター
くろうど
記事: 263
登録日時: 2016年1月22日(金) 20:52
お住まい: 東京都
連絡を取る:

Re: モン○ン風、防具スキルプラグインの依頼

投稿記事by くろうど » 2023年10月04日(水) 11:21

おはようございます。
詳細情報ありがとうございます。

最初の書き込みに全てを書き切るのは現実的には不可能なので、「やりたいこと」を書いて説明不足な点は質問を受け付ける形式が良いかと思います。
ただ、私の場合、質問のやり取りするのが億劫なのでコメントするのはレアケースですが。

というわけで、今回の疑問点は、前回の1番への回答で表が出てきたことについてです。
スキルと防具が交差しているセルの値はなんなのでしょうか?

防具が持つポイントは全スキル共通の値だと思っていたのですが、スキルごとに値があるように見えます。
ここ(防具と防具スキルの関係)は整理した方が良いかと思います。

■「アクター」が持っているデータ
- 装備している複数の「防具」
- 「防具」から得た所持ポイントを合算した値
- 複数の「防具」から得た複数の「防具スキル」

■「防具」が持っているデータ
- 「防具スキル」を使うための所持ポイント
- 複数の「防具スキル」

■「防具スキル」が持っているデータ
- 発動するステート番号(?)
- タグ
- 発動条件ポイント
(タグでグループ化?)
(何らかの条件?で「上位スキル」かどうか判断する)

のように「アクター」等それぞれの視点で整理してもらえればと思います。
▼だいたいTwitterにいます。たぶん。
https://twitter.com/kuroudo119
ぼぶのすけ
記事: 17
登録日時: 2023年9月23日(土) 16:40

Re: モン○ン風、防具スキルプラグインの依頼

投稿記事by ぼぶのすけ » 2023年10月04日(水) 13:34

こんにちは。
指摘ありがとうございます。順に説明していきます。

まず、全スキル共通の値とはどういうことなのでしょうか?
一番最初の投稿にて説明させていただいている通り、防具が持つメタタグは防具スキルの「タグ」とその「ポイント」となっています。
つまり、頭防具のメモ欄に<BobSkill: "スキルB", 6>と<BobSkill: "スキルC", 1>とある場合、この頭防具はスキルBとスキルCのポイントを保有し、他部位の防具にある共通のタグ(この場合はスキルBとスキルCのタグを持つ防具のタグ)とこの頭防具のポイントを合算し、指定数に達すればスキルBやCが発動するといった認識です。
全スキル共通の値に関しては私の理解力が及ばず、うまく説明できませんでした。申し訳ないです。

防具と防具スキルの関係については、表を見ていただければ分かる通り、頭防具はスキルBを6ポイント、スキルCを1ポイント持っている。
そしてスキルCのポイントを持つのは武器、頭、胴、装飾品。
というように防具の種類と保有ポイントで交差しています。

くろうどさんのテンプレート通りに説明するとしたら、
■「アクター」が持っているデータ
- 装備している複数の「防具」→頭、胴、腕、足など、プレイヤーが設定した防具のタイプ
- 「防具」から得た所持ポイントを合算した値→スキルBは頭、胴、足の合計8ポイントを保有。その他スキルA,C,Dも同様に計算。
- 複数の「防具」から得た複数の「防具スキル」→表のアクター「デバッグあか」はスキルA,B,Cの発動スキルのデータとスキルDの未発動スキルのデータを保有。

■「防具」が持っているデータ
- 「防具スキル」を使うための所持ポイント→<BobSkill: "スキルA", 4>の4の部分を所持ポイントとして保有。
- 複数の「防具スキル」→頭防具の場合はスキルBとCのデータを保有。

■「防具スキル」が持っているデータ
- 発動するステート番号(?)→番号ではなくタグを保有。詳しくは下記で。
- タグ→ステートのメモ欄にて<BobPoints: "スキルA", 2>と記載があり、防具で取得したポイントが2以上の場合にメモ欄に<BobPoints: "スキルA", 2>と書かれたステートを発動する。
- 発動条件ポイント→<BobPoints: "スキルA", 2>の2の部分が発動条件ポイントとなっています。
(タグでグループ化?)→おっしゃるとおりです。防具とステートで合うタグを認識し、条件ポイントと保有ポイントを照らし合わせます。
(何らかの条件?で「上位スキル」かどうか判断する)→例えばステート1番に<BobPoints: "スキルA", 2>と記載があり、ステート2番に<BobPoints: "スキルA", 11>と記載があった場合、タグスキルAにおける防具の合計保有ポイント数<11まではステート2番の発動条件を満たしていないため、同じタググループで条件を満たしているステート1番を発動する。
防具の合計保有ポイント>=11となった場合、ステート2番が自動で発動され、下位スキルであるステート1番は無効化されるといったイメージです。

上記の説明でちゃんと解説しきれているでしょうか?
今までプラグインの製作依頼をしたことがなく、説明の仕方もいまいち分からずな状態なので困惑させているということが多いと思われます。
申し訳ありません。
アバター
くろうど
記事: 263
登録日時: 2016年1月22日(金) 20:52
お住まい: 東京都
連絡を取る:

Re: モン○ン風、防具スキルプラグインの依頼

投稿記事by くろうど » 2023年10月04日(水) 18:04

こんばんは。

とりあえず、「全スキル共通の値」は私の誤認識の産物なのでスルーしてもらって構いません。
尚、今後も誤認識は生まれると思います。

あと、文章に適宜改行および空白行を入れてもらえると読みやすくなって助かります。

というわけで本題ですが、
書いてもらった内容で、やっと「防具スキル」と表が結びつきました。

■アクター
■防具
■防具スキル

の中に「■防具スキルのタググループ」を加えれば良さそうです。

1個の「■防具スキルのタググループ」には、
- 実際に付与するステート番号(複数)
- ↑上の中で発動可能なステート番号(最上位のみ?)

が含まれる感じでしょうか?
この認識で良さそうか、他の要素が抜けていないか、確認いただければと思います。

あと問題になるのは「どういうゲーム(ジャンル)」を作っているのかですね。
特に言うと「戦闘中に装備の変更があるのかどうか」です。

よろしくお願いします。
▼だいたいTwitterにいます。たぶん。
https://twitter.com/kuroudo119
ぼぶのすけ
記事: 17
登録日時: 2023年9月23日(土) 16:40

Re: モン○ン風、防具スキルプラグインの依頼

投稿記事by ぼぶのすけ » 2023年10月04日(水) 23:13

お疲れ様です。

「全スキル共通の値」の件は了解です。
誤認識については私の説明力不足もありますので、わかりにくいときはどんどん聞いていただいて構いません。

また、文章の読みにくさに関しても申し訳ありませんでした。
今後は読みやすい文章を心がけていきますのでよろしくお願いいたします。

「■防具スキルのタググループ」に関しまして、含まれる要素としては、
=================================================================================
- 実際に付与するステート番号 (下位,上位含めた複数)
- 発動可能なステート番号(発動条件となっているポイント数を満たしたものでグループ内の最上位)
=================================================================================
となっており、くろうどさんの認識で間違いありません。
一応最上位についての認識を再確認するため例を挙げさせていただきますと、

<BobSkill: "スキルA", 14>の防具を装備しており、
<BobPoints: "スキルA", 3>のステート番号1と、<BobPoints: "スキルA", 11>のステート番号2があった場合、
防具がどちらの発動条件も満たしているため、よりポイントの大きいステート番号2がスキルAグループの
最上位スキルとして認識され、ステート番号2のみが戦闘中に発動される。

といった具合になっています。

そして作っているゲームジャンルとしては、「高難易度コマンドバトルRPG」となっており、
ARPGなどでもなく戦闘中の装備変更も無いゲームとなっております。

なぜ制作中のゲームでこのプラグインが必要になったかを参考までに説明させていただきますと、

- 高難易度ということで強力な敵が多数出現する
- 上記のような場合、普通の防具に実装できる機能のみでは対応しきれない敵が出現する
- 頭も使うゲームにしたく、防具の組み合わせで攻略難易度が変わるとゲームを深く楽しめそう

といった観点からこのようなプラグインを実装できれば面白くなるんじゃないかなと考えた次第です。

上記の文をお読みになって、疑問点などありましたらまたお気軽にお申し付けください。
よろしくお願いします。
アバター
くろうど
記事: 263
登録日時: 2016年1月22日(金) 20:52
お住まい: 東京都
連絡を取る:

Re: モン○ン風、防具スキルプラグインの依頼

投稿記事by くろうど » 2023年10月05日(木) 16:43

これは私の誤認識とその訂正の独り言なのですが……、

■「防具」が持っているデータ
- 「防具スキル」を使うための所持ポイント→<BobSkill: "スキルA", 4>の4の部分を所持ポイントとして保有。
- 複数の「防具スキル」→頭防具の場合はスキルBとCのデータを保有。

■「防具」が持っているデータは正確には、
「防具スキル」(=1個のステートと考えていた)ではなく「防具スキルのタググループ(仮称)」と書いた方が良さそう。
▼だいたいTwitterにいます。たぶん。
https://twitter.com/kuroudo119
ぼぶのすけ
記事: 17
登録日時: 2023年9月23日(土) 16:40

Re: モン○ン風、防具スキルプラグインの依頼

投稿記事by ぼぶのすけ » 2023年10月06日(金) 01:31

なるほど。

確かに「防具スキル」にしてしまうと防具のスキルとして考えれてしまうかもですね。
くろうどさんが仰ったように防具が持っているのは「防具スキルのタググループ」として説明するほうがいいかもしれません。

訂正アドバイスありがとうございます。
アバター
くろうど
記事: 263
登録日時: 2016年1月22日(金) 20:52
お住まい: 東京都
連絡を取る:

Re: モン○ン風、防具スキルプラグインの依頼

投稿記事by くろうど » 2023年10月07日(土) 02:04

プラグインを作る気は無かったのですが、内部処理だけ作りました。

本当に内部処理とプラグインコマンドがひとつあるだけです。

防具とステートのメモ欄に json の書式で書いたデータを元に、パーティメンバー全員にステート付与します。
バトルイベントで戦闘開始時にプラグインコマンドを実行する想定です。

jsonの書式を間違えるとすぐにエラーになりますのでご注意ください。

↓うちのGitHubに置いてあります↓
https://github.com/kuroudo119/RPGMV-Plu ... teGroup.js

尚、画面を作る予定はありませんので、プレイヤー向けには、防具の説明欄などに書いてください。
▼だいたいTwitterにいます。たぶん。
https://twitter.com/kuroudo119

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