見出し画像

【プリコネR】「実質n凸ループ」について考えてみよう

0.初めに

 こんばんわぁ。ローララメールガチ恋です。里菜の声で喋る人魚好きすぎて頭おかしくなっちゃーう。

 思考自体はちょうど1年前にある程度済ませていたことをふと思い出したので、アウトプットおさぼりの1周年記念にまとめました。
 前半はとても基本的な話なので、知らなかったという人が読めば役に立つ気がします。ただし、既に上位でやってる人であれば全員知っているようなことです。……知ってるよね?
 逆に後半は、思考自体が目的になりかかっているような内容なので、役に立つかは謎ですが、せっかく考えたんだから書いておき得の精神で置いておくということで。

 あなたは「持ち越し」派?「持越し」派?あたしは後者。

1.持越し秒数計算の基礎知識

 ボスを倒すとき、最後の1凸は止めを刺す凸(ラストアタック=LA という)になり、LAからは持越しが生まれる。この持越しで戦える秒数は、通常は、

持越し秒数
= min( 90 , ⌈ 残り戦闘秒数 + 20 ⌉ ) …①

だが、同時凸により残りHPを超過するダメージを与えて倒した場合は、

持越し秒数
= min( 90 , ⌈ 90 * ( 1 - 残りHP / 与ダメ ) + 20 ⌉ ) …②

になる。実は、この2つの式は簡易版で、共に、

持越し秒数
= min( 90 , ⌈ 戦闘秒数 * (1 - 残りHP / 与ダメ ) + 残り戦闘秒数 + 20 ⌉ ) …③

の特殊な場合になっている。確認してみよう。

「min( a , b )」は「aとbとの小さい方」の意味。一般に使われている日本語名があるかは知らない。
「⌈ ⌉」は「切り上げ」の意味で、天井関数という。

 そもそも「同時凸」が何か分からない人は、こんなnoteよりこっちを読もう。「与ダメ」と「削ったHP」は同じ意味だ。もうだいぶ前の記事なので編成メタやダメージの例は古くなってしまっているものの、分かり良くクラバトのいろはをまとめてくれている。

1-1.90s持越しの条件

 ②式を用いて持越し秒数が90sになる状況を求めてみよう。

切り上げがあることに注意して、

90 - 1 < 90 * (1 - 残りHP / 与ダメ) + 20

これを変形して、

30/7 < 与ダメ / 残りHP …④

 残りHP以上のダメージを与えることを「オーバーキル」といったり、右辺(与ダメ / 残りHP)のことを「オバキル倍率」といったりする。また、90sの持越しを「フル持越し」といったり、フル持越しが発生することを「フルバック」といったりする。
 「フルバックに必要なオバキル倍率は4.3」なんかは各所に書き込まれていると思うが、4.3という値の根拠は 30/7 = 4.285… より少し大きいことである。

◆閑話:4.3という値が広まってることについて
とても妥当性が高いと思う。周知するには遊びがある方が安全だし、何より、分数より第一位までの小数の方が分かり良い。誰が最初に言い始めたんだろ……?

2.純n凸 / 実質n凸

 ボスHPの50%のダメージを出せる編成では、2凸でボスを倒すことができる。これを、「必要凸数は2凸」とか「2凸で倒す」とかいう。当たり前。ただ、後述する「実質2凸」との違いを強調するために「純2凸」というときもある。

 一方、ボスHPの45%のダメージを出せる編成では、2凸ではボスのHPは10%残ってしまい、3凸目で倒すことになる。しかし、同凸していれば3凸目はフル持越しになる(オバキル倍率4.5>30/7)ため、秒数で見ると新品の凸と比べて見劣りせず、消費した凸は先入れした2凸だけのように見える。これを「必要凸数は実質2凸」とか「実質2凸で倒す」とかいう。
 一般化して、ボスを倒すのにn+1凸必要だが、出てくる持越しの秒数が90sになるような状況を実質n凸という。n凸でギリギリ倒せない時に起こる。

2-1.純n凸 / 実質n凸ライン

 「全部の凸が同じダメージだとして、それが〇〇より大きければ、純n凸 / 実質n凸になるね」という、必要ダメージのボーダーラインが存在するので、そのダメージを「純n凸 / 実質n凸ライン」という。
 「純1凸ラインは敵体力の100%。純2凸ラインは50%」くらいなら暗算だし、先ほど求めた 30/7 という値を使うか、必要与ダメの敵体力に対する割合を未知数とし、②式を用いて立式して変形すれば、実質n凸ラインも計算できるのでやってみよう。

 こちらでも結果は書いておくと、

実質n凸を達成するのに必要な、1凸の与ダメの、敵体力に対する割合をxとして、
30 / ( 30n + 7 ) < x …⑤

 でもって、n=6 までのラインを一覧にするとこうなる。

