見出し画像

KB距離、KB割合の推測について

当ページは、Happy Elements株式会社「メルクストーリア」の画像を利用しております。該当画像の転載・配布等は禁止しております。©Happy Elements K.K

グラフ利用:Geogebra様 https://www.geogebra.org/

ほぼtwitterで語ったことのある理論です(´・ω・`)
先そっち読んでたら前半は飛ばし飛ばしで読んで…
これとこれ
簡易的な求め方の説明ツイ
計算機ツイ


座学、人力計算

そもそもKBって何?

ユニットのノックバック(以降KB)は、「ある定められた割合を跨ぐダメージを受ける度に、一定距離下がる仕様」のこと。
分かりにくいと思うので具体例を出すと、
例えばライズル。CMとかルーンを弄らなければ、

残り体力70%/40%/10%の体力割合の
境目を越えるダメージを受けた際に後退が発生し、

0.33秒かけて距離8.0後退する。ワカリニクイ

以降、KBが体力の何%刻みで発生するかの値(ライズルなら30%)をKB割合、
KBした時にユニットが下がる距離(ライズルなら8.0)をKB距離 …として表記する。

後退する時間の0.33sは今後特に言及しない(多分全ユニット一律0.33sなはず…?)

(ちなみにたまに見る「KB耐久」という言葉はKB割合とだいたい同じ、というか定義が同じでニュアンスが微妙に違うイメージ。)
なおベルセしながら刻む時にやたらKBする時があるのは、大体はこのKB割合のボーダー付近に体力が維持されてるせい。反復横跳び

タフネス周りについて

次にタフネス。そもそものタフネスの定義は他記事でも触れてるけど、KBのしにくさを表す数値。
んで具体的にはKB距離、KB割合を用いてこの式で表される。出てきた値を小数点以下四捨五入すればゲーム内でのタフネスになりま。


こんだけ。……なわけもなくて、
次にタフネスに関するCM2種類とタフネスルーンについて
イメージは

KB距離短縮マインド:
基礎KB距離を個数分下げる。(1個ごとに-1)

KBダメージ割合強化マインド:
基礎KB割合を個数分加算する。(1個ごとに+1%)

タフネスルーン:
基礎KB距離を1-魔力値%倍、
基礎KB割合を1+魔力値%倍にする。

でこの3つを最初の式に全部積んだやつがコレ。
エンデュアの計算機に出てくるやつ

理解できれば単純ですね。しらんけど

連立方程式

何でこの話をしたのか、って言うとそりゃKB距離とKB割合を求めるためなんですよね。
というわけでやってみます。

例としてデュオで、基礎KB距離をx、基礎KB割合をy、タフネスルーン無し、としてこの式に代入してみると

(50-x)/(1-y)=55 (55はデュオの素のタフネス値)
で両辺に1-y掛けると
50-x=55-55y 整理して
55y=x+5 ・・・①
…というわけで二元一次式になりました。
似た物をもう1つ用意する、
タフネスルーン35%(CM装備無し)のデュオを用意
(50-x*0.65)/(1-y*1.35)=78
途中式は省く。、整理すると
105.3y=0.65x+28 ・・・②

…というわけで未知数二種類に対して式を2つ用意できたので、①と②両方を満たすx,yを求めま。したらKB距離とKB割合が求まるって感じ
要は連立方程式。
関数グラフで示すとこう。交点の座標が求めたい値

緑:①、青:②


まあ真面目に手計算する理由がないので電卓でちゃちゃっと出します

ました。
x=14.5722…
y=0.35585…
よってKB距離はおよそ14.5、KB割合は35.5%!
……
というわけでもないんですねー(´・ω・`)

正確性の話

先述したが前提として、タフネスはゲーム内では小数点以下は四捨五入されて表示されるため、そこを考慮しないと全然ずれます。
ようはゲーム内のタフネスは表記上値の±0.5の範囲
(正確にはT-0.5≦t<T+0.5)に入ってないとダメ。

つまりどういう事かっていうと、こういう事。

緑:①' 、青:②'


この範囲にあるxy座標がキレイな点(x軸0.1のn倍、y軸0.01のm倍)を全てプロットすれば、正確な候補がめっちゃいい感じに取れるってわけですの。
また、元となる方程式を3個、4個…と増やせば必然的に範囲は狭まっていくのでそういう方法で絞り込むのが人力なら最適。(ちなみにデュオのの正確な値はKB距離は14.0、KB割合は35.0%)
まあこれやる人は人間じゃないとは思います

スプレッドシートに落とし込もう

後半。ツール自体を使いたいなら、コレご自由にどうぞ

方針

まず、±0.5タフネスした連立方程式で範囲を調べる心意気は別にいいんですが
点をプロットするの(やそれに準ずる処理の記述)、めんどくさい!。めんどくさいの。というわけで範囲適当に絞って総当りすることにしま。
適当に絞るのでこうしま。ちょっと雑だけど、範囲を全て覆える長方形

なお真面目にやるなら調べる範囲こうするとおも。めんどいからしない
事前の処理が増える代わりに総当たりの処理回数が半分以下になるから真似して作るとかなら検討してもいいかも。……おれはしないぞ。

まあ後は適当な仕組みでx,yを全て書き出して毎度その場合のタフネスを計算して、その結果を四捨五入した値が元の式のタフネスと一致してればokという感じ。(大事なのはこの太字2つで、あとは基本付属物)

