開発日誌

素材

[ テクニック ] [ 素材 ] [ プラグイン/スクリプト ] ルビ表示プラグインを大幅機能拡張

2026-01-19 19:11:23

過去に公開した「ルビ表示プラグイン(PANDA_RubyText.js)」の機能を大幅に拡張しました。

旧バージョンとプラグイン名は同じであり、機能的にもアップデートであるため、旧バージョンを利用されていた方も今回の新しいバージョンに差し替えれば、そのままお使いいただけます。

ただし、独自のUI要素に合わせて改造されていたりした場合には、プラグインパラメータの再設定が必要になる場合もあります。念のため、旧バージョンのプラグインファイルをバックアップしておいてから新しいバージョンに差し替えて、支障が出ないか確認の上でご利用ください。

なお、テキスト表示周りの仕様が異なるため、前回に引き続きRPGツクールMZ専用のプラグインとなります。

2026-01-23追記:「選択肢の表示」の高さ調整に対応しました。

ルビプラグインの基本機能

この「ルビ表示プラグイン(PANDA_RubyText.js)」は、RPGツクールMZが発売された1ヶ月後くらいに公開したかなり古いものですが、拙作プラグインの中でも非常に好評いただいているプラグインです。

具体的には{漢字|かんじ}のように、ルビ(ふりがな)を振りたい文字を{ }で囲んで、|の手前に漢字、後ろにルビを記述すれば、ルビ付きのテキストとして表示されるようになります。

この手軽さと、「文章の表示」によるメッセージテキストだけでなく、アクター名、職業名、スキル名、アイテム名、敵キャラ名、およびスキルやアイテムの説明文や、戦闘メッセージ、マップ名など、必要と思われる場所は基本的に全てルビ表示に対応している点で、非常に便利なプラグインとなっていました。

今回の拡張機能

そんな便利なプラグインでしたが、不満がないわけではありませんでした。

今回、その不満点をできる限り解消し、Version 2としてアップデートしました。

フォントサイズ変更時の不具合修正

メッセージの表示では制御文字の\{\}\FS[n]でフォントのサイズを変えることができます。

行の途中でフォントサイズを変えた時、本来は文字が行の高さの中央揃えになるべきところ、このルビプラグインを導入していると上辺に揃ってしまうという不具合がありました。

自分ではフォントサイズの変更を使うことがなかったので気付きませんでしたが、ギャグテイストの作品では多用される傾向にあります。

新バージョンではその挙動を改善して、ちゃんと文字が行の縦中央に揃うようになりました。

▲ フォントサイズを変えてもちゃんと縦中央に揃うようになった

ルビの字間調整

例えば{不死身|ふじみ}のような漢字3文字に対してルビ3文字の場合、これまではルビが漢字3文字の中央に寄ってしまい、あまり見栄えが良くありませんでした。

{不|ふ}{死|じ}{身|み}のように1字ずつ設定すればいいのですが、かなり面倒です。

新バージョンでは、プラグインパラメータの「ルビの字間調整」をONにすると(デフォルトでON)、漢字に比べてルビの文字数が少ない時に、ルビの字間を適宜調整して、中央に寄りすぎないようにしてくれます。

地味に気になっていた部分なので、今回キレイに調整できたのがよかったです。

▲ 「不意打ち」や「可能性」のルビがいい感じに調整されている

ルビのない行の高さ調整

旧バージョンは、ルビが有効なウィンドウでは常にルビ分の高さを確保するため、アイテムやスキルでルビを含まない名前の場合、文字が項目枠の下に寄ってしまって見栄えがよろしくありませんでした。

そこで、プラグインパラメータの「ルビ無しの行高さ調整」をONにすると(デフォルトでON)、ルビを含まない項目の表示では、ルビ分の高さを確保せず通常の高さで文字を表示するようにしました。

