■サイト[SilverSecond]トップ
■開発日誌トップ
■ 2017/02/18 (土)  バランスが崩れやすい要素の話 ■
【バランスが崩れやすい要素の話】

今回はゲーム開発側から見て、ターン制バトルで「簡単にバランス崩壊しそうで恐い」と
個人的に思っている要素について、思いついたまま書いていきたいと思います。
これから話す内容は、「急激に強くなったり弱くなったりする可能性」を秘めているため
開発者として扱うのもドキドキしますが、遊ぶ側も別の意味でドキドキできるという意味で、
弱点にも強みにもなりうると考えている要素のお話です。

今回のテーマは以下の3つです! 興味がある方はぜひお読みください。

・強すぎる? 弱すぎる? 『連続攻撃』の調整の難しさ
・ダメージ0で無敵!? 『引き算の防御力』の可能性
・速すぎる! ウェイトターンバトル×制限なく上がる速さの組み合わせ






【強すぎる? 弱すぎる? 『連続攻撃』の調整の難しさ】

ここでは文脈的に、「コストなしで撃てる連続攻撃」を前提とします。
たとえばロボット系シミュレーションにおけるマシンガン系の装備をしたロボや、
RPGにおいて二刀流という特殊能力を持ったキャラの通常攻撃などですね。

連続攻撃は、制御がすごく難しい要素です。
一発一発に「攻撃力」の値が加味されたり、かつ敵に防御力の概念があったりすると
非常に扱いが難しくなります。

たとえば例として、以下のような状況が発生する場合があります。
私が遊んできたゲームにもいくつかガッツリ当てはまるのがあります。

【ケース1 連続攻撃が強くなりすぎる!】

1.開発者「普通の攻撃は10点x1回になるようにして、連続攻撃は3点x3回くらい与えるようにしよう」

2.プレイヤー「レベルアップしたり装備付け替えたりパラメータ割り振りして攻撃力に特化するぜー!」

3.プレイヤー「攻撃力が30上がって連続攻撃で33点x3回=99点のダメージを与えられるぜー!
 普通の攻撃は40点x1回ダメージで弱すぎぃ!」

4.開発者「喜んでもらえるのは嬉しいけどこれだと連続攻撃一択になっちゃうなあ……」


【ケース2 連続攻撃のダメージが通らない!】

1.開発者「敵の防御力を最初は5点に設定するとして……。
単発攻撃キャラは攻撃力15で10ダメージx1回与えられるようにして、
連続攻撃キャラは常にその半分の攻撃力8で3ダメージx3回くらい与えるようにしよう」

2.開発者「今回は後半になるにつれてしっかり敵の防御力が上がっていくようにするぞ!
 ケース1の愚はおかさない!」

3.プレイヤー「後半で敵の防御が25になった! こっちの単発キャラの攻撃力は40あるから
普通の単発攻撃で40-25=15ダメージ出るのはいいんだけど、攻撃力半分の
連続攻撃キャラが全部20-25=0ダメージで役立たずになっちゃったんだけど……」

4.開発者「しまった今度は連続攻撃キャラが不遇に……ぐおお!」



何のゲームか忘れましたが、私はどちらのケースもプレイヤーとして体験したことがあります。
そして開発側になった今、私はこの経験から
「連続攻撃は非常に注意して設定する必要がありそうだ」と考えるようになりました。

ただ、このケース1と2は、うまく調整して強さが偏りすぎない限りは、
「工夫次第で結果が大きく変化する」ものなので、すごく面白い要素なんですよね。
ケース2の敵味方の立場を入れ替えれば、

「敵として出てくる連続攻撃キャラ」に大苦戦してたけどこちらの防御力を上げたら完封できた!

なんて体験ができる可能性もあるので、大きな可能性を感じられます。
一方で、やっぱりバランスが不安定になりやすいとは思いますので、
注意深い設定が要求されそうです。
実際に作る側になると、意外と「一発が小さいんだから合計ダメージだけでも
強くしないと同じくらい強く見えない!」となぜか思ってしまいがちで、
それも余計に強さの偏りを招く原因になる気がしています。
皆さまはいかがでしょうか。


