開発日誌

素材

[ テクニック ] [ 素材 ] [ プラグイン/スクリプト ] 複数回行動時の速度補正変更

2021-08-19 22:24:23

RPGツクールではスキルやアイテムに「速度補正」を設定でき、通常よりも先行して放てる技や、逆に発動に時間のかかる必殺技などを実現することができます。

代表的なのは「防御」や「かばう」のスキルです。これらの速度補正を1000や2000といった高い値にすることで、敵の攻撃よりも先に防御や身代わりの体勢をとることができるようになります。

しかし、RPGツクールのデフォルト機能では、1ターンに2回以上の行動をする場合、それぞれの行動の速度補正のうち最小値が採用されるようになっています。そのため、速度補正の高い「防御」や「かばう」と、速度補正が0の通常の行動とを同時に行うと、速度補正としては0が採用されて、真っ先に「防御」や「かばう」の行動をとってくれません。

そこで、複数回行動時の速度補正の算出方法を、最小値から変更するプラグインを作成しました。RPGツクールMVとRPGツクールMZの両方に対応しています。

このプラグインを導入すると、速度補正の算出方法を以下の6つから選択することができます。

  • 各行動の最小値(ツクールの標準と同じ)
  • 各行動の最大値
  • 各行動の平均値
  • 各行動の合計値
  • 最初の行動の速度補正値
  • 最後の行動の速度補正値

例えば3回行動で、それぞれの行動の速度補正が行動順に300、1000、-100だった時、算出結果は以下のようになります。

  • 最小値:-100
  • 最大値:1000
  • 平均値:400
  • 合計値:1200
  • 最初の行動の値:300
  • 最後の行動の値:-100

考え得る限りの算出方法は用意しましたが、どれが良いのかは議論の余地があります。

特に、速度補正がプラスのものとマイナスのものとを同時に行った場合、どうなるのが自然なのかによるのかなと思います。

プラスの方の速度補正は「防御」や「かばう」などそのターンの最初に発動しないと意味をなさない行動に使われるのに対して、マイナスの速度補正は単に詠唱時間が長いといったペナルティー要素として採用されるケースが多く、それを考えるとプラスの速度補正が重視された方が良さそうな気はします。

一方でマイナスの補正値が全く加味されないのも意味がないので、私は平均値を用いています。

他の方法を使いたいという要望があれば、可能な限り採用したいと思いますので、ぜひお寄せください。

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

[ テクニック ] [ 素材 ] [ プラグイン/スクリプト ] イベントキャラ移動の改善プラグイン

2021-06-17 23:08:30

イベントキャラクターのランダム移動やプレイヤーに近づく移動を改善するプラグインを作りました。RPGツクールMVとRPGツクールMZの両方に対応しています。

イベントキャラクターの移動に関して以下の3点を改善します。

1点目は「移動ルートの設定」における「ランダムに移動」。

RPGツクールの標準のランダム移動は、まず上下左右4方向からランダムに移動方向を決定し、その方向に移動ができたら移動する、という仕組みになっています。ランダムに決定された方向に障害物があって動けない時は、移動が発生しません。

したがって、3方向を囲まれた袋小路のような場所にキャラクターがいる場合、1/4の確率でしか動かないことになります。

このプラグインはそれを改善します。先に上下左右4方向で移動可能な方向をリストアップし、その移動可能な方向の中からランダムに移動方向を決定します。したがって、袋小路のような場所でも必ず動ける方向に動きます。

2点目は「自律移動」の「ランダム」。

RPGツクールにおける自律移動タイプの「ランダム」は、実は完全にランダムに移動するわけではなく、1/2の確率で今向いている方向にそのまま前進、1/6の確率でその場に停止、1/3の確率でランダムな方向に移動する仕組みになっています。

完全にランダムだと周りをウロウロするだけの怪しい動きになってしまうので、これ自体は動きを自然に見せるための仕組みだと評価できます。ただ、それぞれの確率を調整したい場合もあるでしょう。

このプラグインは、プラグインパラメータで前進と停止の確率を調整できます。デフォルトは前進が50%(1/2)、停止が17%(1/6)となっており、この値を変更すれば、ランダム移動の確率を高くしたりすることができます。

