ポ〇モンのようなスキル数に制限を与えて、スキルを「忘れる」システムを導入したい

Sakotsu3

ユーザー
ツクールMZで制作中です。

タイトルの通りなのですが、例えば覚えられるスキル数に制限を設けて、新しくスキルを覚えた際に、その設定した最大値を超えた場合に、忘れるスキルを選ぶ必要があるというシステムを導入したいと考えております。

意図としては、覚えられるスキル数を絞ることで、ゲームに緊張感や戦略が生まれると考えたからです。

いろいろ、調べているのですが、ぴったりなプラグインを見つけることが出来ず、何か情報をお持ちの方がいたらご教示いただけますと幸いです。

恐れ入りますが、よろしくお願いいたします。
 
プラグインを作ったことはないのですが、スクリプトを学んで何とかならないかとは考えております。

↑のページを参照して、スキルを覚えさせたり忘れさせたりすることが出来る構文?があるのだと知り、試してみようと考えました。

制作画面の「イベントエディタ」→「スクリプト」
→$gameParty.members[1].learnSkill(11)

これを入力して実行したら、

TypeError
Cannot read property 'learnSkill' of undefined

と出ました。よくわかりません。

そもそも、キャラが習得しているスキルの数をどのように変数として取得出来るのか分かりません。
スキルの最大数に達するレベルをあらかじめ決めておいて、あるレベルに達した時点で、
プレイヤーに忘れさせるスキルを決めさせるという仕様なら、デフォでゲームデータとしてレベルについては取得できるので、なんとかなりそうな気もします。

ただ、そのキャラが今現在覚えているスキルを画面に表示させて、選ばせるという仕様はなかなか手間がかかりそうです。

使えそうなプラグインなど知っている方がいましたら、ご教示いただけますと幸いです。
 
ここの記述って間違ってて、正しくは
$gameParty.members()[1].learnSkill(11)
なんですよね……。

さて、当該システムについてですが……
スキル習得・忘却のUIをどうするのかとか、新しいスキルはどうやって増やしていくのかとか、
ゲームデザインによって変わってくるかと思いますが、自分なら以下のようにします。
  1. 装備タイプに「スキル」を追加
  2. 装備タイプを「スキル」にした防具を作成し、特徴にスキル追加を設定
  3. 装備スロットを拡張できるプラグイン(例えば下記)を導入して、スキル装備を覚えられる数だけ増やすhttps://newrpg.seesaa.net/article/489626316.html
一度に覚えられるスキルの数が4~5個程度であれば、この方法が楽かなと思います。
スキル数が多いようなら、専用のUIを作った方がいいかと思いますが、それはけっこう大変そうですね。
 
pandaさん

ご回答ありがとうございます。

早速アドバイスいただいた通りにいろいろ試してみました。

1696234632888.png



アクターの装備のところでは、結構いい感じでした。


1696234572668.png



問題は、防具のところでスキル付与のための防具が表示されてしまうことです。

「防具タイプ:スキル」「装備タイプ:スキル」としているのですが、これを非表示にする方法などありますでしょうか。
現状、これをクリックしてしまうと、スキル付与以外ほとんど何もいじっていないせいか、

TypeError
this.item.effects is not iterable

と表示されてエラーになってしまいます。

また、別の問題として、レベルアップ時にスキルを覚えさせたいときに、どう処理をするのかということです。

キャラクターのレベルを変数に代入する方法を考えたのですが、特定のレベルに上がったタイミングで1度だけという処理の方法がどうしてもわからなくて困っています。