さて、以下はおまけの一例で、
「あまりドキドキはしないけれど、作りやすくてバランスを安定させやすい」
連続攻撃の例です。


【おまけのケース3 最終ダメージの?%を何度も与える連続攻撃にする】

例えば攻撃力200、敵の防御100なら、200-100で単発なら100ダメージ与えられるのに対し、
「連続攻撃なら単発の最終ダメージの33%を3回与える」という風にして、33! 33! 33!
と出して連続攻撃を表現する方法もあります。

これは数値を非常に安定させやすく、単発攻撃と連続攻撃を混ぜた場合の
ややこしいバランス調整をすることも考えなくていいので、開発者的には非常に楽です。
一方で、遊ぶ側の「バランスが崩れかねないドキドキ感」はあまり感じられないんですけれどね。

「でもこれならもダメージ効率的には単発攻撃と一緒じゃん、何が違うのさ!」ですって?
確かに一見そう見えます。もし連続攻撃を単発攻撃とゲーム的に差別化するとしたら、
一つは「命中したかどうかを判定する回数が多い」点などでしょうか。

たとえば「HPが1しかないけど回避率が80%で全然攻撃が当てられない敵」がいた場合、
命中率100%で単発100ダメージ与えられるキャラは20%の確率でしか攻撃を当てられませんが、
命中率100%で33ダメージx3回攻撃できるキャラならだいたい49%の確率で一発以上当てられます。
(3回とも回避される確率は0.8×0.8×0.8=0.512、つまり51%)
こういう場面だと、3回に割った連続攻撃の方が有利です。

ただしこのケースの場合、ダメージ効率が一緒だと連続攻撃の方が有利になっちゃうので、
同じ命中率なら連続攻撃の方をダメージ効率を低めにした方がいいかもしれませんね。
単発なら100ダメージ1回、連続攻撃なら25ダメージを3回、といった具合です。

あるいは、命中率そのものを低くしてダメージの振れ幅が大きい攻撃という立ち位置にする、
などでもいいかもしれません。差別化の仕方も千差万別! お好きにどうぞ!



ということで連続攻撃についてお話をしてみましたが、いかがでしょうか。
ゲームのプレイ中に、上のケース1や2にあるようなバランスの危険さを感じ取ると、
個人的には「どう工夫すればバランス崩壊レベルの結果が出せるかな!?」とワクワクします。

普通に連続攻撃を導入するなら「装甲が薄い敵や回避率の高い敵には連続攻撃が有効」、
「そうでない敵には単発攻撃が有効」、と差別化するのが比較的いいやり方なんでしょうけれど、
実際はどちらかに極端に偏りそうで、いい塩梅のバランスを取るのはなかなか難しそうです。




【ダメージ0で無敵!? 『引き算の防御力』の可能性】

これをお読みのあなたは、「パラメータを自由に割り振れる」システムを持つゲームを
遊んでいるとき、割り振れるパラメータの中に「防御力」という項目があったときに
ある可能性が脳裏によぎるかもしれません。

「これ、もしかして防御力を上げまくれば敵からの攻撃を完封できるんじゃ?」

その可能性がすぐ思いつく人は、たぶんけっこうなゲーム経験者の方だと思います。

『引き算の防御力』は多くのRPGで使われています。
たとえば、攻撃力10の敵が防御力4の味方に攻撃した場合、受ける最終ダメージが
10-4=6ダメージになったりする、という風に、防御力は敵の攻撃を防ぐための能力値です。

世の中には「割合」で防ぐ防御力もたまに使われます。
ここで話すにあたって、便宜上「引き算の防御力」に対して「割合防御力」と名付けましょう。
それぞれ、以下のような違いがあります。

・引き算の防御力: 攻撃力10に対して受ける側の防御力5なら、
10-5=5で最終ダメージが5になる。