また、1点目のランダム移動の改善も適用されるため、キャラクターがランダム移動で狭い場所に入り込んでしまった時の動きが、劇的に改善されると思います。

そして3点目は「自律移動」の「近づく」。

RPGツクールにおける自律移動タイプの「近づく」は、ランダムと同様、常にプレイヤーに近づいてくるわけではなく、少し遊びのある動きをします。具体的には、プレイヤーに近づいてくる移動は2/3の確率であり、1/6の確率でランダムに移動、1/6の確率で今向いている方向にそのまま前進します。

敵が追いかけてくるような動きの場合は、この確率だと少々無駄な動きが多く、かといってカスタム移動の「プレイヤーに近づく」だと100%近づいてきてしまうため、それはそれで逃げ場がありません。

ランダム移動と同様、プラグインパラメータでランダム移動と前進の確率を調整できます。デフォルトはどちらも17%(1/6)で、この値を小さくすれば、より積極的に近づいてくる動きになります。

実際の動きはこんな感じ。狭い場所に入った時のランダムな動きや、プレイヤーへの接近具合が改善されているのが分かります。

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

[ テクニック ] [ 素材 ] [ プラグイン/スクリプト ] 戦闘中にアイテムコマンドで武器変更

2021-06-05 22:22:57

戦闘コマンドの「アイテム」で、アイテムの使用だけでなく武器の装備変更もできるプラグインを作りました。RPGツクールMVとRPGツクールMZの両方に対応しています。

※2023-03-20 追記:「戦闘中アイテムコマンド名」が空欄のままだとエラーになる問題を修正しました。

※2025-11-04 追記:何もアイテムや装備可能な武器を持っていないと、空欄が選べてしまう不具合を修正しました。

戦闘中に装備が変更できるプラグインは既にありますが、独自のコマンドではなく既存の「アイテム」コマンドにその機能を追加したところがポイントで、戦闘コマンドの数が増えないのでレイアウトに影響を及ぼしません。

代わりに、武器以外の装備を変更したり、変更前後の攻撃力を確認できる機能などは持たせていません。実際、戦闘中に武器を持ち替えるのは問題なくできそうですが、鎧を一度脱いで別の鎧に着替えてたりしたら、その間に一方的に攻撃を受けてしまいそうですw

あと、二刀流の場合の考慮も適当で、一方の武器しか変更できません。というか、両手の武器を変更するのにうまいインターフェースがあれば教えてください。

デフォルトでは、武器を変更したら、その新しい武器で通常攻撃をするようになっており、直ちに敵ターゲットの選択に移ります(全体攻撃武器の場合は次のアクターのコマンド選択に移ります)。もちろんターゲット選択をキャンセルすれば、別の行動を選択することもできます。武器の変更にはターンを消費しないので、何度でも武器の変更は可能です。

この挙動はプラグインパラメータで変更も可能で、「武器変更後通常攻撃」をOFFにすると、武器変更後は戦闘コマンドの選択に戻ります。

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

[ テクニック ] [ 素材 ] [ プラグイン/スクリプト ] 画像の先読みを改善して画像表示のラグ解消

2021-05-29 18:55:56

お久しぶりです。

twitterの方では時々制作状況を紹介していますが、それをするとこちらの方ではあまり語ることがなくなるので、どうしても更新頻度が落ちてしまいますね。それでも、新しいプラグインや小技の紹介などはたまにしていきたいと思っています。

さて今回は、RPGツクールMZにおける画像表示のラグを解消するプラグインを公開します。

※ 2026-01-13追記
画像だけでなく音声ファイルやアニメーションにも対応した拡張版のプラグイン「リソース先読みプラグイン(PANDA_ResourcePreLoad.js)」を公開しました。今後はこちらをご利用ください。

テストプレイ時やダウンロード版の場合はローカルから読み込むので特に気になるということはありませんが、「ゲームアツマール」などブラウザ版でプレイする場合は、サーバーから画像ファイルをダウンロードしてこないといけないので、特にサイズの大きい画像は画像表示のラグ(遅延)が割と顕著に発生します。

