RPGツクール制作 スキル編 Vol.1 体力補正スキルを考えてみる
こんにちは、あるいはこんばんは。青島清華です。
あけましておめでとうございます、と言うには大分遅くて恐縮ですが💦
今年最初の更新です。どうぞ本年もよろしくお願いいたします。
体力補正付きのスキルをつくってみよう
前回の記事で少し書いたのですが、HPの残量に合わせてダメージや回復量が変動するスキルを作ってみたいと思ったのでいろいろと考えてみることにしました。
先にRPGツクール(MZ)での基本の攻撃スキルの計算式を出しておくと
a.atk × 4 - b.def × 2
このようになっています(実際は×は*の記号ですがCi-enではこの記号に挟まれるとイタリック体になるため置き換えています)
a.はスキル使用側のステータス、b.はスキルを使われた側のその後に続くステータス値を参照し、atkは攻撃力、defは防御力を参照するので
スキル使用側の攻撃力×4-スキルを使われた側の防御力×2
という計算式になっています。
これをHPの残量によって効果が変わるようにしてみましょう。
①加算式
HPの残量がそのまま攻撃力、あるいは攻撃力に追加となるような計算式です。HPのあるキャラ=耐久力がある≒重量級と考えれば「のしかかり」のような技でしょうか。
a.atk × 4 +a.hp - b.def × 2
hpはHPを参照しますのでこのように「+a.hp」を追加すれば「スキル使用者のHP」がダメージに加算されます。
気を付けたいのはHPは攻撃力よりも一つ多い桁で設定されていることが多く、さらに敵の場合はプレイヤー側よりも高めに設定されていることも多いため、上手く調整しないとほぼ確実に即死技になってしまう可能性があることです。そもそもHPに「/10」のような係数を付けておいた方が良いでしょうし(「/」は一般的な計算式では÷の記号です)、敵が使うのかプレイヤー側が使うのかで、計算式を変えた方が良いかもしれません。
ちなみに回復技について言えば、FFシリーズの「ホワイトウィンド」が完全にこのような計算式を使った技で、
a.hp
「使用者のHP」がそのまま回復量になっています。自身に使った場合、HPが最大値の半分以上あれば全回復技ですが、ピンチの時に使ってもあまり効果の高くない技になるので、使用決定後に攻撃を受けると予想しない結果を招く技でもありました。
②乗算式
一応、「攻撃力×HP」といったスキルを作ることは可能ですが、レベルが上がってきた場合ものすごいダメージになりそうですし、一つの戦闘のあいだでもHPの残量によってダメージがものすごく大きく変動するのでやめた方が良いと思われます。
③割合補正式
今回、特に考えてみたかったのがこの方式です。HP残量の割合によって攻撃力を補正する係数が変わってくるタイプの計算式です。前回の記事では書きませんでしたが実は正と負の2種類が考えられます。
正の補正
こちらのタイプだとHPが多いほど攻撃力が増加するというものです。体力の低下は疲労を表すことになったり、あるいは臆病だったりお調子者だったりするキャラクターが不利な状況になってくると能力が低下してくる、ということを表現できるかもしれません。
負の補正
こちらのタイプだとHPが少ないほど攻撃力が増加するというものです。追い詰められると力を出すことの表現ですね。窮鼠猫を嚙むということでしょう。固定値での変動だったはずですが、モンスターハンターシリーズの「火事場」スキルは同じような発想です。
それぞれのメリット・デメリット
正の補正はトランプの大富豪のような効果があり、有利な状況がさらに有利な状況を作っていきます。しかし、一度不利な状況になると立て直すのが厳しくなってしまいます。HPをなるべく高く保つことを推奨するようなゲームではいいかもしれません。(HPの回復手段が限られているようなサバイバル要素のあるゲームなど)
一方、負の補正は不利な側が逆転をしやすいということで、常に気の抜けないゲームになってきます。ゲームとしては面白くなりやすいのでこういった要素を採用している作品は多いのではないでしょうか。敵のHPが一定以下になると強力なスキルを使ってくるのも、同じような発想といえるでしょう。ただし、一人用のRPGで手負いの雑魚敵が頻繁に強力な攻撃を繰り出してくるとプレイする上ではストレスが多いでしょう。使える敵はボスなどに限定する、あるいは暗殺者やハンターのように一発で敵を仕留めることを推奨するようなゲームでは全体に組み込んでみてもいいかもしれません。
ちなみに自分の場合、パーティーキャラの奥義スキルで(計算上は加算式ですが)負の補正を組み込んだものを入れてみました。
計算式を考える前の準備
さて、①②のところで書いていますが、あまりにもダメージなり回復量が大きく変動してしまうとゲームバランスが崩壊してしまう恐れがあります。特に攻撃技についてはどれぐらいの数値の変動が起こるのかをあらかじめ想定しておいた方が良いでしょう。
以下では攻撃力が最大と最小では3倍の差があるとして考えていきます。
最終的にRPGツクールで使う計算式だけ見たい方は次の節まで飛ばしてください。
さて、残りHPの割合によって補正値が変わるような式を作りたいわけですが、残りHPの割合は
a.hp/a.mhp
という式で表されます。「mhp」は最大HPを表しています。これはパーセント表記で言えば0から100%までの間に必ずありますが、パーセントを使わなければ0から1の間の数字です。よって
0<a.hp/a.mhp≦1
このような不等式で表現することができます。これが1から3の間で変動するようにしたいわけです。まずは正の補正の場合について式を変形させていきましょう。「:」の後が全体に対して行った計算です。
0<a.hp/a.mhp≦1
0<2×a.hp/a.mhp≦2:(×2)
1<1+2×a.hp/a.mhp≦3:(+1)
よって「1+2×a.hp/a.mhp」はHPが最大の時、HPが1の時の約3倍の値になります。
次に負の補正の場合です。
0<a.hp/a.mhp≦1
-2≦-2×a.hp/a.mhp<0:×(-2)
1≦3-2×a.hp/a.mhp<3:(+3)
よって「3-2×a.hp/a.mhp」はHPが1の時、HPが最大の時の約3倍の値になります。
もう少し一般化した形で考えてみましょう。補正の最大値をM、最小値をmとします。
正の補正の場合
0<a.hp/a.mhp≦1
0<(M-m)×a.hp/a.mhp≦M-m:(M-m)
m<m+(M-m)×a.hp/a.mhp≦M:(+m)
負の補正の場合
0<a.hp/a.mhp≦1
m-M≦(m-M)×a.hp/a.mhp<0:×(m-M)
m≦M-(M-m)×a.hp/a.mhp<M:(+M)
これらの式を「a.atk × 4」の部分にさらに掛けます。
補正値の式まとめ
最初にあげた基本の攻撃スキルに体力の補正を加えた式を下に書いておきます。
HPが多いほどダメージや回復量の増える正の補正の場合
(m+(M-m)×a.hp/a.mhp)×a.atk × 4 - b.def × 2
HPが少ないほどダメージや回復量の増える負の補正の場合
(M-(M-m)×a.hp/a.mhp)×a.atk × 4 - b.def × 2
補正の最大値をM、最小値をmとしています。M÷mがダメージや回復量の最大の差の倍率なので、HP残量によってどれぐらい攻撃力が変動することを許容できるかを考えた上で、数値を決定してください。注意が必要なのは変動するのは上記の計算式の場合、あくまで攻撃力なので、ダメージ値はさらに大きく変動することもあります。ダメージや回復量に直接補正を付けたい場合は(a.atk × 4 - b.def × 2)のように後半の部分をすべてカッコでくくったうえでかけることもできます。
さらに技自体の性能を調整する場合は「4」や「2」などの数字を変更してください。
※実際のRPGツクールの計算式では「×」の記号は「*」に置き換えてください。
応用編
攻撃側だけでなく防御側の体力でも補正をかけてみたい場合は、上記の補正の計算式の「a.」の部分を「b.」に置き換えたものを、防御力などの項目にかけておけば、同じように補正をかけることができます。
また「hp」、「mhp」をそれぞれ「mp」、「mhp」に置き換えれば、HPの残量ではなくMPの残量によって威力が変わるスキルにすることもできます。
さて、どこで使おうか……
計算式自体は慣れてくればコピペプラス微調整で済むのでそれほど面倒ではないと思うのですが、どのような使い方をしていくにせよ、HP自体が単なる耐久値ではなく攻撃や回復にも絡んでくる要素になるということで、必然的に体力管理の重要性が増します。問題はゲーム全体の中でどのように組み込んでいくかでしょう。一例は先ほど挙げましたが、キャラクターの置かれた状況や職業などがスキルやシステムを考えるうえで極めて重要になってくるでしょうし、実際のゲームプレイにおいては「HPの回復をするかしないか」ということが戦闘中でもそれ以外の場面でも重要になってくるはずです。自分はどこでどんな風に使ってみようかな、と色々考えたくなりますが、まずは今作ってるゲームの完成を目指したいと思います。年が明けてから進みが悪いので💦
今回はこの辺りで失礼いたします。それでは!