スキルの計算式を共通化しよう【RPGツクールMV】

2020年06月21日

 JavaScript初心者向けに、スキル(およびアイテム)の計算式を共通化する手順を紹介します。


 共通化すれば、制作途中で計算式を変えたくなった場合も一箇所を変更するだけで済みます。特に「クリティカル時は防御力を無視する」など複雑な式を作りたい場合は便利です。

 具体的には計算式をJavaScriptのグローバル関数として定義し、どこからでも参照できるようにします。
 ……といっても意味が分からないと思うので、サンプルを用意しました。

 以下のファイルをダウンロードし 、[プロジェクト]\js\plugins に放り込みます。ツクールMVのプラグイン管理から機能をONにしてください。その際、ファイル名は好きなように変えていただいて構いません。

 SkillFormula.js

 でもって、ファイルをエディタで開きます。
 ※本格的にJavaScriptを触るつもりならVisual Studio Codeなど専用エディタの導入を推奨します。ちょっと触るだけなら通常のテキストエディタで十分です。

 中身は以下のようになっています。

/**
* ●物理攻撃計算式
* a:行動主体、b:対象
*/
function $atk(a, b) {
// 変数を移し替え
var atk = a.atk;
var def = b.def;

// クリティカル時
if (b.result().critical) {
def = 0; // 防御を0として計算
}


var damage = atk * 4 - def * 2;
return damage;
}

/**
* ●魔法攻撃計算式
* a:行動主体、b:対象
*/
function $mat(a, b) {
// 変数を移し替え
var mat = a.mat;
var mdf = b.mdf;

// クリティカル時
if (b.result().critical) {
mdf = 0; // 魔法防御を0として計算
}


var damage = mat * 2 - mdf * 2;
return damage;
}


 見ての通り、物理攻撃と魔法攻撃の二種類の計算式を定義しています。
 内容は標準の計算式に「クリティカル時の防御力(魔法防御)を0にする式」を追加(赤字部分)しただけです。

 これを好きなように変えてください。特にややこしいことはしていないので、スキルの計算式を普段から触っている方なら大丈夫かと思います。
 クリティカル時の処理が不要なら該当部分を削除してください。

 $atk, $matというのが関数名なので、後はこれをスキルの計算式欄に設定するだけです。関数名は好きなように変えられます。$も別にいらないです。
 例えば、「100 + ダメージ2倍の物理攻撃」なら以下のように設定します。

100 + $atk(a, b) * 2


 なお、このままだとクリティカル時のダメージ3倍は残ったままです。必要なら以下のプラグインなどで変更してください。

 基本システムの倍率を変更できるプラグイン(むーてぃ様)

 関数はいくらでも追加できますので、後はご自由にどうぞ。レベルや運などももちろん使えます。
 参考までに、MVでスキル計算式にカーソルを合わせた場合のヘルプを貼っておきます。



 >RPGツクールMZ&MV目次に戻る
posted by 砂川赳 at 16:15 | RPGツクールMZ&MV | このブログの読者になる | 更新情報をチェックする