RPGツクールMZのデフォルトでは、イベントの開始時に、イベントコマンドの先頭から200行目までをチェックして、その中に登場する「文章の表示」の顔グラフィック画像と「ピクチャの表示」のピクチャ画像を、先に読み込むようになっています。先に画像を読み込んでキャッシュしておくことで、実際に画像を表示する際に素早く表示できる仕組みになっているわけです。

ですが、長いイベントの場合はイベントコマンドが200行以上になることもあり、そういう場合はどうなるのかというと、特に何もしてくれません。途中で200行目以降を追加で先読みしてくれるというようなことはなく、そのため、イベントの途中から画像表示のラグが目立つようになってきます。

このプラグインを使えば、先読みする行数をデフォルトの200行から、任意の行数に設定することができます。また、行数を0に設定すると、イベントの全行を対象に先読みするようになり、この使い方が普通かと思います。

ただし、1000行を超えるような非常に長いイベントの場合、全行を対象にすると、逆に最初の先読みに時間がかかってしまう可能性があります。特に通信速度が遅い環境だと、イベントの開始が明らかに遅くなるでしょう。長いイベントがある場合は、先読みの行数は200行くらいに抑えて、後で解説する「画像先読み」のプラグインコマンドを併用してみてください。

また、デフォルトでは先読みの対象が「文章の表示」の顔グラと「ピクチャの表示」のピクチャ画像だけですが、それに加えて「遠景の変更」の遠景画像と、「移動ルートの設定」の中の「画像の変更」で使われるキャラ画像も、先読みしてくれるようになっています。「遠景の変更」はあまり使用する機会がないかもしれませんが、遠景画像はサイズが大きいので効果も大きいです。

また、イベント開始時の自動的な先読み以外にも、任意のタイミングで任意の画像ファイルを先読みできるように、プラグインコマンドも用意しました。

プラグインコマンドの「画像先読み」を使用すれば、imgフォルダの下にある任意の画像ファイルを読み込ませることができます。自動的な先読みでは対応していない、タイルセット画像や戦闘背景の画像なども、これを使えば先読みさせることができます。

前述の非常に長いイベントの場合は、自動的な先読みは200行までにしておいて、途中で200行目以降に登場する画像ファイルをプラグインコマンドで先読みさせる、といったことが可能です。

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

[ テクニック ] [ 素材 ] [ プラグイン/スクリプト ] 進行状況ウィンドウプラグインをMVにも対応

2021-01-25 01:23:07

メニュー画面に現在の物語の進行状況等を示す簡単なテキストを表示できるプラグイン「進行状況ウィンドウプラグイン」を、MV/MZ両対応にバージョンアップしました。

ツクールフォーラムで、RPGツクールMV用に同様のものが欲しいという声が上がっていたので、それに応えた形です。

最終的にスクリプト内部でMVかMZかを判別するようにして、同じファイルでMVとMZの両方に対応できるようにしました。

詳しい使い方は「メニュー画面に物語の進行状況を表示」もご参照ください。

MVでは、デフォルトのメニュー画面のコマンドウィンドウと所持金ウィンドウの間に空きスペースがあるので、そこに表示するようにしました。もちろんウィンドウの位置・サイズを指定すれば、好みの場所に配置することができます。

ウィンドウ周りは、MZとMVでコアスクリプトの仕様が異なるため、そのままでは動かないのですが、実際にはウィンドウの初期化(initialize)の呼び出し方が多少違うだけで、後はMZの書き方で基本的に動作することが分かりました。

なお、MVかMZかの判別は、Utils.RPGMAKER_NAMEに文字列でMVかMZかが格納されていますので、それを使用しています。

また、MZで既にご利用の方は、敢えてアップデートする必要はありませんが、テキストに改行(\n)を2つ以上入れても、最初の1つしか認識されないというバグがあったので、もし3行以上のテキストを表示させたい場合は、アップデート版のご利用をお願いします。

具体的には、改行コードの置換をreplace("\\\\n", "\\n")としていたのを、replace(/\\\\n/g, "\\n")としました。こうしないと複数の置換ができないんですね……。うーん、素直にmultiline_stringにしておけばよかった……。

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