もともとは、ルビのある項目とない項目とで文字の縦位置が異なるのは気になるかと思い、旧バージョンではそれを調整していませんでした。ですが実際に調整してみたところ、項目同士がかなり離れているため高さの違いはそこまで気にならず、逆にアイコンと縦位置が揃うことで見栄えがきれいになりました。

なお、「文章の表示」によるメッセージや、戦闘ログの表示、アイテムやスキルの説明欄など、文章を表示するウィンドウでは、行によって高さが異なると違和感があるため、この調整は反映されません。

2026-01-23追記
当初は「選択肢の表示」で出る選択肢も調整が無効でしたが、Ver.2.0.1で高さ調整に対応しました。

▲ ルビを含まない項目も選択肢の縦中央に配置される

ルビ有効/無効の設定方法

旧バージョンではデフォルトでルビの表示は無効になっており、特定のウィンドウのみ有効にする方式をとっていました。

▲ 旧バージョンでは縦位置調整がないためコマンド項目が下に寄ってしまう

これは、前述の「ルビ無しの行高さ調整」が旧バージョンにはなかったため、全てのウィンドウでルビを有効にしてしまうと、タイトル画面のコマンドウィンドウなどルビが不要なウィンドウでは、項目名が枠の下辺に寄ってしまって見栄えが悪いという理由でした。

しかしこの方式だと、標準以外のプラグイン等で追加されるウィンドウについては、プラグインを改造しない限りルビが有効になりません。

Window_***.prototype.isRuby = function() {
  return true;
};

という感じに、該当ウィンドウにisRuby関数を作成してtrueを返すようにするだけなので、書き換えは比較的簡単にしてありましたが、スクリプトが得意でないユーザーにとっては敷居の高いものでした。

今回、「ルビ無しの行高さ調整」の実装で項目名の見栄えも解消したこともあり、全てのウィンドウにおいてデフォルトでルビを有効にしました。

これにより、プラグインで追加したカスタマイズのウィンドウについても、特に改造なしでルビが自動的に有効になります。

特定のウィンドウではルビを無効にしたい場合は、プラグインパラメータの「ルビ無効ウィンドウ」で当該ウィンドウクラス名を指定します。

以下のウィンドウはほとんどのケースでルビが不要と思われるため、デフォルトで無効対象にしています。もし有効にしたい場合は、指定を削除してください。

  • Window_NameEdit(名前の入力欄)
  • Window_NameInput(名前の文字選択欄)
  • Window_DebugRange(デバッグ画面の範囲指定欄)
  • Window_DebugEdit(デバッグ画面のスイッチ・変数一覧)

注意点として、ウィンドウクラス名はWindow_StatusBaseなどの継承元の上位クラスではなく、Window_MenuActorなどの下位クラス名で指定する必要があります。上位クラス名を指定しても、そこから継承される下位のウィンドウがルビ無効になるということはありません。

なお、旧バージョンと挙動を同じにすることもでき、その場合はプラグインパラメータの「デフォルトでルビ有効」をOFFにし(デフォルトはON)、「ルビ有効ウィンドウ」でルビ有効にしたいウィンドウクラス名を指定します。

「ルビ無効ウィンドウ」と「ルビ有効ウィンドウ」で同じウィンドウクラスが指定された場合は、無効の方が優先されます。

戦闘画面のアクター名

現状、標準の戦闘画面におけるアクターステータスのみ、ルビ表示に対応していません。

理由は、このウィンドウのみコアスクリプト上の文字描画方法が異なるためです。

顔グラフィックに文字が被っているため、無理にルビを表示させても見づらくなるのと、アクター名は他の場所でも頻繁に目にするため、ここでルビがなくても大きな支障はないことから、無理に対応させる必要性は薄いと判断しました。

戦闘のUIはカスタマイズされることも多く、それによってはアクター名も支障なくルビが表示できる場合もあるかと思います。

▲ 戦闘画面のアクター名のみルビ非対応

ルビ振りの歴史

