開発日誌

テクニック

[ テクニック ] [ 素材 ] [ プラグイン/スクリプト ] 混乱付与・解除時の行動を改善

2025-07-24 00:49:55

混乱や激昂、魅了といった強制攻撃系のステートが付与・解除された時の、そのターン内の行動をより適切にするプラグインを公開しました。

RPGツクールMV/MZ両対応です。

※ 2025-09-12追記:混乱無効などのステートを付与すると、混乱が付与されていなくても行動がキャンセルてしまう不具合を解消しました。

ツクールの標準仕様では、混乱など行動制約が「敵/誰か/味方を攻撃」であるステートが付与された場合、そのターンでは攻撃が行われず、次のターンから混乱行動が開始されます。

また自分の行動順が回って来る前にステートが解除されると、通常攻撃が予定されたまま敵をランダムに攻撃してしまいます。

これは、混乱系ステートがかけられた際に予定の行動が通常攻撃で上書きされず、治った際にも予定の行動(通常攻撃)がクリアされないために起こる挙動です。

そういうものと割り切ってしまえばいいのかもしれませんが、混乱させられても次のターンで治せばほぼ無害なため、戦闘がぬるくなる要因となっています。

このプラグインを導入すると、こうした挙動が以下のように改善されます。

  • 混乱など行動制約が「敵/誰か/味方を攻撃」であるステートが付与された場合、同一ターン内で行動順が回って来た際にも、制約に従って敵や味方を通常攻撃します。
  • ステートが解除された場合は予定行動をキャンセルして、そのターン中は通常攻撃を行いません。

またツクールの標準仕様では、混乱中に睡眠など行動制約が「行動できない」であるステートが付与されると、予定行動がキャンセルされず、同一ターン内で解除された際に通常攻撃が発動してしまう問題がありますが、本プラグインはこの点も改善します。

質問やアドバイスなどはコメント欄まで、お気軽にお願いします。素材利用条件などについては、このサイトについての「提供素材について」の項目などをご覧ください。

[ テクニック ] [ 素材 ] [ プラグイン/スクリプト ] バフ・デバフの継続ターン数延長を防ぐ

2025-07-21 17:27:59

能力値の強化(バフ)や弱体(デバフ)が既にMaxに達している状態でさらに強化・弱体をかけようとした時、「これ以上は上がらない」旨のメッセージを表示し、継続ターン数もリセットされないようにするプラグインを公開しました。

RPGツクールMV/MZ両対応です。

昨日公開した「ステート重複付与無効プラグイン(PANDA_NoDuplicateStates.js)」のバフ・デバフ版です。

ステートと異なるのは、バフ・デバフの場合は重ねがけがあり得ること。

ツクールの標準仕様では2段階まで重ねがけが可能で、能力値の強化・弱体を1回かけるごとに1段階ずつ変動し、そのたびに継続ターン数がリセットされます。

ここで、既に最大の2段階まで強化・弱体がかかっている状態で、さらに強化・弱体をかけようとした場合、最大を超えてバフ・デバフがかかることはないものの、継続ターン数はリセットされます。そのためバフが切れる前にかけ直すことで、常にバフがかかった状態を維持することができてしまい、戦闘が単調になって作業感が出る恐れがあります。

このプラグインを導入すると、既に上限の段階までバフ・デバフがかかっている相手に、さらに同じバフ・デバフをかけようとすると、「もうこれ以上は上がらない/下がらない」といった戦闘メッセージを表示して、バフ・デバフの再付与はなされず、継続ターン数も上書きされません。

なお、例えば一度に2段階アップするスキルを、既に1段階アップしている相手にかけた場合は、1段階は上がっているため、「もうこれ以上は上がらない」旨のメッセージは表示されません。

プラグインパラメータで、既に上限に達している時に表示するメッセージを、強化と弱体でそれぞれ指定します。メッセージでは%1が対象者の名前、%2が対象の能力値の名前(「攻撃力」や「防御力」など)に置き換えられます。空欄の場合はメッセージは表示されません。