あまりにも味気ない表

 表中の値はボスHPに対する割合なので、ボスHPをかければラインがわかる。例えば、HP10000万のボスを、同じダメージを通して実質3凸で倒すには、1凸当たり3093万以上のダメージが必要だ。
 ただし、端数が出た場合は切り上げなければならないことに注意しよう。そうしないとギリギリ足りなくなる。

◆補足
本当は等号がないことにも注意すべきだが、分数版を使って端数が出ないことはボスHPの設定的になさそうなため、切り上げておけばまぁいいかの顔。
小数版は表内の値が既に小数第5位での切り上げ。

◆閑話:上記の結果のnに0を代入すると?
⑤式中に現れるnというのは「実質n凸」のnだ。なので、入る値としては1,2,3,…が想定されているわけだが、無理やり0を入れてみると、左辺は 30/7 になる。なぜ④式左辺と一致するのか、余裕があれば考えてみよう。

2-2.実質n凸ループ

 実質n凸ラインを超えるダメージの凸をn+1個でボスを倒し、発生したフル持越しを次周の同ボスに当てれば、新品凸n個と合わせて、ボスを倒した上で再度フルバックする。
 このような、持越しの仕組みを使い、n凸ではダメージが足りないボスを、1体当たりの消費凸数n凸で捌き続けることを「実質n凸ループ」という。
 タイトル回収まで来た。前半はここまで。


--------前半と後半の間--------


3.実質n凸ループ条件の複数存在性

 実質n凸ループができる条件は何だろうか。2-2.で書いたように、それぞれの凸のダメージが実質n凸ラインを超えていれば達成可能なのは間違いないが、実は、それは数ある条件のうちの一つに過ぎない。つまり、1凸のダメージが実質n凸ラインに満たない場合でも、実質n凸ループが可能な状況が存在する。

 最も簡単な例は、先月(2021/12)のランドスロースのような、タイムアップ直前にキャラが動けなくなる状況だ。ランドスロースでは最後の2秒ちょっとはスタンのせいでダメージが出せないので、それぞれの凸のダメージが実質n凸ラインに届かなくても、それで88s返って来るならば、その持越しは同ボスに当てる場合に限っては、90sの新品凸と比べ遜色がない。次周で新たに発生する持越しもまた88sなってしまうが、それもまた同ボスに当ててしまえばいいという寸法だ。

3-1.頑張って解く

 例の紹介も済んだところで、今回も条件を求めてみよう。特筆すべきは、最終ダメージ(90s経過時点でのダメージ)だけでは考察が及ばないことだ。それを考慮して、以下のように x , T , x' をおく。算数タイムいくぜ。

実質n凸ループ達成可能なTLの、90s経過時点でのダメージの、ボスHPに対する割合をxとする。
同TLに、ある自然数T[s] が存在して、Ts経過の直前まででダメージが著しく良く伸びる、あるいは、Ts経過以降ダメージの伸びが著しく悪くなるとする。
同TLの、Ts経過時点でのダメージの、ボスHPに対する割合をx'とする。

これにnを加えた4つの値を使って、実質n凸ループが達成されている時の状況を箇条書きにすると、

先入れダメージ = x' + ( n - 1 ) x
LAダメージ = x
返ってくる持越し秒数 ≥ T

これと②式を用いて、

