2016年11月1日火曜日

動的変数プラグイン

RPGツクールMVで使用可能な自作プラグイン「動的変数プラグイン」の紹介です。

プラグインの説明

指定範囲内の変数、スイッチを参照しようとした際に、「変数名称」及び「スイッチ名称」をJavaScriptとして実行した結果を返すよう変更します。

プラグインの使い道

イベントページの出現条件に設定

イベントエディタにおける「出現条件」に対象変数もしくはスイッチを指定することで、イベントページにより複雑な条件を設定することができます。
下記の例では、スイッチ欄が「変数[1]が[0]より大きい、またはスイッチ[1]がON」という条件になります。

スクリーンショット

戦闘行動に設定

条件にスイッチを指定することで敵キャラの行動をより奥深く管理できます。
スクリーンショット

定数値として使用

スイッチに「true」、変数に「'AAA'」などと記述すると常に同一の値を返す定数値として使用できます。
スクリーンショット

その他の変数・スイッチを参照する例

  1. 条件分岐
  2. イベントコマンドの各種オペランド
  3. 文章の表示の制御文字
  4. スキルやアイテムの計算式(ただしv[1]で参照した場合は除く)
  5. その他プラグインによる参照

スイッチ、変数名称の設定方法

JavaScriptを利用して記述するため難しいイメージがありますが、スキルやアイテムの計算式と同様の感覚で設定すればOKです。また、式の簡略化のために以下のローカル変数が利用できます。

v(n)      # [n]番の変数の値
s(n)      # [n]番のスイッチの値
max       # Math.maxに変換されます。(例 : max(1, 2) -> 2)
min       # Math.minに変換されます。(例 : min(1, 2) -> 1)
gPlayer   # $gamePlayerに変換されます。(例 : gPlayer.x -> プレイヤーX座標)
dSystem   # $dataSystemsに変換されます。(例:dSystem.startX -> 開始位置X座標)

Math.max以外にも一般的なMathモジュールのメソッドが使用可能です。また、他のゲームオブジェクト、データオブジェクトも同じ記法で参照できます。
いずれも利用には、多少のJavaScriptの知識が必要になります。

また、スクリプト中でさらに動的変数およびスイッチを参照することもできますが 同じ番号の変数 or スイッチを参照しようとすると循環参照となりエラーが発生します。

  • 設定例1 イベントページの「スイッチ」に「名称」が以下のものを設定する。

    v(1) > 0 || s(1) # 変数[1]が[0]より大きい、もしくはスイッチ[1]がON

    以上の条件を満たした場合に対象ページが表示される。

  • 設定例2 イベントページの「スイッチ」に「名称」が以下のものを設定する。

    v(1) < v(2) && !s(2) # 変数[1]が変数[2]より小さい、かつスイッチ[2]がOFF

    以上の条件を満たした場合に対象ページが表示される。

  • 設定例3 イベントページの「スイッチ」に「名称」が以下のものを設定する。

    gPlayer.x % 2 === 0 # プレイヤーのX座標が偶数

    以上の条件を満たした場合に対象ページが表示される。

使用上の注意

通常、イベントのページを決定する処理は、いずれかのスイッチもしくは変数が変更されたときにのみ実行されます。本プラグインでは、パフォーマンス上の理由からその仕様を維持します。もし、指定している条件がスイッチおよび変数と完全に無関係な場合(設定例3のケース等)イベントのメモ欄に以下の通り入力すると、そのイベントのみ常にページの条件チェックを行うように変更できます。

ダウンロード

プラグインファイルはGithubで公開しています。
https://raw.githubusercontent.com/triacontane/RPGMakerMV/master/DynamicVariables.js

ダウンロード方法(Windowsの場合)

  1. リンク先に飛ぶ
  2. 右クリック
  3. 名前を付けて保存
  4. ファイル名を変えずに、プロジェクトの「js/plugins」配下に配置

利用規約

当プラグインはMITライセンスのもとで公開されています。作者に無断で改変、再配布が可能で、利用形態(商用、18禁利用等)についても制限はありません。このプラグインはもうあなたのものです。
http://opensource.org/licenses/mit-license.php

0 件のコメント:

コメントを投稿