・割合防御力: 攻撃力10に対して受ける側の防御力が20%なら、
10×0.20(20%)=2点防いで、最終ダメージが8になる。


そしてここで話すテーマは、『引き算の防御力』の方です。
これ、ちょっと油断すると一気にゲームっぽさが失われる、結構危険な要素です。

たとえば攻撃力と防御力がほぼ拮抗してダメージ算出されるゲームをデザインしていると、
実際のプレイ中で以下のようなことが起きやすくなります。


【ケース 攻撃力と防御力が拮抗する状況のプレイ】
1.開発者「攻撃力30、防御力25で5ダメージを与えられるのがある時点の標準バランスとしよう」
2.プレイヤー「うひょー攻撃力が30から35になっただけで与えるダメージが5→10の2倍になったぜー!」
3.プレイヤー「と思ったら次のエリアの敵の防御が35でダメージがまったく通らないぜー!」
4.プレイヤー「でもこっちもアクセサリ付けて防御を上げたら受けるダメージが0になったぜー!」


つまり、与えるダメージがあっというまに何倍にもなったり、
逆に受けるダメージがあっという間にノーダメージになったりするのです。

装備でたった数ポイントの攻防の数値が変わるだけでも結果が大きく変化するので、
装備の組み合わせを試行錯誤したりするゲームならば、このように
攻撃力と防御力が拮抗してるのはかなり面白いゲームになるかもしれません。

また、プレイヤーのクリア想定レベルを開発者側でかなりガチガチに制御したい場合も
攻防が拮抗したこういうバランスがよく使われている気がします。
たとえば「一定レベル以上にならないとボスにほとんどダメージが通らないゲーム」など、
昔のゲームだとよく見たことはないでしょうか?

一方で、「かなり慎重なバランス取りが求められる」という意味においては、
この「引き算の防御力」はバランスが壊れやくて危険な要素です。
特に上の例にある4番の場合の「防御力を上げたら無敵になった」というのが一番危険で、
こうなるとゲームを遊ぶにあたって何も考えなくてもよくなってしまいます。
棒立ちでバシバシ攻撃を受けても1ダメージや0ダメージしか受けない主人公!
強い! けどゲームになってない! 最初から救済目的の調整なら、それでいいんですけれどね。

では引き算の防御力を導入した上で、
プレイヤー側が無敵にならないようにするためにはどうするか?
だいたいの場合は、攻撃力に対して防御力を半分以下に設定することで、
そういった問題を起きにくくしている印象があります。
例えばドラゴンクエストでは、「こうげき力」で与えられるダメージはその数値の1/2、
「しゅび力」で防御できるダメージは数値の1/4なので、
攻撃力250、防御力250同士の人が殴りあった場合は、
お互いに「(250/2-250/4)=約62ダメージ」は通るわけです。

でもさらにそれが進んで、あまりにも防御力の影響が小さくなってしまった場合、
防具を更新しても「耐えられる打数」が変わらなくて防御力に意味がなくなることがあるので、
この辺りは強すぎても弱すぎてもダメということで、調整が難しいなと感じるところです。


ちなみに私の場合は、防御力の慎重な調整に開発コストを取られるのは好かないので、
ほとんどの場合では防御力の導入をしません。
たとえば『片道勇者』でも、ほとんどの敵には防御力を持たせておらず、
大部分の敵の防御力=装甲は「0」です。つまり主人公の攻撃力がそのまま通ります。
そして「特に硬さがありそうな敵」だけ装甲を設定したり、盾を持たせたりしています。
味方にも防御力はありますが、効果はだいぶ小さめです。
盾みたいな、一定確率で防御するアイテムはめちゃ強力ですけれどね!

とにもかくにも、「敵を倒すための打数」が同じならば、
HPと防御力の両面を絡めるより、HP一つだけで計算した方が調整が簡単になります。
「防御力」を使わないバランス設定は、個人的には意外とおすすめですよ。


