parlnetのPoE備忘録

ハクスラオタクのPoEメモ帳

Mana Starved Snipe Mechanismと、Server tick rateに縛られない数値の変動について(完成版)

2023/12/02 23:10 更新
2023/12/04 更新

 

 3.23はメタがハチャメチャに動きそうというのは分かった。
 そんなことよりSnipeだ。

https://www.reddit.com/r/pathofexile/comments/1870n8j/mana_starved_snipe_mechanic_explained/

 こういう検証スレッドが出来てた。
 コメントも含めて簡単にまとめると「別に1st StageのASが360%になってるわけじゃない→いやなってるけどチャネリング終了時にフォロースルーがあるっぽくね? とすると最大APSは10.1っぽいか?」という感じ。
 こちらのブログでも検証されている。
 で、俺も試運転してきたんだけど、俺が幾つかPoEの仕様を勘違いしていたことが分かった。

 根本的なところなんだけど、AttackとCastは厳密にはserver tickの影響を受けない。同様にマナ消費・回復もserver tickの影響を受けない。
 より正確には、server tick rateはクライアント-サーバー間の情報の入出力のための数字であって、クライアントを介さずサーバー内部でのみ処理可能な情報はリアルタイムで処理されている。サーバー内部の時間はtick rateに支配されているわけではない。

 

 TL;DR: 最大APSは10.1である。これの実現にはSnipeのAttack time=チャネリング速度を0.066s以下にした上で、最大マナとSnipeのマナコストはぴったり同一にし、かつ[SnipeのCost] / [Mana reg]の値が10.1から15.15の幅に収まっている必要がある。
 Mana regは最大マナで変動し、最大マナはLevelとIntで変動するため、レベルとIntの正確な調整が求められる。
 言うほど低いASでは動かないが、more ASとmore dmgを両立した稀有なジェム。

 

 APS30.3を遥かに超えうるASを持つキャラがFlicker Strikeを発動したとする。しかしそのASが億だろうが兆だろうが、APSは30.3を超えることはない。これは何をどう頑張っても『スキルの発動』というクライアントからの操作をサーバーが受け取れる回数が30.3回しかないからだ。
 しかしこれにはMultistirkeという抜け道がある。MultistrikeのRepeat Attackはクライアントからの入力ではない。Repeatはクライアントから「スキルの発動」という操作をサーバーが受け取ったあと、サーバー内部で勝手に行われる。だからMultistrikeの追加攻撃はAPS30.3の壁を突破できる(SpellにおけるSpell Echoも同様)。実際毎秒114回殴るFlicker Strikeをやったバカは実在する。
 LifeやManaやその他リソースの変動もtick rateは関係なくサーバー内部で途切れなく変動している。マナコストが一見tick rateに従って減るように見えるのは、スキル発動という操作入力がtick rateに縛られているからだ。

 そこでChannelingだが、Channelingは『チャネリング開始』の操作を受けたあとそれを終了する操作があるまでサーバー内部で継続的に処理される事象なため、tick rateに縛られない。つまりチャネリングAPSはtick rateの壁である30.3を突破できる。
 だから通常のスキルとは違いチャネリングによるコストの消費はtick rateの影響を受けていない。終了の入力があるまでサーバー内部で勝手に減らし続けるからだ。
 そしてチャネリングの開始と終了はサーバーへの入力なので1tickかかる
 最後に、Snipeは厄介なことにtickに縛られないチャネリングによってtickに縛られたtriggerを行うスキルである。そのCDは2tick=0.066sだ。

 フォロースルーがあるというのは厳密には間違いで、単にスキルのCD中はトリガー条件をチェックできない、というTriggerスキルの仕様によるもの。要するにSnipeのCD中はSnipeのチャネリングを開始できない。だからSnipeを撃ったあとに2tickのCDが必ず発生する。フォロースルー2tickだ。

 例として、SnipeのAttack timeが0.06sのときの動作を図示するとこうなる。