質問やアドバイスなどはコメント欄まで、お気軽にお願いします。素材利用条件などについては、このサイトについての「提供素材について」の項目などをご覧ください。

[ テクニック ] [ 素材 ] [ プラグイン/スクリプト ] 既にかかっているステートの重複付与を無効化

2025-07-20 18:24:08

既にステートにかかっている場合、同じステートには重複してかからないようにするプラグインを公開しました。

RPGツクールMV/MZ両対応です。(2025-07-29:MVにも対応しました)

ツクールの標準では、例えば眠っている相手に対して眠りのスキルを使った場合など、あるステートが既に付与されている状態で同じステートを付与しようとした場合、既に付与されているかどうかは関係なく、ステートの付与判定が行われます。

ここで判定が成功だと、同じステートが再度付与され、継続ターン数も上書きされます。

一方で失敗の場合は、「○○には効かなかった!」というメッセージが表示されますが、実際には元のステートがかかったままなので紛らわしいです。

このプラグインを導入すると、既にかかっているステートは再付与されないようになり、継続ターン数もリセットされません。また「既にかかっている」といった旨のメッセージを表示させることができます。

既にそのステートにかかっているかの判定は、ステートの付与成功判定に先立って判定されるため、失敗のメッセージが表示されることもありません。(ただし、スキル自体の成功率・命中率が原因で失敗した場合には、失敗のメッセージが表示されます)

具体的な設定方法は、プラグインパラメータで重複付与を禁止したいステートIDを指定します。

ここで指定したステートのみが重複付与無効の対象になります。指定されていないステートは標準通りの処理がなされます。

また、既にそのステートにかかっている時に表示する戦闘メッセージを指定します。%1が対象者の名前に変換されます。メッセージはアクターと敵とでそれぞれ指定可能です。特にアクターと敵とでメッセージを変える必要がなければ、両方に同じメッセージを指定してください。空欄の場合はメッセージが表示されません。

ランダムでステートが付与されたり、ターン経過でステートが変化したりなど、実際に付与されているステートと付与判定に使用するステートとが異なる場合があります。そのような場合は実際にかかっているステートを「判定用ステート」欄に指定します。判定用ステートは複数指定が可能です。

継続ターン数がリセットされなくなるので、例えば睡眠が効くボス敵にずっと睡眠をかけ続けて完封するとか、物理攻撃主体のボス敵にずっと暗闇をかけ続けるといった単調な戦法が通用しなくなります。

逆にずっと眠らされ続けて嵌められるといった事態も防げるので、理不尽な戦闘にならずに済むでしょう。

今後もいくつか、ツクールの標準戦闘の仕様で大味な部分を調整するプラグインを公開予定なので、お楽しみに。

質問やアドバイスなどはコメント欄まで、お気軽にお願いします。素材利用条件などについては、このサイトについての「提供素材について」の項目などをご覧ください。

[ テクニック ] [ 素材 ] [ プラグイン/スクリプト ] 任意のセルフスイッチをONに

2025-01-05 16:58:19

以前公開した「セルフスイッチ操作プラグイン」をv1.2.0にアップデートして、任意のセルフスイッチの消去に加えて、任意のセルフスイッチをONにすることもできるようにしました。

「プラグインコマンド」から利用する関係上、RPGツクールMZ専用となります。RPGツクールMVでは動作しません。

なお、既存の「セルフスイッチの消去」機能の使い方に関しては、過去記事「任意のセルフスイッチを消去」をご覧ください。

また、既存の「セルフスイッチの消去」機能にも、コモンイベントから呼び出すとエラーが起こりうる不具合が存在していたため修正しました。お手数ですがこの機会にアップデートをお願いします。

今回のアップデートで新たに「セルフルイッチのON(Set Self Switches)」のプラグインコマンドが使用できるようになります。

使い方は「セルフスイッチの消去」とほぼ同様で、対象のマップID、イベントIDを数字で、対象のセルフスイッチをA-Dで指定すると、該当のセルフスイッチをONにすることができます。

マップIDに-1を指定すると現在のマップが対象になります。