T - 1 < 90 * ( 1 - ( 1 - x' - ( n - 1 ) x ) / x ) + 20

動く値が多くて変形の仕方が悩ましいが、実際に実質n凸ループ可能性を考慮しなければならない状況になった時の運用のしやすさに配慮して、nとxを先に固定できるとし、0~90を動くそれぞれのTに対してx' がいるべき領域をt-d平面に図示することを目標にする。tは経過時間(単位[s])、dは与ダメの敵体力に対する割合(無次元)だ。
そのためにはまずx' について整理する。

1 - x ( ( 111 - T ) / 90 + n - 1 ) < x' …⑥

⑥式左辺を用いた関数

d = 1 - x ( ( 111 - t ) / 90 + n - 1 ) …⑦

を作ると、⑥が示す領域は、⑦式のグラフの上側になる。
というわけでグラフの形を考えよう。⑦式はtの1次関数なので直線で、tの係数x/90 がそのまま傾きだ。(111-t)/90+n-1=0 であればパラメータxが動いてもdは不変なので、(t,d) = ( 111+90(n-1) , 1 ) がxの変動に対する不動点。これはnにのみ依存する点である。

また、x' にはその定義により、隠れた条件(x' ≤x)がある。つまり、

d = x …⑧

より下側。

以上より、求めたい領域は直角三角形をしていると分かった。
例えば、n=1 , x=30/41 の場合はこんな感じ。

⑦と⑧潰れててすみません

後は、n , xを動かした時に、この三角形がどのように変形するかを把握できれば、知りたかった条件について十分に理解できたと言って差し支えないだろう。
そのためのいい方法が何かないかと考えてみると、イメージのしやすさ重視でさらに幾何に寄せて、⑦式のグラフと⑧式のグラフの交点さえ指定すれば、求めたい領域が図示出来ることを思いつく。交点が指定されていれば、不動点と交点を通る直線を引けばそれが⑦式のグラフに違いなく、交点を通りt軸に平行な直線を引けばそれが⑧式のグラフに違いない。
というわけで交点を求めよう。⑦式と⑧式を連立して、

1 - x ( ( 111 - t ) / 90 + n - 1 ) = x

これをxについて解くと、

x = 90 / ( 111 + 90n - t )

なので、交点はパラメータ表示で (t,d) = (t, 90 / ( 111 + 90n - t ) )。右辺に含まれるtはパラメータであることに注意する。
パラメータを取っ払いxを動かした時の交点の軌跡を求めると、

d = 90 / ( 111 + 90n - t ) …⑨

これはnにのみ依存する曲線である。

先の例(n=1 , x=30/41)にこの曲線を書き込むとこんな感じ。

軸のtとd書くのサボってすみません

n , xを動かすとこんな感じ。

https://youtu.be/fcHghq90lqE

nで場合分けして、実質n凸ライン、不動点、交点の軌跡のみを描くとこんな感じ。

n = 1
n = 2
n = 3(この辺からひしゃげて使えなさそう)
n = 4
n = 5
n = 6(かなりやけくそ)


3-2.結果の使い方の解説

 長かったがあたしは楽しかった。ここまで読んだ人、お疲れさまでした。もしかしたら、読むだけ読んだけどあまり分からなかったという人が多いかもしれないので、ケアとして後半の結果の使い方をまとめておく。

 まず復習しておくと、いま求めたのは「最終ダメ―ジが実質n凸ラインに満たないが、実質n凸ループは可能であるTLの条件」だ。なので、上記の結果を活かせるのは、「どう頑張っても打点が伸びず、実質n凸ラインにギリギリ届かないか、届くにしてもダメコンして1人が限界だ、くらいのTLがある。だけど進行的にはどうしても実質n凸ループがしたい。最後の望みをかけて、そのTLに、90s以外の持越し秒数を発生させながら実質n凸ループができる適性があるかを判定しよう」という場面だ。
 「結構ありそうだな」と思うかもしれないが、はてさて。

 というわけで使い方のまとめだが、

・step1
nを把握し、3-1.の一番最後からそれに合うグラフを取ってくる。
step2
x(TLの最終打点 / ボスHP)を計算し、d = x の直線を引く。
step3
step2で引いた直線と元々描いてある曲線の交点と、元々描いてある不動点を通る直線を引く。
step4
TLのダメージの伸び方をグラフにプロットする。
step5
・・勝ち
step2で引いた直線、step3で引いた直線、d軸で囲まれる三角形に、step4でプロットした点が入っていれば、実質n凸ループ可能。おめでとう。最初は、周を追うごとに持越し秒数が段々と縮むが、三角形に入っている点の t 座標より小さくなることはないので、途中で秒数劣化は止まる。
・・負け
プロットした点が三角形に全く入らなければ、残念ながらそのTLに実質n凸ループ適性はない。

以上になる。

 やってみると分かるが「・・負け」ばっか引く。知見noteだと思ったか?残念だったな。

◆補足
もちろん代数的に評価することもできる。そのための素材は記事中にあるので、余裕がある人はやってみよう。

4.終わりに

 前章の最後に「残念だったな」と書いた通り、また、1.で「思考自体が目的になりかかっている」と書いた通り、今回後半で紹介したことそれ自体には、そこまで価値はありません。でも、「思考遊び部」をしていると面白い世界が見えたり、もsssssっしかしたら役に立つかもしれなかったりと、なかなか飽きないので、キッカケとして消費してもらえるだけでもいいと思い、前半の基本的な内容とくっつけた一本の記事にしました。

 少しでも「なんじゃこれは」と思ってくれる人がいたら嬉しいし、聡い読み手が、ここに書いてあることを更に発展させてくれれば僥倖です。もちろん、あたし自身もこの先を色々考えてるわよ。

◆例
実は、実質n凸ループ条件に関する考察は、この記事では100%ではありません。

 まぁこの手の遊びはやたらと時間を喰うので、出来る量に限りはありますがね。

 気付けば6000字が近い……。長々とすみませんでした。また何かの機会に。ではこの辺で。

◆閑話
あたしが、去年に考えたことを「ちょうど一年経った今」、ふと思い出したのはなんでわよ~?

◆追記
投稿後、一部、考察に浅さがあることに気付きました。急くとダメわね。時間取れる時に追加で書きたい。

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