クリ耐性の規則性

敵の防御力に関する規則性を見出そうとしているのだけれど、分かりそうで分からない感じ。

クリ耐性

防御力の方はお休みして、ちょっとクリ耐性の方の規則性を考えてみる。

カーラのサテュのクリ耐性は、既に調べてあるものを並べてみると

難1 (+25%)

Lv112 クリ耐性 483%

難2 (+195%)

Lv112 クリ耐性 653%

難3 (+195%)

Lv130 クリ耐性 約760%

となる。ここで、 +25%、+195%というのは難易度による増分。また、難3のクリ耐性は概算。

それと、難0について調べてみると

137% で僅かにクリが出る
136.5% でクリが出ない

という感じだった。難0のクリ耐性は137%と思って良さそう。

比較

となると、難易度による増分を差し引いた場合の各レベルのクリ耐性はこうなる。

Lv42 137%
Lv112 458%
Lv130 565%

ここに何らかの規則性を見出せたらいいのだけれど、レベルの一次関数よりは増加が早いみたい。まだ、もう少しデータを集めないと何とも言えない感じだ。

馬の防御力の分析

考えている事

いま「敵のステは規則的に決まっているのではないか」という仮説を考えて色々試行錯誤している。もし、そんな規則性があったとすれば、例えば難0の敵のステを詳細に調べたら、同じマップの難1、難2の敵のステの自動的に分かるというようなことが出来てもおかしくない。

そうだとすれば、敵のステを調べるのが格段に楽になる。しかも、そう期待できる根拠は2つある。一つは、敵のステがキリの悪い数値になっている事。もし、敵のステを手入力で一つづつ決めているとしたら、もっとキリの良い入力になっている方が自然だし、逆に何らかの計算式で表された規則に従って決まってるのだとしたらキリの悪い数値になっているのもうなづける。

もう一つは、各難易度にステの底上げが設定されている点。もし、難0の敵のステと無関係に難1、難2のステを決めているのだとしたら、難易度ごとの底上げを設定することに意味がない。逆に、例えばあるレベルの敵のステから、高レベルの同種の敵のステを決める規則があるとすれば、「そこにさらに上乗せする」という意味で、難易度毎にステの底上げが設定されている意味がある。

そんなわけで、結構楽観的な気持ちで、その規則性を見つけ出そうと思っていろいろ考えてきたのだけれど、案外難航してしまっている。

馬の防御力

カーラ難0,1,3の馬の防御力を並べてみると こんな感じ。

カーラ難0馬
Lv 物理防御力
40 1009
41 1030
42 1050
43 1072
44 1093
カーラ難1馬
Lv 物理防御力
110 3103
111 3122
112 3140
113 3159
114 3178
カーラ難3
レベル 物理防御力
128 3295
129 3315
130 3337
131 3358
132 3380

一つ下のレベルより防御力が幾つ増えたかを見てみると

難0

Lv41. +21
Lv42. +20
Lv43. +22
Lv44. +21

難1

Lv111. +19
Lv112. +18
Lv113. +19
Lv114. +19

難3

Lv129. +20
Lv130. +22
Lv131. +21
Lv132. +22

となる。難0に比べ、難1では差が縮まっている。けれど、難3では逆にさが広がっている。

「レベルが上がる程、差が縮まる」とか「レベルが上がる程、差が広がる」とかならまだ規則性がありそうだけれど、「一度縮まってまた広がる」となると、ちょっと規則性が見えてこない…。

カーラ難3の馬 防御力

カーラ難3

今日は、カーラ難3の馬の防御力を調べてみる。その前に、敵のレベルについて。

Lv123の人にネームの色を見てもらって、最弱の馬が黄色、他の馬は薄い赤だった。

ここから、最弱の馬は Lv128、他の馬はLv129,130,131,132と分かる。

防御力の調査

こんな感じになった。

カーラ難3
レベル 物理防御力
128 3295
129 3315
130 3337
131 3358
132 3380

サテュやエンプで考えたように、この結果を簡単な式で説明できるか考えたいところだけれど、その辺の話はまた後日。

三角での防御力

昨日の日記では、カーラで考えた防御力の計算式が三角では使えないという結果になってしまった。今日は、三角の防御力について、もう少し詳しく調べてみる。

物理防御力

防御力はこんな感じ

難0 (敵Lv 34)

ミノ 1002
フンバ 1050
エリート 1098

難1 (敵Lv 105)

ミノ 2540
フンバ 2637
エリート 2734

また、難1での防御力の底上げは+500

難0に対して、難1の(デフォルトの)防御力が何倍になっているかを計算してみると

ミノ
(2540-500)/1002=2.03593
フンバ
(2637-500)/1050=2.03524
エリート
(2734-500)/1098=2.03461

となって有効数字4桁分は一致している。となると、カーラと同じ式かどうかはともかく、三角でも簡単な数式で防御力が決まっていると考えてよさそう。