当サイトではもう15年前の和風探索RPG『天下御免!からくり屋敷』の制作初期からルビを振るシステムを実装しており、これまでも「RubyでRubyを…」、「ツクールでルビを振る」、「RPGツクールMZでルビを振る」と、数多くの記事を公開してきました。

昨年末から、新作の中華風探索RPG『蟠桃会(ばんとうえ)異聞~仙界の宴』(仮題)の制作に取り掛かっています。今回は中華風ということで『天下御免!からくり屋敷』同様、漢字の難しい固有名詞が多数登場する予定です。やはりルビが必須となるため、既存のルビ表示プラグインで気になっていた部分や要望のあったところを改善し、大幅な機能強化版として公開することができました。

ルビがあれば少々難しい言葉も躊躇せず使えて、文章の格を落とさずに済みます。実況プレイでもルビがあれば漢字が読めずに詰まるということがなくなるので安心です。和風や中華風の作品に限らず、積極的にとり入れて損はないと思いますので、ぜひご利用ください。

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

[ テクニック ] [ 素材 ] [ プラグイン/スクリプト ] 画像・音声・アニメーションのラグを改善

2026-01-12 22:08:29

RPGツクールMZにおいて、画像・音声・アニメーションを先読み(プリロード)し、表示・再生時のラグ(遅延)を軽減するプラグインを公開しました。

キャッシュの仕組みがMZとMVとで異なるため、本プラグインはRPGツクールMZ専用となります。

※ 2026-01-13追記 テストコードが残っていたので修正しました。

※ 2026-01-18追記 「敵キャラの変身」でエラーが出る不具合を修正しました。最新バージョンはVer.2.0.4です。

過去に「画像先読み改善プラグイン(PANDA_ImagePreLoad.js)」として似たようなプラグインを公開していますが、画像だけでなく音声(BGM/BGS/ME/SE)やアニメーションの先読みにも対応した、拡張版となります。

キャッシュと遅延

テストプレイ時やダウンロード版の場合はローカルから読み込むため、特にラグ(遅延)が気になるということはありません。

一方、PLiCyなどブラウザ版でプレイする場合は、画像や音声ファイルをサーバーからダウンロードしてくる必要があります。そのため、ファイルサイズが大きい場合やサーバーが混雑している場合は、表示・再生時のラグが顕著に発生します。

一度読み込んだファイルはブラウザの機能としてキャッシュされるため、次からは遅延なく表示・再生されますが、最初は一定のラグが生じます。特にサーバーが重い場合は、かなりの遅延になることもあります。

RPGツクールMZの先読みの仕組み

RPGツクールMZのコアスクリプトには、ラグを軽減するための仕組みが標準で備わっています。

過去の記事でも詳しく書いていますが、RPGツクールMZのデフォルトシステムでは、イベントの開始時にイベントコマンドの先頭から200行目までを走査して、その中に登場する「文章の表示」の顔グラフィック画像と「ピクチャの表示」のピクチャ画像を、先に読み込むようになっています。

事前にファイルを読み込んでキャッシュしておくことにより、実際に画像を表示する際に素早く表示できる仕組みになっています。

しかしながら、イベントコマンドが200行を超えるような場合、途中で200行目以降を追加で先読みするといったことはないため、長いイベントの場合は途中からラグが目立つようになってしまいます。

また先読みされるのは「文章の表示」の顔グラフィックと「ピクチャの表示」のピクチャ画像だけなので、それ以外の画像や音声、アニメーションなどは別の方法で事前に読み込むしかありません。

画像先読み改善プラグイン(PANDA_ImagePreLoad.js)の限界

過去に公開した「画像先読み改善プラグイン(PANDA_ImagePreLoad.js)」は、デフォルトの仕組みを改善し、任意の行数(イベントコマンド全行も可)を対象に先読みできるようになり、また先読み対象のイベントコマンドも「遠景の変更」と、「移動ルートの設定」の中の「画像の変更」に対応しました。

これはかなり画期的なプラグインでしたが、「アクター画像の変更」や「タイルセットの変更」など、全ての画像ファイルには対応していなかったのと、音声ファイルやアニメーションにも未対応だったため、これで万事解決というわけには行きませんでした。

