sub-tickはtickを細かく刻むのではなく「いつ有効か」をタイムスタンプに委ねる。カウンターストレイフ窓は位相で漂う区間となり、呼吸を合わせる必要がある。
結論から言う。CS2のsub-tickはtickを細かく刻むものではない。「いつ有効と見なすか」をサーバーtickの手から取り上げ、タイムスタンプに委ねる仕組みだ。つまりAを押してからDを押すその瞬間、サーバーが見るのは1tick内の二元状態ではなく、時間刻み付きの入力シーケンスだ。カウンターストレイフ窓は固定長の物理量ではなくなり、入力位相に応じて漂う区間になった。
1. 入力サンプリングレートはカウンターストレイフ精度ではない
多くのプレイヤーは「カウンターストレイフが正確」な理由をキーボードのポーリングレートやモニターのリフレッシュレートに求める。これらのパラメータは確かに見えるものと送るものに影響するが、サーバーがどう裁定するかは決めない。sub-tickアーキテクチャでは、クライアントが移動入力にローカルタイムスタンプを付けて送信し、サーバーは独自の時刻同期でどの入力がどのtick区間に入るかを判断する。
問題はここだ。カウンターストレイフは連続プロセス——Aを離し、Dを押し、速度がゼロになり、クロスヘアが戻る。この一連の動作はクライアントでは滑らかだが、サーバーから見るとタイムスタンプ付きの断片にサンプリングされる。キーのリズムがサーバーの分割点付近に重なると、同じ筋肉記憶が二つの異なる結果として解釈される。「停止済み」と判定されるか、「まだ滑っている」と判定されるかだ。だからある時はナイフで切ったようにクリーンに感じ、ある時は氷の上を歩くように感じる。
2. クロスヘアの戻りは足より半拍遅い——錯覚ではない
カウンターストレイフの終点は速度ゼロではなく、クロスヘアが射撃可能な安定状態に戻ることだ。sub-tickはこの過程を二本の線に分ける。速度線とクロスヘア拡散線だ。速度線はサーバーが裁定し、クロスヘア線はクライアントがローカル予測で描く。二本は異なる時間源を使う。
そこで窓が生まれる。サーバーはもう立っていると見なしているのに、クライアントのクロスヘアはまだローカル予測で収束中。あるいは逆に、クロスヘアは収束したのにサーバーが速度ゼロを確認していない。この窓は長くないが、AWPの撃ち合いやライフルのタップ撃ちでは弾の行方を決めるのに十分だ。「クロスヘアは戻ったのに弾が飛んだ」と感じるのは、本質的に二つのタイムラインが揃っていないのだ。
3. カウンターストレイフ窓を呼吸として練習する
窓が漂うなら、固定リズムでぶつけてはいけない。より実用的なのは、カウンターストレイフを短い呼吸として扱うこと——逆キーを直感より少し強く、少し長く押し、速度線を先に着地させ、クロスヘア線が追いつくのを待つ。具体的には:
- aim_botzで単発タップを使い、逆キーを意識的に20〜30ミリ秒長く押し、クロスヘア収束の尾を感じる。
- 武器を変えて繰り返す。武器ごとにクロスヘア拡散曲線が異なり、窓の見え方も変わる。
- 自分のPOVを録画し、逆キーを押してから最初の弾までのフレーム数をコマ送りで見る。キル数ではなく。
この練習の目的は速くすることではなく、窓が漂っても安定した着地点を持つことだ。sub-tickはより細かい時間刻度を与えるが、その代償として自分で整列線を見つけなければならない。カウンターストレイフ窓はリフレッシュレートの中にはない。クライアントとサーバーの位相差の中で呼吸している。あなたがすべきは、それに合わせて呼吸することだ。
最後に一つ。sub-tickを万能の説明にしてはいけない。ネットワークの揺らぎ、サーバー負荷、自分の入力デバイスの遅延がすべてこの窓に重なる。変数を一つずつ切り分ける方が、tickのせいにするより役に立つ。C5GAMEにある摩耗やパターン表記のスキンはカウンターストレイフの役には立たないが、グリップが安定したマウスパッドと信頼できる周辺機器一式なら、少なくとも入力位相の揺れを少しは抑えられる。