ただし既存の「セルフスイッチの消去」にあったような、全てのマップや全てのイベント、A-D全てのセルフスイッチに対して一括でONにするような機能はありません。

基本的にセルフスイッチは、ONになったセルフスイッチの情報のみを保持しており(持っていなければOFFと見なす)、保持しているもの全てを消すのは簡単にできますが、逆はマップデータから全てのイベントデータを読み込んでくる必要があって、処理コストが非常に高いためです。

質問やアドバイスなどはコメント欄まで、お気軽にお願いします。素材利用条件などについては、このサイトについての「提供素材について」の項目などをご覧ください。

[ テクニック ] [ 素材 ] [ プラグイン/スクリプト ] 数値入力ウィンドウをさらに強化

2025-01-04 11:38:34

以前作成した「数値入力ウィンドウ強化プラグイン」をv1.1.0にアップデートして、入力桁移動ボタンを設けたり、キャンセルボタンの位置を指定できる機能を追加しました。

RPGツクールMZ専用です。ウィンドウ系は仕様が異なるため、MVでは使えませんのでご注意ください。

なお今回追加された新機能以外の使い方は過去記事「数値入力ウィンドウを強化」をご覧ください。

もともとのプラグインでは以下の3点が可能でした。

  • キャンセルボタンで数値入力をキャンセル
  • 数値入力の前後に文字列を追加
  • 入力可能な数値の最小値・最大値を設定(固定値 or 変数)

今回のアップデートで上記に加えて以下の2点が可能になります。

  • 入力桁の移動ボタンを設置(位置指定可)
  • キャンセルボタンの位置指定

スマホのタッチUIの場合、入力桁の誤タップが発生しやすいため、入力桁の移動ボタンを付けられるようにしたい、というご要望をいただいての実装となります。もちろん左右キーでの桁移動は今まで通り可能です。

また桁移動ボタンの追加に伴ってボタンの数が多くなるため、桁移動ボタンおよびキャンセルボタンの位置を調整できるようにしました。

今回の追加機能は、個別に変更する必要性は感じない(場合によって桁移動ボタンがあったりなかったり、キャンセルボタンの位置が上にあったり下にあったりと変わるのは、UI的に好ましくない)ため、いずれもプラグインパラメータで指定する仕組みにしています。

プラグインパラメータは以下の4種類です。

桁移動ボタン有効
数値入力の際に入力桁の移動ボタンを表示するかどうかを指定します。ONにするとボタンを表示します。デフォルトはOFF(表示しない)です。
1桁の場合は非表示
入力数値が1桁の場合に、桁移動ボタンを非表示にするかどうかを指定します。デフォルトはONで、ONにすると入力数値が1桁だけの場合は桁移動ボタンが表示されません。OFFにすると入力数値が1桁でも桁移動ボタンが表示されますが、当然ボタンを押しても何も反応がないので紛らわしいと思います。
桁移動ボタン位置
桁移動ボタンを表示する際の表示位置を、左下・左上・上部中央の3種類から選びます。デフォルトは左下です。
キャンセルボタン位置
キャンセルボタンを表示する際の表示位置を、右下・右上の2種類から選びます。デフォルトは右下です。

▲デフォルトの桁移動ボタン左下、キャンセルボタン右下配置。少々窮屈……。

▲桁移動ボタン左上、キャンセルボタン右上配置。ウィンドウは上に拡張される。

▲桁移動ボタンを上部中央に配置。ボタンは重ならないように調整される。

▲入力値が1桁だけの場合は桁移動ボタンが非表示になる。

ボタンの位置は任意に指定できると良かったのですが、数値入力ウィンドウは入力桁数によって幅が変わりうるため指定方法が煩雑になってしまうのと、言うてこれら以外の配置にすることもそんなになかろうということで、選択式にしています。

もし用意した以外のボタン配置をしたい場合、プラグインの改造はご自由にどうぞ。変更が大がかりでなく汎用的だと思える要望であれば改修も可能ですので、ご要望をお寄せください。

質問やアドバイスなどはコメント欄まで、お気軽にお願いします。素材利用条件などについては、このサイトについての「提供素材について」の項目などをご覧ください。