トップページに戻る 趣味語りに戻る その1へ


≪RPGの計算式案、その2≫



*ダメージ計算(乱数の使い方)*(実用性:高め)

 RPGの原点であるダンジョンズ&ドラゴンズ(通称D&D)というゲームでは、ダメージ(攻撃力)の表記がこうなっていました。

例1:1d6
例2:3d10+15

 dはDと表記したり、左側が1の時のみ1を省略したりすることもあるのですが、いずれにせよ何のことやらさっぱり分からないという人がほとんどだと思いますので、簡単に説明しておきます。

 1d6というのは、普通のサイコロを1回(1つ)振って、その出た目を結果として扱うというものです。3d10+15というのは、10面体のサイコロを3回(3つ)振って、その合計に15を加えたものを結果として扱うというものです。
 なおdというのはサイコロの英語(複数形)であるダイスの頭文字です。そして左側の数字がサイコロの数、右側の数字がサイコロの面数です(初心者は逆に覚えがちなので注意)。サイコロというと6面体というのが普通ですが、ゲーム用のサイコロには4面体だとか、10面体だとか、中には100面体なんて物もあるのです。ちなみに正10面体とか正100面体とかいう立体は存在しないので、角の部分を丸くすることで無理やり作っているようです。

 なんでこんな表記になっているのかというと、初期のRPGはコンピュータを使わないゲーム(アナログゲーム)だったからです。手動かつ簡単な処理しか行えなかったため、このようなシステムになったと思われます。このシステムは初期のコンピュータRPGであるウィザードリィなどでも採用され、現在でもごく一部のコンピュータRPGで見かけます。

 では最近のコンピュータRPGではどうなっているのかというと、これはもちろん様々でしょうが、一般的には「基本ダメージ±20%=最終ダメージ」というようなものになっているようです。これは±20%の範囲でばらつきが起こるという意味です。基本ダメージが100ならば、最終ダメージは80〜120の範囲でばらつくわけです。なおこの場合、「80,81,82〜118,119,120」のすべての数値が、同じ確率で発生します。

 さてこの2つのダメージ計算式、どちらが良いと思われますか?
 私は「分かりやすいのは現代風の後者、でも面白いのは昔風の前者」であると考えています。

 後者の「基本ダメージ±20%=最終ダメージ」がなぜ分かりやすいのか。それは見れば分かるはずですが、それともう一つ、基本ダメージを求めるのが簡単だという理由があります。
 例えば一般的に使われている基本ダメージ計算式は「攻撃力−対象の防御力」(「攻撃力÷2−対象の防御力÷4」という風にアレンジされていることが多い)となっているのですが、簡単に設定できる攻撃力と防御力のパラメータ1つずつで、基本ダメージを簡単に求めることができるのです。同じことを昔風のやり方で求めようとすると、かなり厄介です。というのも、レベルアップや装備変更に伴う攻撃力の変化量を求めるのが非常に面倒だからです。例えばレベル1のキャラクターが1d6の攻撃力を持つ時、レベル2になったらどうすればいいでしょうか。レベルが5になれば? 10になれば? 単純に1ずつ足していく方法では、すぐにバランスが崩れます。崩壊させない方法もありはするのですが、非常に面倒で困難です。

 ようするに、開発者にとってもプレイヤーにとっても分かりやすいのが、現代風の計算式であるということです。
 ではなぜ、面白いのは昔風だと書いたでしょうか。それは乱数のばらつき方に違いがあるからです。

 「基本ダメージ±20%=最終ダメージ」という現代風の計算式の場合、何度か敵の攻撃を受ければ、その敵から受ける最大ダメージと最小ダメージが想像できます。「85、118、100」とダメージを受ければ、平均100ダメージくらいで、最大でも120〜130くらいしか受けないだろうな、ということが分かるわけです。この場合、耐久力(HP)が140あれば、運が悪くても1撃なら耐えられる、でも運が良くても2撃は耐えられないということが、ダメージを受ける前から分かってしまうのです。さらに乱数のすべてが同じ確率で発生するということは、運の影響が大きくなりすぎないように、「最小値〜最大値」の範囲を狭めなければならないということです。
 つまり戦闘が計算ゲームになってしまいがちなのです。これはこれで計算パズル的な楽しさがあり、決して悪いわけではないのですが、RPGには空想ゲームであるという大きな側面があり、その部分を楽しむためにはこれではダメだと思うのです。

 では昔風ならどうなるか。分かりやすく2d6(普通のサイコロ2つの合計)の場合で書くとこうなります。

