【シノアリス】バリアとデバリアを調べた話
はじめに
シノアリスではグラコロ用の機能として2023年7月にバリアとデバリアが実装されました。
その際にバリアとデバリアの仕様を調査したときの話を簡単に書きます。
調査内容
調べるって具体的に何したの?と思われる方がいるかもしれません。
やったことは、コロシアムのログを漁り、ひたすら表にまとめることでした。
ログからわかることは下記でした
・発動したスキル
・スキルレベル(SLv)
・バリア量の変化
これを一つ一つすべて記載すれば、下記がわかると考えました
・バリア量の変化の最大値と最小値
・累積バリア量の最大値と最小値
上記のような表を作り、上から順々に値を埋めていきました(青い列はすべて手打ち)
累積バリア量が1100を超えた状態でさらにバリアされると、バリアが減衰することがわかりました。また、減衰後の値は元の約1/4であることも推測できます。
累積が2000になるとそれ以上バリアが入らないことがわかりました。
余談ですが、バリア調査の際は累積バリア量が2000になるまでのログが150個もなかったので、入力自体は3~4時間程度で終わりました。
ただ、最初に入力が終わったときは1900くらいで頭打ちになる人がいたり、2000を超えて頭打ちになる人がいたりと、これ入力誤りあるな・・・という状況で、そこから再度ログを整理して見直すのに2時間程度さらに時間がかかりました。
デバリアに関しては累積バリア量が-2000になるまでのログが750個になり、ギルドメンバーに協力してもらっても、まる二日かかりました。
分析1 累積バリア量について
先に一部書いてしまいましたが、上記の表を埋めている段階で下記のことがわかっていました
・SLvによってバリア量/デバリア量が異なる
・累積バリア量が1100を上回るとバリア量が1/4になる
・累積バリア量が-600を下回るとデバリア量が1/2になる
・累積バリア量が-1100を下回るとデバリア量が1/10になる
・累積バリア量の最大は2000
・累積バリア量の最小は-2000
・足元のバリア-20~20の表記が取り得る値(20なら累積バリア量は2000など)
これにより下記表が作られました。
また、情報の優先度が高くないのでX(Twitter)には記載できなかったのですが、シップ撃墜後に累積バリア量が半分になる部分で、累積バリア量の小数点は切り捨てられることがわかっています。
例)元の累積バリア量が20 → シップ戻り後は10に
元の累積バリア量が21 → シップ戻り後は10に(11ではない)
分析2 バリア量デバリア量について
次に、どんなSLvでどのスキルを発動させると、どのくらいバリアが増えるか減るかを見ました。
まずはSLv20のバリア量のデータの分布状況を見たく、ヒストグラムを作りました。
これを見ると、サンプル数が少ないため多少の山谷が見えますが、下記傾向が見えました。
・おそらく一様分布(出やすい値/出にくい値はない)
・101が出ない(偶然ではないはず)
・最大は111、最小は100
これに関しては、次のように考えました
・出てくる値は100, 102,・・・111の11個
・100/111=0.909090
・つまり、乱数が0.90, 0.91,・・・,1.00の11個の値を取る
・計算後小数点以下を切り上げると考えると
111×0.90=99.9→100とする
111×0.91=101.01→102とする
111×0.92=102.12→103とする
と考えることができ、101を除く11個の値が出る。
次に、111の値がどこから出てくるかを考えるため、SLv1の武器で追加検証をしました。
その結果、SLv1だとバリア量の最小が54、最大が60だったため、60と111を見比べると、111/60=1.85となりバフデバフと同じと考えられる予想が立ちました。そのため、下記表を作りました。
これの裏どりをするため、
①SLv15~18でこの表をはみ出るバリア量が出ていないか
②最大値と最小値は観察されているか
を、累積バリア量を調べた際の表から確認しました。
その結果、
①はすべてのSLvで問題ない確認が取れ
②は一部のサンプル数が少ないSLvでは観察でいないものがあったものの、
おおよそ最大値と最小値が表のとおりであることが分かった
ため、この表の考え方で正しそうだとわかりました。
まとめ
分析のところで結論まで書いてしまったのでまとめることは特にないのですが、バリアデバリア調査ではこのような調査/考え方で、仕様や計算式を導き出しました。