リソース先読みプラグイン(PANDA_ResourcePreLoad.js)

そこで今回、画像ファイルのダウンロードを要するほぼ全てのイベントコマンドと、音声・アニメーションの先読みにも対応した拡張版を、作成・公開しました。

具体的には以下のイベントコマンドに対応しています。

頭に*が付いているのが今回新たに追加されたコマンドです。旧プラグインにあった機能は全て、今回の新プラグインにも含まれています。

  • 「文章の表示」で使用される顔グラフィック
  • *「メンバーの入れ替え」で加えられたアクターの各種画像ファイル
  • 「移動ルートの設定」中の「画像の変更」で使用される画像ファイル
  • *「移動ルートの設定」中の「SEの演奏」で使用される音声ファイル
  • *「アニメーションの表示」で使用されるアニメーション
  • 「ピクチャの表示」で使用される画像ファイル
  • *「BGM/BGS/ME/SEの演奏」で使用される音声ファイル
  • *「戦闘BGM/勝利ME/敗北ME/乗り物BGMの変更」で使用される音声ファイル
  • *「アクターの画像変更」で使用される各種画像ファイル
  • *「乗り物の画像変更」で使用される画像ファイル
  • *「タイルセットの変更」で使用される画像ファイル
  • *「戦闘背景の変更」で使用される画像ファイル
  • 「遠景の変更」で使用される画像ファイル
  • *「敵キャラの変身」で変身後の敵キャラの画像ファイル
  • *「戦闘アニメーションの表示」で使用されるアニメーション

先日の記事「ブラウザプレイでBGMと演出のズレをなくす方法」の時はまだ本プラグインがなかったので、「タイルセットの変更」など一部機能は工夫して対処が必要でしたが、今回のこのプラグインで「タイルセットの変更」にも対応しました。遅延対策がより簡単にできるようになったので、ぜひご利用ください。

プラグインコマンド

また、イベント開始時の自動的な先読み以外にも、任意のタイミングで任意の画像・音声・アニメーションを個別に先読みできるよう、プラグインコマンドも各種用意しました。

イベント開始時の先読みだけでは対応できないケースなど、必要に応じてお使いください。

プラグインコマンドはそれぞれ以下のようになっています。

画像先読み
/img/フォルダ以下の任意の画像ファイルを先読みします
タイルセット先読み
指定したタイルセットの画像ファイルを先読みします
音声先読み
/audio/フォルダ以下の任意の音声ファイルを先読みします
アニメーション先読み
任意のアニメーションを先読みします
先読み行数指定の廃止

以前のプラグインは、先読み対象の行数をデフォルトの200行から、プラグインパラメータで指定した任意の行数に変更するという仕様で、行数を0と指定すると全ての行が対象になるというものでした。

あまりに長いイベントの場合は全行読み込みにすると、イベント開始時に先読みの時間がかかりすぎてしまうための仕様でしたが、実際にこの制約に引っかかることは稀で、ほとんどの場合が全行先読みにしていると考えられることから、行数の指定は廃止し、常にイベントコマンドの全行を開始時に走査する仕様に改めました。

これによってプラグインパラメータの指定が不要になり、単純に導入するだけで使えるようになりました。

ただし、本当に膨大なイベントであったり、大量のリソース先読みを必要とするイベントの場合には、事前読み込みの処理に時間がかかってしまう可能性もありますので、ご注意ください。

プラグイン更新の際の注意点

もともとは「PANDA_ImagePreLoad.js」というプラグイン名でしたが、画像だけでなく音声やアニメーションにも対応したことで「Image」では誤解を招くため、プラグイン名を「PANDA_ResourcePreLoad.js」に変更しました。

プラグイン名の変更により、「画像先読み」のプラグインコマンドを使用している場合は、プラグインコマンドの再設定が必要になります。