サイコロの目 2 3 4 5 6 7
その目が出る確率 1/36 2/36 3/36 4/36 5/36 6/36
サイコロの目 8 9 10 11 12
その目が出る確率 5/36 4/36 3/36 2/36 1/36

 分かりやすくするため、あえて約分はしていません。
 表を見れば、平均値(この場合は7)に近いほど発生確率が高いということが分かります。この場合も現代風の場合と同じように、何度かダメージを受ければ平均ダメージが7程度であることはすぐに分かります。でも最大値と最小値はどうでしょうか。2d6ではなく5d8+7などとなれば、それがいくらか想像できるでしょうか。体感できるでしょうか。この「範囲がはっきり分からない」というのが、想像力でRPGを楽しむうえで、とても大事になってくると思うのです。そして「耐久力があと30しかない! 次にダメージを受けたら倒れるかも…。奇跡よ起きろ!」とか、「あと70あるけど大丈夫かなぁ。念のために回復しておいた方がいいかなぁ。」などと、プレイヤーが色々と祈ったり悩んだりすることができるのです。
 もちろん結果が分からないだけでは良いシステムとはいえません。平均値付近の発生率が高いからこそプレイヤーが敵のおおよその攻撃力(個性)を感じることができ、でも全てを知ることは難しいから色々と考える。そんなシステムが理想だと思うのです。

 さて、分かりやすいというメリットがある現代風と、面白さがあるという昔風、融合させることができれば最高のシステムになるはずです。

 というわけで、「攻撃力−対象の防御力=基本ダメージ」「基本ダメージ+基本ダメージ×((6d21)−66)×0.01=最終ダメージ」というのはどうでしょうか。これはばらつきの部分に昔風のシステムを導入するというものです。例えば基本ダメージが100の場合、平均値が100、最小値が「100−その60%」で40、最大値が「100+その60%」で160となります。そして平均値に近いほど発生確率が高くなります。この場合はダメージが基本ダメージの1%刻みになり、大きな数値を扱うインフレ戦闘には向きませんが(例えば基本ダメージが10000ならば、最終ダメージが100刻みになる)、「基本ダメージ+基本ダメージ×((6d2001)−6006)×0.0001」とすれば、基本ダメージの0.01%刻みでダメージを発生させることができます。
 なお「(6d21)−66」などというのは今テキトーに設定しただけなので、バランスが良いのかどうかは分かりません。この計算式を利用してみたいというフリーゲーム制作者の方がおられましたらご注意を。