<おまけ話 割合防御力ってどうなの?>

余談ですが、「敵の硬さを表現したいけど、実際はそこまで硬くしたくない」場合や、
「プレイヤー側からのダメージが敵に通らないのが恐い」場合は
硬さを表現するにあたって「割合防御力」が便利でした。

たとえば『片道勇者』では、敵に接頭辞が付いた「<やたら硬い>野犬」などが出てきます。
ゲーム中では、こういった敵に殴りかかると普段の半分以下しか
ダメージを与えられないので、ものすごく硬く感じます。
が、それでも主人公の与えるダメージが0になることは滅多にありません。

実はここで使われているのは主に「割合防御力」で、「やたら硬い」効果を
「受けるダメージを50%カットした上で最終ダメージ-5」という処理にしているためで、
どんなに弱いクラスでもレベル1で攻撃力17以上ある主人公なら
与えるダメージは0にはならないのです(最低でも17/2-5=約3ダメージは出る)。
それでいて、与えられるダメージはいつもの半分以下に激減します。

プレイヤー側は敵の防御力がどのくらいかが見えないことが多いので、
こうすることで実質耐久力がほぼ2倍なだけの「硬いように見える敵」を作ることができます。
さらに「全くダメージが通らず一方的にやられる」心配も少ないので、結構便利です。

またこれとは別に、「属性」への防御などには「割合防御力」がよく使われてますよね。
「炎ダメージを30%減少させる」とか、ああいった類の効果です。
これも数値が100%に達しない限りは無敵にするのは難しいので、扱いやすい印象があります。



【速すぎる! ウェイトターンバトル×制限なく上がる速さの組み合わせ】

この話はプレイヤーには見えにくい処理なので、開発側の話になります。
あんまり面白くない話かもしれませんので、飛ばしても大丈夫です。

『片道勇者』では、敵味方の行動回数の算出において、
内部的に以下のようなウェイトターン方式を採用しています。
どんなものかというと……。

・敵味方には「1ターンのウェイト値」が設定されている。敏捷0時のウェイト値は30。

・このウェイト値は1ずつ減り、0になると行動できる。

・能力値の『敏捷』が高くなると、「1ターンのウェイト値」が小さくなる。
1ターンに要する時間が短くなるので、状況によっては連続で動ける。
例:敏捷0だとウェイト値30だが、敏捷5になると「1ターンのウェイト値」が28になる。
 上がっていった果てにウェイト値は20まで減る。これは最初の1.5倍の速さ。
 ウェイト値20の主人公は、普通の速さの敵が2回行動する間に3回移動できる。


この方式は速度の微妙な差を表現する上でたまに使われます。
たとえば、100%(30/30)の速度と111%(30/27)の速度の差を表現できたりするのです。