「画像先読み」のプラグインコマンドを使用していない場合は、そのまま今回の新プラグインに置き換えが可能です。

プラグインコマンドの使用が数カ所の場合も、今回の新プラグインの方が高機能なため、なるべく置き換えをお勧めします。その場合、お手数ですがプラグインコマンドは新しいプラグインのもので再設定をお願いします。

「画像先読み」のプラグインコマンドを大量に使用しており、全て修正するのが現実的でない場合は、旧プラグインと新プラグインの併用も可能です。併用による実害はないはずですが、イベントコマンドの走査や画像の読み込みを二度行うことになるため、多少重くなることがあり得ます。なお、併用する場合は必ず今回の新プラグインの方を後にしてください。

未対応事項とまとめ

前提としてそのイベント内のリソースを先読みするものであるため、戦闘で出現する敵キャラの画像や、戦闘行動で使用するスキルのアニメーションなどを先読みする機能はありません。

またキャッシュの仕様上、移動先のマップデータを先に読み込むとか、次に起動するイベントの内容を事前に読み込んだりといった機能もありません。

デフォルト機能以外の、立ち絵の自動表示やUI関連の表示なども特に対応していないので、プラグインコマンドによる先読みを適宜利用して工夫してください。

イベントコマンドの「ムービーの再生」も、動画ファイルはファイルサイズが大きく、先読みするとかえって重くなる可能性があるため、対応していません。

このように未対応の機能はいくつかありますが、現実的なラグ対策としては十分な機能を備えていると考えています。ぜひ導入していただき、快適なプレイ体験を提供してください。

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

[ テクニック ] [ 素材 ] [ プラグイン/スクリプト ] 対象が無条件のスキルを正しく使わせる

2025-11-30 17:20:25

対象範囲が「味方単体(無条件)」のスキルを敵キャラや自動戦闘のアクターが使うと、ツクールのコアスクリプトの不具合のせいで正常に動作しない問題を解決するプラグインを公開しました。

「無条件」の設定自体がRPGツクールMZからの登場なので、MZ専用のプラグインとなります。

RPGツクールMVまでは、スキルの対象範囲に生存者か戦闘不能者(死亡者)のどちらかしか選べませんでした。しかし、RPGツクールMZで範囲指定のUIが改良され、対象陣営が味方の場合に限り、生死にかかわらず対象にできる「無条件」の指定ができるようになりました。

これにより、戦闘不能なら蘇生、生きていれば回復といった、便利なスキルが作れるようになりました。

しかし、こうしたスキルを通常のプレイヤーキャラクターが使う分には問題ないものの、敵キャラや自動戦闘のアクターに使わせようとすると正常に動作しません。

自動戦闘のアクターが使った場合は、生存中の味方しか対象候補にならず、戦闘不能の味方に使うことはありません。また敵キャラが使った場合は、ターゲットを取得できず何も起こりません。

これはRPGツクールMZのコアスクリプトで、こうしたケースが想定されていないことによる不具合のようです。

過去記事「敵の蘇生対象がランダムにならない不具合修正」でもそうでしたが、どうもツクールのコアスクリプトは敵が蘇生を使うという想定がされていないようで、これもそれと似たような現象です。自動戦闘についても、無条件ターゲットがMZからの追加機能であるため、おそらく対応が漏れているものと思われます。

公式フォーラムでこの問題が投稿されていたため、それに合わせて修正プラグインを作成しました。本プラグインを導入するだけでこれらの不具合が解消し、敵キャラや自動戦闘キャラも意図通りにスキルを使用できるようになります。

確かに「全体無条件」ならともかく、「単体無条件」のスキルは作る機会が多くないかもしれません。しかもそれを敵キャラや自動戦闘キャラに使わせることは、さらに例が少ないでしょう。

しかし、そのような設定が可能である以上、コアスクリプト側もそれに対応しておかなければならないはずで、仕様策定の難しさを改めて感じさせられます。

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