*防御力と被ダメージ*(実用性:高い)

 RPGにおけるダメージ計算式は、一般的には次のどちらかになっています。

 パターンA(引き算システム) : ダメージ=攻撃力−対象の防御力
 パターンB(割り算システム) : ダメージ=攻撃力÷対象の防御力

 もちろん細かい式はゲームによって異なりますし、両方を組み合わせた作品もありはするのですが、大雑把に考えればこのどちらかに分類されると言っていいと思います。
 私が考える理想は、両方を組み合わせた「ダメージ=攻撃力÷対象の防御力−対象の防御力」というものですが、割り算の部分よりも引き算の部分の方が影響力を大きくすべきと考えていますので、冒頭の2つでいえば引き算システムに近いです。でもこの辺りの理屈は今回の本題ではありませんし、なによりも面倒くさいので書きません。
 では今回の本題は何かと言いますと、「そもそも防御力の求め方っておかしくない?」というものです。例をあげてみます。

 鋼の鎧:防御力10
 鋼の盾:防御力8
 鋼の兜:防御力6

 この場合の総合的な防御力は、私が知る限り例外なく「全部を合計して24」となります。この「全部を合計して〜」というのが、私にはどうしても納得できないのです。だって1回の攻撃に対して有効な防具は、普通1つだけですよね? 盾は他の防具と合計しても良さそうにも思えますが、鎧と兜が同時に働く状況なんて滅多にないはずです。頭は盾と兜のみで守り、体は盾と鎧のみで守る。それが普通だと思います。
 では、どうすればいいのか。私ならばこうします。

 鋼の鎧:防御力10
 鋼の盾:防御力10
 鋼の兜:防御力10
 総合防御力=乱数a(0〜鎧の防御力)と乱数b(0〜盾の防御力)と乱数c(0〜兜の防御力)の最大値1つ

 文章で説明しますと、それぞれの防具ごとに「0〜防御力」の範囲で乱数を求め、その中で最も大きな数値1つをその時の防御力として採用するというものです。これはそれぞれの攻撃に対して、最も有効に防御できる防具1つで身を守る、とうい考え方です。なんかそれっぽくないですか?
 でも重要なのは次の事です。なんとこの計算式だと、バランスを劇的に良くすることができるのです。

 割り算システムよりも優れているはずの引き算システムには、大きな欠点があります。それはバランス調整が難しいということです。例えばファイナルファンタジー2(ファミコン版)というゲームでは、算数ダメダメな開発者がこの引き算システムを採用したために、「〜回ヒット 0ダメージ」なんて表示を嫌になるほど見る羽目になりました。これは攻撃力に対して防御力が大きすぎるため起こっていた現象ですが、FF2の開発者よりもずっとマシな算数能力があっても、これを完全に防ぐことは難しいのです。割り算システムだったならば、攻撃力をどんどんインフレさせ、防御力はインフレさせないという手段を使うことで、算数ダメダメな人でもそれらしいバランスにすることが可能なんですけどね。でも割り算システムの戦闘はつまらないので問題外です。

 だからこそ、今回の計算式を私はお勧めしたいのです。この式だと、どんなに優秀な防具を装備しても、弱い敵からダメージを受けてしまう可能性が残ります。でも防具が優れていればいるほど、そして攻撃が弱ければ弱いほど、受ける平均ダメージは少なくなります。そして防具の装備箇所が多いほど、防御効果は安定します。
 どうですか? リアリティとゲーム性を兼ね備えた凄いシステムだと思いませんか? 私はこのシステムを、以前に掲載した「確率を自然数に変換する方法」と並ぶ、RPGにおける究極のシステムの1つではないかと思っています。

 …でも防御力の計算式って、地味なんですよねー。戦闘はRPGの華ですが、プレイヤー側は基本的にやっつける立場であり、守ることを楽しむ状況というのは滅多にありません。ですから攻撃的で派手な魔法や特技に関するシステムは、出来の良さが楽しさに直結しやすいのですが、受けるダメージ値が芸術的な表示になっても、そこに魅力を感じる人なんて滅多にいないと思うんですよ。

 それにもう一つ問題があります。それはこのような地味なシステムは、ゲーム制作における優先順位が低いということです。
 すでに気付かれた方もいるかもしれませんが、このシステムは防具の装備数が限定されます。1つや2つではばらつき方が大きすぎてバランスを崩し、逆に多数装備できるならばらつきが少なく、わざわざこのシステムを採用する意味が薄れます。
 私は1人につき防具3〜4つというのが、このシステムにおけるベストの数だと考えています。でも防具を装備できる数というのは、基本的にはパーティ人数という優先順位の高い要素の影響を大きく受けるため、このシステムを採用できる状況は限られてしまうのです(パーティ人数が多いほど1人当たりの防具装備可能数は減る)。
 さらに言えば、総合的な防御力が分かりにくいという問題もあります。

 ただ防具の数に関しては、例えば盾は防御力ではなく回避率にのみ影響するとか、一定の確率で防御力にボーナスがかかるようにするとか、マントや指輪は魔法に対する防御力にのみ影響するとかいう風に、防具ごとに役割をかえることで、通常攻撃に対する防御力には3〜4つの防具しか影響しないようにすることが可能です。
 逆に装備可能数が少ない場合には、鎧は1つでも2回判定するなど工夫することで、採用は可能です。

 どうでしょうか。これ自体はとてつもなく地味ですが、従来のRPGよりも格段に優れたバランスを実現できる、縁の下の力持ち的なシステムだと思っています。私のお気に入りです。


トップページに戻る 趣味語りに戻る その1へ