ゲーム制作

【RPGツクールMV】変数の値を一定の割合で増減させるスクリプト

【RPGツクールMV】変数の値を一定の割合で増減させるスクリプト ゲーム制作
スポンサーリンク
ゴス丸
ゴス丸

変数に入っている数値を、10%や20%のように一定の割合で

増減させるスクリプトはあるの?

ドラ男
ドラ男

あるぞ。現在の値に倍率を掛ければ、

指定した割合で増減させられるぞ。

RPGツクールMVでは、スクリプトを使用することで、変数の値を一定の割合で増加・減少させることができます。

例えば、変数10に入っている数値を20%増加させたり、反対に20%減少させたりすることができます。

この記事では、変数10を例に、割合を指定して数値を増減させる方法を解説します。

スポンサーリンク

1. 変数の値を20%増加させる

変数の値を20%増加させる場合は、現在の値に 1.2 を掛けます。

条件分岐などの「スクリプト」に記述する場合は、次のとおりです。

$gameVariables.setValue(10, $gameVariables.value(10) * 1.2);

このスクリプトでは、変数10の現在の値を1.2倍にします。

例えば、変数10に100が入っている場合、計算結果は120になります。

変更前の値 20%増加した値
100 120
200 240
500 600
1000 1200

なぜ1.2を掛けるのか?

20%増加させる場合、変更後の値は元の値の120%になります。

そのため、元の値に 1.2 を掛けることで、20%増加させられます。

同様に、10%増加させたい場合は 1.1、50%増加させたい場合は 1.5 を掛けてください。

2. 変数の値を20%減少させる

変数の値を20%減少させる場合は、現在の値に 0.8 を掛けます。

$gameVariables.setValue(10, $gameVariables.value(10) * 0.8);

このスクリプトでは、変数10の現在の値を0.8倍にします。

例えば、変数10に100が入っている場合、計算結果は80になります。

変更前の値 20%減少した値
100 80
200 160
500 400
1000 800

なぜ0.8を掛けるのか?

20%減少させる場合、変更後の値は元の値の80%になります。

そのため、元の値に 0.8 を掛けることで、20%減少させられます。

同様に、10%減少させたい場合は 0.9、50%減少させたい場合は 0.5 を掛けてください。

3. 増減する割合を変数で指定する

増減する割合をゲーム変数で管理することもできます。

例えば、次のように変数を使用します。

  • 変数10:増減させたい数値
  • 変数11:増減する割合(%)

変数11に20を代入しておき、変数10の値を20%増加させる場合は、次のように記述します。

$gameVariables.setValue(
    10,
    $gameVariables.value(10) *
    (1 + $gameVariables.value(11) / 100)
);

変数11が20の場合、計算式の倍率は1.2になります。

反対に、変数10の値を20%減少させる場合は、次のように記述します。

$gameVariables.setValue(
    10,
    $gameVariables.value(10) *
    (1 - $gameVariables.value(11) / 100)
);

変数11が20の場合、計算式の倍率は0.8になります。

この方法を使用すれば、変数11の値を変更するだけで、増減する割合を調整できます。

例えば、変数11を10にすれば10%、30にすれば30%の割合で増減させられます。

4. 使用する際の注意点

変数の値を割合で増減させる際は、次の点に注意してください。

  • 20%増加させる場合は1.2倍、20%減少させる場合は0.8倍にします。
  • 同じ割合の処理を繰り返すと、そのたびに変更後の値を基準に計算します。例えば、100を20%増加させる処理を2回実行すると、100→120→144となります。
  • RPGツクールMVの標準機能では、$gameVariables.setValue() に数値を代入すると小数部分が切り下げられます。例えば、101を10%減少させると計算結果は90.9ですが、変数には90が保存されます。
  • 小数をそのまま保持したい場合は、通常の変数代入とは異なる方法が必要です。

以上が、変数の値を一定の割合で増減させるスクリプトです。

能力値の補正やダメージの倍率調整、アイテムの効果量の増減など、ゲーム内の数値を割合で変更したい場合に活用できます。

コメント