從技術層面拆解 CS2 子 tick 輸入如何改變急停時機、準星回復,以及視覺回正與實際武器精度之間的落差,並附上可在本地伺服器重現的對照測試。
先說結論:在 CS2 裡,你按反方向鍵急停的那一下,伺服器並不是在下一個 tick 才看到你。它看到的是一個帶時間戳的輸入事件,夾在兩次 tick 之間。這件事改變了急停的數學,也改變了準星回正在你眼裡到底發生在哪一幀。
一、subtick 把急停從「整格」變成了「滑尺」
CSGO 時代的急停邏輯很好理解:你在 tick N 按下反方向鍵,伺服器在 tick N+1 結算速度。兩格之間是 64 分之一秒(或 128 分之一秒),你的反方向鍵必須在那段時間裡把速度壓到閾值以下,否則子彈就飄。
CS2 不是這樣。移動輸入帶時間戳上傳,伺服器在兩次 tick 之間做插值。聽起來更精確了,但實戰體感是急停窗口變窄了——因為你鬆開正方向鍵的那一刻,減速度已經開始計算,而反方向鍵的按下時刻如果晚了一點點,速度曲線會先滑過一個峰值再往下走。
我在本地伺服器上用 sv_cheats 1 配合 cl_showpos 1 做了對照:同一個選手,同一把 AK,ad 急停打靜態靶。CSGO 的穩定窗口大約是按下反方向鍵後 2 到 3 個 tick;CS2 裡,如果反方向鍵的輸入時間戳落在兩次 tick 的正中間,速度歸零會提前半個 tick 出現,但如果落在 tick 邊界附近,反而比 CSGO 慢。
這就是為什麼很多人說 CS2 急停「時好時壞」。不是手感問題,是輸入時間戳和你當前幀率、網路抖動之間的相位關係。
二、準星回正不在你以為的那一幀
另一個被忽略的變數是準星回正。你開完一槍,準星擴散開始收縮,你以為收縮完成就能打第二槍。但實際上,準星動畫的收縮曲線和武器真實精度恢復曲線不是同一條。
在 CS2 裡,準星回正動畫受 cl_crosshair_recoil 和幀生成時間影響。如果你的幀生成時間不穩定,準星看起來已經回正了,但武器精度可能還差幾個百分點。這在 AK 第二發點射和 M4 壓槍轉移時特別明顯。
我的驗證方法很簡單:在創意工坊地圖裡對著牆打兩發點射,用 weapon_debug_spread_show 1 打開精度顯示。你會發現準星動畫回正後,精度框還有一小段沒合攏。這段差距在 144Hz 和 60Hz 下不一樣——幀生成時間越長,動畫和精度之間的錯位越大。
所以「準星回正就打」這個習慣,在 CS2 裡需要往後推一點點。不是讓你等,是讓你知道那一點點在哪。
三、三組可以在本地重現的對照
第一組:ad 急停。用同一把槍,分別在你顯示器刷新率的整數倍幀和半幀位置按下反方向鍵。記錄 cl_showpos 裡速度歸零的時刻。你會看到相位差帶來的窗口浮動。
第二組:準星回正。打開精度顯示,打兩發點射,對比準星動畫合攏時刻和精度框合攏時刻。換 60Hz 和 144Hz 各做一次。
第三組:子 tick 輸入。用 net_graph 1 看你的輸入延遲和伺服器 tick 對齊情況。如果你的 ping 抖動超過 5ms,急停窗口的穩定性會明顯下降。
這三組不需要任何第三方工具,本地伺服器加控制台就能跑。跑完你會明白:CS2 的移動不是變難了,是變滑了。你過去靠肌肉記憶卡的那個點,現在需要靠理解去重新定位。
急停窗口、準星回正、子 tick 輸入,這三件事在 CS2 裡是同一筆帳。算清楚了,你的第一槍才真正屬於你。