三角ミノの防御力

ここしばらくの間、敵の防御力を決める数式があるのではないかという仮説を立て、カーラの敵については、割と上手くあてはまる式が見つかった。

けれど、実はこの話は、別のマップでは上手くいかない。

例えば、三角のミノの場合を考えてみる。

三角ミノ

三角のミノの物理防御力は

難0 (lv34)で 1002
難1 (lv105)で 2540

となっている。また、難1の難易度情報で、防御力は +500。
なので、三角のミノでも昨日の日記の話のようになるとしたら

1002/(30*34+700)
(2540-500)/(30*105+700)

の値がほぼ一致するはず。ところが実際に計算してみると

1002/(30*34+700) = 0.5825581395348837
(2540-500)/(30*105+700) = 0.5298701298701298

となってしまい、かなり違う値になる。
なので、昨日書いた事は、もう少し修正が必要になりそう。

防御力を決める数式 (続き)

防御力

いま、敵の防御力が何らかの計算式によって決まっているという仮説に基づいて考察を重ねている。こういう時の常套手段としてゲーム開発者の側の気持ちになって考えてみるという手がある。今日は、その視点から考えてみたいのだけれど、その為には、昔のダメ値計算の仕方を確認しておく必要がある。

ダメ値

実は、ロードスでは2017年7月12日に「第二章:炎の魔神」のアプデが行われ、そのアプデの以前と以後とで、ダメ値の計算の仕方が少し変わっている。

この件に関して運営からのコメントは一切なく、この日記では当初これをバグと考えて「ダメ値バグ」と呼んでいたけれど、しばらく経ってからは仕様変更と考えるようになった。

二つの違い

ロードスのダメ値の計算の途中で、こんな式が出てくる。

(敵の防御力) / ( 30*lv+700 )

この式に表れるlvをこの日記では「ダメ値計算のレベル」と呼んでいるのだけれど、この意味が、以前と以後とで変わっている。

今は、マップごとに設定されているレベルだけれど、以前はプレイヤのレベルだった。

開発者の気持ち

なので、冒頭で述べたように「開発者の気持ちで考える」為には、仕様変更前のもので考えないといけない。

開発者が、「敵のレベルを設定したら、それに応じて防御力が決まる仕組みを作ろう」と思ったとする。

例えば、エンプは元々 lv42だけれど、 「lv112」と設定したら、それにふさわしい防御力が自動的に決まる仕組みを作っておきたい。そのために

「Lv42のプレイヤがLv42のエンプを叩いた時の硬さと、Lv112のプレイヤがLv112のエンプを叩いた時の硬さが(デフォルトでは)同じくなるようにしておく」と考えた

と仮定してみる。そうだとすると

(lv42のエンプの防御力) / (30*42+700) = (lv112のエンプのデフォルト防御力) / (30*112+700)

が成り立つはず。そう思って、実際に計算してみるとこうなる。

989/(30*42+700)=0.5045918367346939
(2649-600)/(30*112+700)=0.5046798029556651

確かにほとんど一致している。ここで600を引いているのは、難易度の設定で600かさ上げされているので、その分。

そうすると、この式を逆に考えると

(lv42のエンプの防御力) = 0.504*(30*42+700)
(lv112のエンプのデフォルト防御力) = 0.504*(30*112+700)

という式になる。これがちょうど昨日の日記で書いた式になる。

防御力を決める数式

いま、敵の防御力は計算式によって定まっているという仮説を立てて、その式を探している。これまでのところ、かなり惜しい式は見つかったけれど、完璧に一致する式は見つかっていなかった。

新しい仮説

実は今日、また試行錯誤してみて、実際の防御力がパッチリ合う計算式が見つかった。

まだ、すこし不自然な感じはあるけれど、それは、こんな感じ

基礎係数

サテュ: 0.5097
パム: 0.5299
エンプ: 0.5047

と言う値が決まっているとする。

難0は (基礎係数)*(30*42+700)
難1は (基礎係数)*(30*112+700)+600
難3は (基礎係数)*(30+130+700)+600

という式で防御力が定まっていると考えてみる。

実際に計算してみると

計算式による値
難0 難1 難3
サテュ 999.012 2669.382 2944.62
パム 1038.604 2751.394 3037.54
エンプ 989.212 2649.082 2921.62

という値になる。一方、実測値は

カーラ難 (物理防御力)
難 0 難1 難3
サテュ 999 2669 2944
パム 1038 2751 3037
エンプ 989 2649 2921

となっていた。この二つの表を比べてみると、計算式で計算した値を切り捨てると実測値と完璧に一致していると分かる。

これだけ見ると、上に挙げた計算式は、実測値と一致するように無理やりひねくり回したように思えるかもだけれど、実はこの計算式はある意味でとても自然な式になっている。

ただ、その辺の話はまた後日。