事前に、pandaさんが制作されたプラグイン「戦闘終了時に特殊処理」(http://www.werepanda.jp/blog/plugin/20201128023506.html)を事前に導入していたのですが、

戦闘終了後に「戦闘終了後スイッチ」をオンにして、戦闘終了前のレベルを代入していた変数「戦闘終了前レベル」と戦闘終了後のレベルを代入した「戦闘終了後レベル」を比較させて、イコールでないときにだけ、処理をさせるというようなことを考えたのですが、スキルを習得する各レベルで、それをやろうとすると、レベルアップの度にスイッチを用意する必要があるのかなど、効率的とは言えない作業が発生しそうなので、手が止まってしまいました。

単にスキル管理のための防具を全て非表示にして選択させないようにできれば一番いいのですが……。

恐れ入りますが、何かまたアイデアなどありましたら、ご教示いただけますと幸いです。
 
アイテム一覧にスキル付与用の防具が表示されてしまうのは、
特定の装備タイプをアイテム欄で非表示にするようなプラグインがあれば、解決しそうです。
軽く探した限りでは見つけられなかったのですが……。
おそらく Window_ItemList.includes のところを改造すればいいだけなので、そんなに難しくはないはず。

レベルアップ時にスキルを覚えるのは、
おっしゃるように戦闘終了前と後のレベルを比較することでできると思います。
1つのコモンイベントでやればいいので、スイッチは1つで済むと思いますが……。
あとは、レベルアップ時にコモンイベントを実行するようなプラグインはあったと思いますので、
それを導入するのが手っ取り早そうな気がします。
 
pandaさん

追加のご回答ありがとうございます。

いろいろ試してみた結果、スキル管理のための防具を非表示にする方法としては、従来の「装備固定」の方法を使えば、実現できそうな感じがしてきました。

アクターそれぞれに、スキル付与の防具は装備固定を設定して、前もって装備させることで、アイテム欄で表示されないことを確認しました。
装備中のアイテムは、アイテム欄に表示されないという仕様に気が付くことが出来ました。

そして、この「装備固定」の仕様を利用することで、自分が実現したかった「スキルを忘れる」システムもなんとか実現できそうです。

制御文字を拡張するプラグイン(https://tm.lucky-duet.com/viewtopic.php?t=12330)を利用することで、選択肢にキャラクターが覚えているスキルと、新しく習得したスキルを表示させて、選ばせるといったこともできそうです。

レベルアップ時にコモンイベントを実行するプラグインも導入してみました。ありがとうございます。理想は、バトル後の画面でスキルを覚えたことを表示させたいのですが、またそれは別でいろいろとリサーチしてみます。

作業量は増えていきそうですが、自分の実現したいものが何とか形になりそうなのでうれしいです。
pandaさんのおかげで、いろいろと見えてきたと思います。

まだまだ、問題が出てくるかもなのですが、とりあえずここまでありがとうございました!
 
意気揚々と締めくくったつもりだったんですが、新たにいろいろな問題が出てきたので、ここに書こうと思います。

スキルは装備固定にするので、プレイヤーが装備画面で自分で付けたり外したりすることは出来ないのですが、プラグイン「NRP_EquipSlot」(https://newrpg.seesaa.net/article/489626316.html)を導入してスキル付与防具を付けられる数を増やし、システム的に、複数のスキル付与防具を装備させようとすると、スキルを一つしか装備することが出来ず、上書きしかできません。


1696318498653.png



1696318402122.png



こうなったら、装備タイプを増やして、それぞれ独立させるしかないという風に考えてみたのですが、そうすると、それに併せて装備タイプ4種分のスキル付与防具を作らなくちゃいけなくなりそうなので、困っています。

可能であればもう少し管理のしやすいやり方がないかと模索しております。


1696318364713.png



これはプラグインとしてあるのかどうかわからないのですが、自分の目的としては、

・データベース上で、ある防具について現状1つしか選択できない装備タイプを、複数選択できるようにしたい(1つの防具の設定で、1番目から4番目のスキル全てで装備できるようにしたい
・もしくは、何らかの方法で、装備タイプを1つにしたまま、システム的に複数のスキルを装備させる(最初に自分が試した方法で、これが出来るのであれば一番いいのですが)


余談にはなるのですが、スクリプトレファレンスを見ていて気になるものがありました。


1696319686729.png



これを使って、アクターの装備をシステム的に変更するシステムが作れないかと考えていますが、難しいでしょうか。「配列」とあるので、
狙った位置の防具を変更できるのかと思ったのですが。。このあたりの知識が希薄なので、よくわかってないです。

分かる方がいましたら、お知恵をお借りいただけると幸いです。
 
装備固定にしているのは、アイテム一覧でスキル用の防具を非表示にするためだけですよね?

特定の装備タイプをアイテム欄で非表示にするようなプラグインでよろしければ、
簡単に作れたので、こちらを使ってみてください。
プラグインパラメータで非表示にしたい装備タイプの番号を指定すれば、
その装備タイプの防具はアイテム一覧には表示されなくなります。
 

Attachments

  • PANDA_HiddenEquipItem.js
    3.2 KB · 閲覧: 28
pandaさん 

ご対応ありがとうございます。

自分の書き方が整理されておらず、誤解されるような内容になってしまっていたかと思います。すみません。。

装備固定の主な目的は、スキルを自由に装備したり外したり出来るものではなく、スキルを覚えたときに何を忘れるかという選択をプレイヤーにさせることでした(戦略性が生まれると考えているので)。

アイテム欄で非表示にすることはすでに出来ていて、
問題は、同じ装備タイプ(スキル)のものをプラグインで増やしたとき、
スキル付与のための防具をイベントエディター上で複数装備させると、一つしか装備させることが出来ないということです。

これを装備タイプ(スキル)を4つなどに増やせば解決するかとも考えたのですが、そうなるとそれに対応して、4つの装備タイプ分の防具を作る必要がある(5つ目のスキルを覚えたときに、忘れるスキルを選ばせてそれと交換するときに選ばれた装備タイプのスキルが必要なため→スキルの種類は100を超えているので、500かそれ以上の防具を作る必要があること)ことや、「忘れる」システムを作るときに大変になりそうなので、可能であれば、装備タイプを防具に複数付与させる方法か、1つの装備タイプのまま、システム的に複数のスキルを装備させる方法がないかと考えております。

お忙しいなかすみません。。
自分でもいろいろ試してみて模索してみます。
 
最後に編集:
pandaさん

自分のリサーチ不足だったのですが、、
既に導入していた、同じ装備タイプのスロットを増やすプラグイン「NRP_EquipSlot.js」の解説ページの記述で、同じ装備タイプのスロットを増やした場合でも、「NRP_ChangeEquipment.js」を使えば、イベントコマンドを使った装備の変更に対応できるとありました。

早速試したところ、自分を悩ませていた部分が解決しました。


1696399645316.png



1696399718032.png



それぞれ、変数が使えるので、スキル管理用の変数を変えたときに自動で装備を変更するようなシステムも作れそうです。

pandaさんに制作していただいた特定の装備タイプをアイテム欄で非表示にするプラグインも、
スキルを覚えさせたり、忘れさせたりするときに、所持数を変更するのが面倒になりそうなので、スキル(とPスキル)の装備タイプを非表示にして、すべてのスキル分(×キャラ分)の防具を所持させるという方法に変えようと思います。早速試したところ、エラーもなく使えております。ありがとうございます。

頭のどこかで、出来ないだろうと考えている節があったので反省しました。
なので、これからは何か方法があるはずと考えながら、試していこうと思います。

いろいろとご迷惑をおかけしました。
 

Attachments

  • 1696399718349.png
    1696399718349.png
    807.3 KB · 閲覧: 18
最後に編集:
Back
トップ