図1※oom: out of mana、マナ切れのこと

 雑すぎる図に自分でも驚いている。ない方がマシじゃねえか?
 まず、1st stageのASは相変わらず倍になって360%。だからAttack timeが0.06なら最初のチャネリングは0.03秒で完了する。その後チャネリング開始と同じ1tick内で2nd stageへのチャネリングが開始され(赤枠)、oomが検出される(青線)。このため次の2tick目でSnipeがリリースされ、SnipeはCDに入る(緑枠)。3tick目はCDなのでSnipeのチャネリングを再開できず、4tick目で2発目のSnipeのチャネリングが始まる。
 これが正常な動作で、同時にこのメカニズムの理論値である。ASはAT0.066をわずかでも下回っていればとりあえずOKだ。

 じゃあ問題があるとどうなるか。

図2

 1st stageのチャネリングが0.033s=1 tickより長いと、2tick目に問題が起こる。
 Snipeのトリガーはきっかりserver tickの開始時に起こる。つまりわずかに0.01sでも足が出るとそのtickではTriggerできないため、空白のtickが生まれる。すると1shotに4tickかかってしまう。APSは7.575だ。

 Max ManaとMana regはもっと厳密な値が求められる。図1で言うと、青線=マナ不足をチェックする2tick目時点ではマナ不足状態かつ、緑枠=SnipeのCD中にマナが回復しきる必要がある。

 だからMana regの設定がおかしいと空撃ちや最悪チャージし続ける状態ができる。マナは小数点以下まで計算しているようなので(厳密にどこまでかは分からん)、3costに対し5manaで35regとかだと何発か空撃ちや2nd stageまでチャージしてしまう状況ができる。極めて厳密にcostとregを一致させられればいいけど手間だ。最大マナをコストと同じにしてしまえば多少あふれる分は最大マナがカットしてくれるので計算が楽だ。

 ところで、Mana regは特に追加のソースがない場合Max Manaの1.6%/sである。そして追加のソースがない場合、Max Manaは[Level*6] + [Intelligence]である。
 要するに? Intとレベルが変化するとMana regは変動する。
 そして最大マナが変動するということはUnreserved Manaも変動する。
 つまりレベルは100であることが望ましく、Intも変動させないようにしなければならない。Lv95とLv100ではマナは30違い、regは0.48変わる。Intも然りだ。

 要するにスターターには向いてなさそうということ。まあでもなんか普通にSnipe撃つdotビルドそこそこやれるっぽいじゃん? つか普通の弓スタートしてSnipe試せばいいしな。

 あと、ここ俺が前回勘違いしてたんだけど、SnipeのASを0.066以下にするとなるとそれなり以上のASは必要で、ASクラフトしただけの青ショートボウで大体350%くらい。とはいえこれはincだけで稼いだ値だから、実際にやるならDeadeyeでGale Force使うのがほぼ前提になると思う。
 前提もクソも弓でDeadeye使わない方が大変だろ、と言いたいけどIgnite eleとかは難しいってことでもあるので結構ビルド幅は狭くなりそうだな。

 感想としては、第一印象ほどの最強メカニズムではないが、それでも強いメカニズムではあると思う。APS10.1を自力で超えに行くようなビルドは弓でもなかなかないし。というかmore ASとmore dmg両立したジェムが弱いわけないのだ。マナ調整も手間が大変なだけでリソース的にそこまで重いかというとそうでもないしね。

 正直これ書き終えた今も頭こんがらがってるところあるので、議論指摘質問など大歓迎です。この考察が全部間違っている可能性は大いにあるので検証マンが増えてくれるとありがたい。こんなことやってないでAct Runの練習した方がいいんじゃないですか?
 あとPoEの全てを知り尽くしたPoE仙人いませんか? できればおっぱいがでかい美女がいいです。よろしくお願いします。