……なんかやってることが前半と比べ明らかに脳筋(´・ω・`)

設計しつつスプシカキカキターン

注意:くそながほぼ自語り



(なお、構造自体を作ったの割と前なので思い出しながら…

作った順序踏みながら説明。

最初に入力欄を作っておく。
マイナスのところはフラグ置くとこにfalseを返しといて、そもそも計算シートに全く持ってこないように。
あと後のこと考えTRANSPOSEで向き変え、タフネスの下に計算用に±0.5したやつとルーン5%強化乗ってたら乗せた状態のタフネスルーンも記載(元の値ではなくこっちを使う) みたいな感じで。

で長方形に使う値を選別。
タフネスが一番大きいやつと一番小さいやつが何番か数えるやつを作って、隣にINDEXでカキカキ。なお中括弧と脳死TRANSPOSEでわかりにくいけど、強化後のルーン値を手前に持ってきて前2つ以外のやつを持って来ただけ
何番か数えるやつはMATCH()とMIN、MAX。

でこれは長方形の角を求めるやつ。

値の説明はめんどいからこのツイ見て…
https://x.com/Melias_181/status/1752548785883091103
この延長で各「低い側」と「高い側」2種の交点見ればかどっこが求まります。ちょっとわかりづらいけど観察すれば割と当然

で次。

めっちゃ見づらいけど順に…
上2つ:最初で指定した0.5刻みか0.1刻みかのやつ
左1と2:KB割合(×100)の範囲。上限切り上げ、下限切り捨てで洩れがないように
左3と4:KB距離の範囲。割合のとやる事自体は同じ
左5:試算するKB割合の種類の数。
左6:試算するKB距離の種類の数。
左7:5と6の積。これが極端に大きいとシートがしぬ。基本デバッグ用
(boolはみづらい!:とくにいみはない)
って感じ。すぐ使う。
ちなみに積のやつは激重シートにならない用にこの前追加したばっかのやつ。次かその次くらいでメルスト全く関係ないスプシの話書くかもしらん

これは「KB割合とKB距離の組み合わせを全部試せるように書いた」って感じ、としか口では言えない。KB割合が今回は16ずつで+1、KB距離は16回で1ループしてる。上の数字共はこれのために用意
SEQUENCEが連番を作れるので、それを上手いことごちゃごちゃしてやってます。「フラグ用」のとこは全部1で敷き詰めただけ。

A26にはさっきの積のやつが1000越えてるかどうか判定させて、越えてたらそもそもデータ達を書かせないようにしてる(B:E列)。だいじ

F26:M26はオートフィルで全部同じように。
もしB3(マイナスかのフラグのとこ)がfalseなら左側の値そのまま並べ。
trueならそのKB割合とKB距離でタフネスがちゃんと当てはまるか計算し、あてはまるかつ左の値も1なら1にする、みたいな処理を延々とやってます

…一番大事なところではあるんだけど。総当たりしてるだけだからパンチよわい…


出力部分の前に、ゾンビ性能もついでに調べたいなって思ったので用意。
出力はこんな感じでやる

ただ後はフラグ立ってる項目を全部拾ってそれで計算するだけなので
とてもらく。

最後のフラグがONの物をFILTERでPU。中括弧で処理してるがCHOOSECOLSでもいいと思われ

残りの部分はエンデュア計算機するだけ。
左の項目数カウント4はCOUNTIFでお手軽実装。

あとはUI側に配列持ってきてあげれば出力できるので完成!

というわけでこうなりまし。左下のやつはデバッグ用。積のやつ(n

わーい。
……中身はたぶん理解してもらえたと思うけど、これ説明するメリットってあんまなかったくね…??(

まあ、こんな感じの思考プロセス&設計で計算機つくってました!

そもそもKB距離、KB割合を求めて何になるのか?

イマサラタウン。
そもそも何のために求めてるのかわからないと意味ないですね

  • エンデュア計算機に組み込むため
    これはほぼ作ってる側の人間にしか共感貰えん事と思うんですが、
    調べたらめっちゃ正確なエンデュア発動率がわかるんだからやるしかない。手元で手軽に弄りやすいツールがあるならばそりゃあね

  • エンデュア計算機にいないユニットの耐え数を調べるため
    多分一番普遍的な需要はコレ。アレッツとかアズラキルとかAレーラみたいな「ゾンビ化できたはずなんだけど何耐えだこの人?」って感じな時
    とくに事前知識多くなくても手軽に調べれるのはとても便利。タブンネ

  • 中後衛のノックバックしやすさ、ノックバックで下がる距離を調べるため
    ……何言ってんだコイツって感じだと思いますが、ベルセする時の需要の話。
    例えばだけどKB距離が火力相方に対して長すぎる&リーチも長いと、2回被弾させるのがめっちゃ困難になるみたいな事が起こり得る。
    KB割合も同様で、スティンガーのアレで体力30%だけ削れたけど片方だけKBして、確認したらKB割合が25%と35%だったー、とか。そういう事故減らせるとか、位置調整の計算段階とか、そういう需要。
    あと確かリバイヴの発動が発生するかの位置にもKB距離が絡むとかそういう話もあったはずだし…

ぐらいかなー…って感じでしあ。

終わり!

#メルスト

この記事が気に入ったらサポートをしてみませんか?