[ テクニック ] [ 素材 ] [ プラグイン/スクリプト ] イベントの早送りを無効化する

2025-11-23 18:36:13

指定したスイッチがONの時は、決定キーの押しっぱなしによるイベントの早送り(倍速化)が無効になるプラグインを公開しました。

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

RPGツクールには、決定キーを押しっぱなしにしていると、イベントが倍速で進む早送り機能があります。

メッセージが瞬間表示されるほか、キャラクターやピクチャの移動なども倍速で処理されるようになるため、テストプレイ時や一度見たイベントをもう一回見ることになった時などに便利です。

しかし一方で、エンディングなどでクレジットを表示している時や、キャラの動きとBGMとをシンクロさせている時など、早送りされては困るケースも存在します。

そのような時に、このプラグインが役立ちます。

使い方は簡単で、まずスイッチを1つ用意します。

次にプラグインパラメータでこのスイッチを「(早送り)禁止スイッチ」として指定します。

そして、早送りされたくないイベントの開始前にこのスイッチをONにし、終了後にOFFにします。

これだけでOKです。

なお「文章のスクロール表示」だけは、標準で「早送りなし」の機能があるため、本プラグインの対象外です。スクロール表示で早送りを禁止したい場合は、「早送りなし」のチェックを入れてください。

それ以外の全てのイベントコマンドおよび戦闘ログは、このプラグインによって高速化が無効になります。

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

[ テクニック ] [ 素材 ] [ プラグイン/スクリプト ] 敵の行動のターゲットを制御する

2025-11-13 01:01:44

敵キャラの行動パターンに、条件によるターゲットの指定や重み付けができるプラグインを公開しました。

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

敵の行動とターゲット

敵キャラの行動で、HPが減っていない相手に回復魔法を使ったり、既にバフやデバフがかかっている相手に同じバフ・デバフをかけたり、眠らされたアクターに攻撃して起こしてくれたりすると、ラッキーです。

しかし、序盤の敵がこういう動きをするならともかく、終盤の、しかも知能が高そうな敵キャラがそのような無駄行動をすると、ちょっと残念な感じがします。

敵キャラの行動でターゲットを制御する標準機能には「狙われ率」がありますが、狙われ率は基本的に戦士系の前衛職が敵の攻撃を受けやすく、魔法使い系の後衛職が攻撃を受けにくい、といった仕組みを反映させる要素であり、HPの消耗度やバフ・デバフ、ステートの状態などによってターゲットを制御する目的で使うには不向きです。

狙われ率自体は敵キャラにも存在するため、例えばボスの狙われ率を高くすることで、ボスの回復を優先するお伴が表現できます。バトルイベントで常に敵キャラのHPを監視し、HPの減り具合に応じて敵キャラの狙われ率を変更することで、一番HPが減っている味方を回復してくる敵、などというのも表現することは可能です。ですが、標準機能だけで実装しようとするとかなり労力がかかりますし、細かい制御もできません。

そこで、このプラグインを作りました。

以下、使い方を説明します。

ダミースキルの作成

まず事前準備として、ターゲット条件指定用のダミースキルを1つ作成します。

ダミーなのでスキルの内容は特に何も設定しなくて構いません。スキルの名前は任意ですが、分かりやすいように「↑ターゲット条件」などとしておくと良いでしょう。

ダミースキルを作ったら、次にプラグインパラメータの「ターゲット条件用スキル」で、そのスキルを指定します。

以上で事前準備は完了です。

ターゲット条件の設定方法

事前準備が終わったら、いよいよ敵キャラの行動パターンにターゲット条件を設定します。

ターゲットを制御したい行動パターンの下に新しい行動パターンを作成し、「スキル」に先述の「ターゲット条件用スキル」のダミースキルを指定します。

そして「条件」にターゲットの条件を指定し、「レーティング(R)」で優先度を指定します。これによって、その条件に合致するメンバーの、ターゲットとして選ばれる確率が変わります。

ターゲットの条件指定は下にいくつでも追加できます。

条件