【残りウェイト値の推移(1ターンのウェイトは、主人公は27、敵は30とする】
[主人公] 4 → 0(行動)→ 27 → 1   →   1 → 0(行動) → 27 → 0(連続行動)
 [敵]  30 →   26  → 26 → 0(行動)→ 30 → 29    → 29 → 2       .


これだけ見るとややこしいかもしれませんが、主人公→敵→主人公→主人公→ と、
途中で主人公が連続行動できる状況を表現しています。
とにもかくにも、「相手より速い側がたまに連続で行動できるシステム」
くらいに思っておいていただければ結構です。

ただしこのシステム、ウェイト値が無限に下がる要素が入っていると、
最終的にとんでもないことになります。

たとえば、ウェイト値が極限まで下がった果てに1ターンのウェイトが「1」になってしまったら、
なんと最初のキャラの「30倍」の速度で動けてしまうのです!
そうでなくともウェイトが「2」だと15倍、「3」だと10倍と、
ウェイト値が小さい段階まで行くと1の差による速度差がめちゃくちゃになるので、
皆さんのゲームをしていてこういう要素が搭載されていると、
どこまで速度を上げてしまえるのか私は非常にドキドキしてしまいます。

よくできたゲームなら速度の限界値がきっちり設定されているので、限界が見えると安心できます。
たとえば『片道勇者(プラス)』では、主人公の最大速度が1.5倍に設定されているのです。

が! 実は『片道勇者プラス』では敵の方に最大速度を設定し忘れていて、
敵の種類と接頭辞の組み合わせ次第で
「10~15倍速以上」で動く敵が出るようになっていたというひどい事件があり、
公開後1年くらい経ってようやく修正したという顛末があります。
「画面の端に一瞬白い鳥人が見えたと思ったら、
次の瞬間に目の前に敵が来て何度も殴られ続ける主人公!」
という、ひどい状況が起きていました。

今は、どんなに速くても敵の速度は「最大5倍速」くらいになっています。
そのときはだいたい主人公も「1.5倍速」まで成長しているので、
最高速の敵は3~4歩ずつ近付いてくる計算です。まだ何とかなりそうですね。

ということで、この項目は私自身への戒めの意味でも追加しています。
ウェイトターン方式を使うなら、敵にも味方にも忘れずに限界速度を設けておきたいですね!!



【まとめ】

ということで、慎重に調整しないと大変なことになりやすいと考えている要素について、
いくつか紹介させていただきました。

もちろんこれら以外にもバランス的に危険な要素は無数にありますが、
ひとまず今回の要点を整理すると、結論はだいたい以下の2点にまとめられそうです。

・X倍で増えていく要素は調整が難しい(連続攻撃のダメージ)。

・0に近付いていく要素はヤバい(引き算の防御力、ウェイトターンの速度の計算)
 → なので制限を設けた方が安全そう。


特に「0に近付いていく要素」の方は制限なしだと無思考なゲームプレイの元になりやすいので、
今後も使う際はちょっと注意していきたいなと考えている部分です。
防御力を上げてずっと無敵になってしまったり、速度を上げて敵の3倍速で動けたりしたら、
ほとんど作業プレイになっちゃいますから、それはもったいない!
私のゲームでそんな状況になることがあったら、まさに私の未熟さの致すところです。


とはいえ、これまで挙げた要素は開発者的に扱いは難しいものの、
うまいこと使えるとプレイヤー側としてはすごく爽快なものになりえます。
「補助をかけまくって連続攻撃で莫大なダメージが出せたりする」のも、
「防御力アップによる無敵化」も、「敵を圧倒できる超スピード」も、
「一時的にだけ」達成できるものなら非常に爽快で面白くなりそうです。

これらはちょっぴり『劇薬』なだけで、それならそれで注意して、
状況に合わせて使えば問題ないのです。

ちょっぴり危ういバランスで遊ぶ人をドキドキワクワクさせたいと考えているなら
苦労してでもぜひ導入すべきかもしれませんし、逆に調整の時間が取れない状況下や、
検証のコストを上げたくない場合はこれらの要素をあまり使わない方がいいでしょう。
どんな要素も、使う価値があるかどうかはそのとき状況次第!
状況に合わせて適切なカードを出していきたい限りです。


……とはいえ、私は『引き算の防御力』に関しては、これからもあまり入れない気がします。
「一定確率でだけ強い防御力を発揮できる」、「少ない回数だけ無敵」といったものなら
強力にしてもいいと思うんですが、長いこと持続する防御力の扱いには、
どうしても慎重になってしまいますね。

そのせいで、『シルフェイド幻想譚』といい『片道勇者』といい、
私のRPGでは防具を着けなくてもさほど問題ないゲームが多くなってしまっています。
それはそれでどうなんだと思いながらも、私が「防御力」を
上手に使いこなせるようになるにはまだまだ道のりが遠い気がします。
しばらくは、半裸で冒険する主人公が活躍してしまいそうです。



他に聞いてみたいことや、私の想像力を試したい内容、
この記事へのコメントやご感想などあればぜひ拍手コメントからどうぞ!
お答えできそうなものは随時お答えしていきます。