
変数に入っている数値を、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が保存されます。 - 小数をそのまま保持したい場合は、通常の変数代入とは異なる方法が必要です。
以上が、変数の値を一定の割合で増減させるスクリプトです。
能力値の補正やダメージの倍率調整、アイテムの効果量の増減など、ゲーム内の数値を割合で変更したい場合に活用できます。

コメント