「条件」でターゲットの条件を指定できます。

条件に指定できるのは行動パターンのものと同じですが、条件の意味は一部異なるものもあり、それぞれ以下を意味します。

常時
全員が対象となります。特別な指定をしたい場合以外は設定する必要はありません。
ターン
特別な意味を持ち、対象のインデックスやID番号を表します。A + B * Xで指定されるターン数のうち、ABの値によって以下のようになります。
0 + 0 * X
自分自身が対象になります。
A + 0 * X
インデックス(1始まり)がAのメンバーが対象になります。
0 + B * X
アクターIDまたは敵キャラIDがBのメンバーが対象になります。並び順にかかわらず特定のアクターや敵キャラを対象にできます。
A + B * X
A + B * Xで表されるインデックス(1始まり)のメンバーが対象となります。例えば「2 + 2 * X」とすれば偶数番目のメンバーが対象になります。
HP
現在のHPが指定範囲内にあるメンバーが対象になります。
MP
現在のMPが指定範囲内にあるメンバーが対象になります。
ステート
指定ステートが付与されているメンバーが対象になります。
パーティLv
対象がアクターの場合は個別のメンバーのレベルになります。対象が敵キャラの場合は標準と同じくパーティーの最高レベルが基準となりますが、あまり意味のない指定です。
スイッチ
ターゲットの絞り込みには影響せず、後述する行動の採用可否にのみ影響します。

まとめると以下のようになります。

条件 意味
常時 全員が該当
ターン 0 + 0 * X 自分自身
ターン A + 0 * X インデックスがAのメンバー
ターン 0 + B * X アクターIDまたは敵キャラIDがBのメンバー
ターン A + B * X インデックスがA + B * Xに合致するメンバー
HP 現在のHPが指定範囲内にあるメンバー
MP 現在のMPが指定範囲内にあるメンバー
ステート 指定ステートが付与されているメンバー
パーティLv アクター そのアクターのレベル
パーティLv 敵キャラ パーティーの最高レベル(行動の採用可否のみ影響)
スイッチ 指定スイッチがONの場合(行動の採用可否のみ影響)
レーティング(優先度)

優先度の考え方は行動パターンのものと少々異なるので、注意が必要です。

優先度はデフォルトが5で、5よりも小さい数字を指定すると優先度がその分だけ下がり(ターゲットとして選ばれにくくなる)、5よりも大きい数字を指定すると優先度がその分だけ上がります(ターゲットに選ばれやすくなる)。

複数の条件に合致する場合、それぞれの条件での優先度の加減が積み重なります。

ただし、レーティングの1と9は特別な意味を持ち、1を指定すると該当するメンバーはターゲット候補から除外されます。また9を指定すると必ずターゲットに選ばれるようになり、それ以外のメンバーはターゲット候補から外れます。同じメンバーに1と9の両方が指定された場合は、後から指定された方が優先となります。

まとめると以下のようになります。

レーティング 意味
1 ターゲット候補から除外
2 優先度を-3
3 優先度を-2
4 優先度を-1
5 デフォルトの優先度
6 優先度を+1
7 優先度を+2
8 優先度を+3
9 必ずターゲットになる
ターゲットの抽選

上記の条件とレーティングから、実際のターゲットが抽選されます。

まずレーティング=9に該当するメンバーがいれば、その中から抽選されます。

9のメンバーがいなければ、レーティング=1の除外対象者を除いたメンバーの中から抽選されます。

この時、最終的に算出された各メンバーの優先度のうち最高値を基準に、優先度が1下がるごとに選ばれる確率が1/3小さくなります。最高値より優先度が3以上小さい場合は、候補外となってターゲットに選ばれなくなります。この考え方は行動パターンの優先度と同様です。

なお、実際のターゲット抽選においては、優先度に加えて「狙われ率」も参照されます。優先度ではキャラAの方が勝っていても、キャラBの狙われ率がそれ以上に高かった場合は、キャラBの方が選ばれやすくなります。これは「挑発」などのターゲット引き付け効果を有効にするための仕様です。

