投擲物軌跡的「版本稅」:彈跳衰減、碰撞盒微調與預設道具線為何必須重練

2026年10月14日 16:00:10

投擲物軌跡並非靜態,而是由版本、碰撞盒、出手高度與伺服器 tick 共同寫成。本文解析為何你的預設道具線在更新後會偏移,以及如何高效重建。

導語

你有沒有過這種體驗:上週還穩穩封住 Mirage 中路的那顆煙,這週更新後落點偏了半個身位,隊友說你「手抖」,但你知道自己沒抖。問題不在手,在物理層。投擲物從來不是靜態的——它的軌跡是版本、碰撞盒、出手高度和伺服器 tick 共同寫出來的一本帳。這本帳每隔幾個版本就會被悄悄改一次,而你的預設道具線,是用舊帳本背下來的。

一、彈跳衰減:不是「彈得低了」,是能量帳本換了

先釐清一個常被混淆的概念:投擲物的彈跳不是簡單的「反彈角度」。CS2 裡手雷、閃光、煙霧的碰撞響應包含三個可調量——恢復係數(restitution)、切向摩擦和角速度阻尼。恢復係數決定垂直方向彈回多少能量,切向摩擦吃掉水平速度,角速度阻尼則影響投擲物落地後「滾」多遠。

這三個量裡,恢復係數最敏感。它只要動 0.02,一顆從 Inferno 香蕉道木桶上彈向三箱的煙霧,落點就能差出一個箱子的寬度。更麻煩的是,恢復係數不是全局常數——不同材質表面(木板、金屬、水泥、沙地)有各自的響應曲線。當版本調整了某一類表面的物理材質,你那條「打木桶彈三箱」的線就廢了,但打水泥地的線可能完全沒變。

所以重練的第一步不是「再扔一遍」,而是先確認:這條線依賴的是哪種表面。依賴木桶、依賴鐵皮、依賴沙地的線,各自的版本風險完全不同。

二、碰撞盒精度:你瞄的是貼圖,引擎算的是凸包

第二個變數更隱蔽:投擲物碰撞檢測用的不是你看得見的模型,而是一組簡化凸包(convex hull)。地圖作者更新某個道具的碰撞盒時,視覺上可能幾乎看不出變化,但凸包的頂點位置動了,投擲物的反彈法線就跟著動。

典型場景是「貼牆扔」。你對著 Ancient 甜甜圈缺口那面牆的視覺邊緣出手,以為投擲物會擦著牆皮飛過去,實際上它撞上了一個比貼圖外擴兩公分的凸包,軌跡被提前折了一下。兩公分在出手點放大到落點,就是半米。

職業隊的做法是:對每張圖的預設道具,記錄「出手點—碰撞點—落點」三段座標,而不是只記落點。碰撞點一旦被版本改動,落點必然漂移,但如果你只背落點,你根本不知道漂移從哪一段開始。

三、出手高度:站姿、蹲姿與移動中的「隱形偏移」

第三個變數來自你自己。投擲物的初始位置綁定在角色手部骨骼上,而手部骨骼的位置受站姿、蹲姿、甚至移動速度影響。版本更新如果調整了手部骨骼的綁定偏移,或者改了蹲下時相機與手部的相對關係,你同樣的準星對準,出手點就變了。

這就是為什麼有些預設煙在「站著扔」時沒問題,「跳扔」或「蹲扔」時偏得離譜。跳扔尤其危險:起跳瞬間的垂直速度會疊加到投擲物的初速度上,而垂直速度的數值受版本物理參數影響。你以為跳扔只是多飛一點,實際上它改變的是整條拋物線的形狀。

四、重練的正確姿勢:20 分鐘重建座標系

不要盲目重扔一百遍。按這個順序來:

  1. 先固定站姿和準星錨點,只改一個變數,確認是出手點漂了還是碰撞點漂了。
  2. 用「短距離低拋」做基準測試,排除長距離空氣阻力累積誤差。
  3. 對每張圖的預設道具,至少準備兩條冗餘線——一條依賴彈跳,一條依賴直拋。版本動了一邊,另一邊還能頂。
  4. 把新落點寫進你的筆記,但標註「版本號 + 測試日期」,因為下一次更新它可能又變。

投擲物不是背出來的,是算出來的。版本稅每次都要交,區別只在於你是提前交,還是在比賽裡被對面用一顆你封不住的煙收走。