行動の不採用と再選択

ターゲット候補が1人もいない場合、その行動は不採用となります。

ターゲット条件は、ターン初めの行動決定時と実際の行動直前の2回確認されます。ターン内の行動によって実際の行動時に対象者が1人もいなくなった場合、その行動をキャンセルして別の行動が再選択されます。

この仕様により、無駄な行動が抑制できるようになります。

なお、スキルの効果範囲が単体やランダムでなく全体や使用者自身の場合、ターゲットの選択には影響しませんが、条件を満たす対象者が1人もいなければ、その行動は不採用となります。

設定例

特殊な仕様や分かりにくい部分もあるので、以下にいくつか設定例を挙げました。参考にしてみてください。

(1) ダメージによるステート解除を避ける
スキル 条件 R
攻撃
↑ターゲット条件 ステート:睡眠 4
↑ターゲット条件 ステート:混乱 4

睡眠か混乱にかかっているメンバーは、通常メンバーに比べてターゲットになる確率が2/3になります。両方かかっている場合は確率が1/3になります。

(2) ステートの重複を避ける
スキル 条件 R
単体毒攻撃
↑ターゲット条件 ステート:毒 1

毒にかかっているメンバーは対象外となります。全員が毒にかかっていた場合はこの行動自体が不採用となります。

(3) 無駄な蘇生行動を避ける
スキル 条件 R
レイズ(単体蘇生)
↑ターゲット条件 ステート:戦闘不能 9

戦闘不能のメンバーの中からターゲットが抽選されます。誰も戦闘不能になっていない場合はこの行動自体が不採用となります。

(4) 効率的な回復
スキル 条件 R
ヒール(単体HP回復)
↑ターゲット条件 HP:50~80% 6
↑ターゲット条件 HP:0~50% 7

現在のHPが50~80%のメンバーはターゲットになる確率が通常の倍、0~50%のメンバーは3倍となります。

(5) 隊列の後方を狙う
スキル 条件 R
攻撃
↑ターゲット条件 ターン:4 + 0 * X 8
↑ターゲット条件 ターン:3 + 0 * X 7
↑ターゲット条件 ターン:2 + 0 * X 6

後ろのメンバーほど狙われやすくなります。1人目のメンバーは優先度がデフォルトの5となります。4人目のメンバーが戦闘不能でない限り、1人目のメンバーは攻撃されません。

(6) 無駄な全体回復を防ぐ
スキル 条件 R
リカバー(全体HP回復)
↑ターゲット条件 HP:80~100% 1

効果範囲が全体のためターゲット選択としては意味がありませんが、メンバー全員の現在のHPが80%以上であれば、この行動自体が不採用となります。

競合や互換性について

本プラグインは戦闘システムに改変を加えるプラグインのため、主に戦闘システムに関わる他のプラグインとは競合する可能性があります。

プラグインの順序を入れ替えることで解決する場合もありますが、特にターゲットの選択に関わるプラグインや、戦闘の流れを制御するプラグインとは併用できない可能性が高いです。その際の競合対策までは責任を負いかねますのでご了承ください(ご自身での改造はご自由にどうぞ)。

私、panda(werepanda.jp)制作のプラグインとは互換性を確保しており、「行動パターン複数条件プラグイン(PANDA_ActionMultiCondition.js)」や「複数回行動条件設定プラグイン2(PANDA_MultiAction2.js)」などとも併用が可能です。

なお「敵蘇生対象選択修正プラグイン(PANDA_FixedRandomDeadTarget.js)」と併用する場合は、「敵蘇生対象選択修正プラグイン」の後に「ターゲット条件指定プラグイン」が来るようにしてください。

また「バフ・デバフ連動ステート付与プラグイン(PANDA_BuffState.js)」を使うと、能力の強化・弱体状態がステートで管理できるため、無駄なバフ・デバフを防ぐのに便利です。

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