從 vpk 到檢視台:武器箱、收藏品與探員在遊戲內到底怎麼被「點名」

2026年10月13日 12:00:09

拆解 CS2 中武器箱、收藏品與探員背後的資源層,並解釋為什麼商店頁面和遊戲客戶端有時會說不同的故事。

導語

在 C5GAME 上翻皮膚的時候,我們看的是一張渲染圖、一個磨損區間、一個價格。但遊戲客戶端不認識這些。它認識的是 scripts/items/items_game.txt 裡的一行條目,認識的是 materials/ 下面一個 .vmat,認識的是 models/ 裡某個 .vmdl。武器箱、收藏品、探員這三類東西,在資源層面走的是三條不同的路,而這三條路恰好解釋了很多「為什麼頁面和遊戲裡對不上」的老問題。

武器箱:一個容器 ID 而不是一堆散裝皮膚

很多人以為武器箱 = 一籃子皮膚。其實在資源結構裡,箱子本身是一個獨立的 item,它有自己的 prefab、自己的開箱動畫資源、自己的音效事件。箱子裡能開出什麼,是寫在 items_game.txt 的 client_loot_lists 裡,靠一串「物品定義索引」去指向具體皮膚。

這意味著兩件事。第一,箱子裡的皮膚並不是「打包」在箱子模型裡的,你開出來的那條 AK 和商店裡直接看的那條 AK,指向的是同一個物品定義,只是獲取途徑不同。第二,箱子的開箱動畫(那條旋轉的光帶)是一段固定資源,它不區分你開出的是軍規還是隱秘,稀有度只影響光帶停下時的高亮和音效層。

所以當你在 C5GAME 上看某個箱子,頁面展示的「可能內容」是上游把 loot list 平鋪出來的結果,而遊戲裡你實際看到的是那條光帶轉完停在哪一格。兩者描述的是同一批物品定義,但呈現邏輯完全不一樣——一個是一次性攤開,一個是機率落點。

收藏品:和地圖、賽事綁定的那套命名空間

收藏品(Collection)在資源層面更像一個「命名空間」。它不是箱子,沒有開箱動畫,它的作用是給一批皮膚打上同一個來源標籤,比如某張地圖的掉落池、某屆賽事的紀念品池。

關鍵點在於:收藏品本身不決定磨損,也不決定圖案。它只決定「這條皮膚屬於哪個池子」。真正決定你手裡這把槍長什麼樣的,是物品定義裡的 paint_kit 索引,以及那個 paint kit 對應的 .vmat 和貼圖。磨損是運行時由 seed 算出來的,圖案位置也是。

這就解釋了一個老現象:同一款皮膚,紀念品版本和普通版本在模型、貼圖、磨損邏輯上一模一樣,區別只在於紀念品多了一層金貼和一塊銘牌。你在 C5GAME 上看紀念品,頁面會強調貼紙和銘牌,但遊戲裡你按 F 的時候,第一眼看到的還是那把槍本身的塗裝——收藏品這個標籤,是不會畫在槍身上的。

探員:三類資源裡唯一帶「骨骼」的

探員和前兩者最大的不同,是它有完整的角色模型、骨骼、面部綁定和語音事件。武器箱和收藏品是「物品層」的東西,探員是「角色層」的東西。

在資源結構裡,探員對應的是 models/player/ 下的模型,加上一套材質和一套語音。你選哪個探員,改的是角色資源引用,不是物品欄裡的一格貼圖。這也是為什麼探員的「檢視」和槍的檢視完全不是一回事——槍是按 F 看塗裝,探員是在選人界面看模型和手套,進遊戲後你只能看到第一人稱的手模和袖子。

於是就有了那個經典錯位:C5GAME 頁面上探員是全身立繪,遊戲裡你大部分時間只看到一雙手。頁面展示的是模型資源,遊戲裡調用的是第一人稱子模型。兩者同源,但視角不同,觀感自然不同。

把三條路並排看

武器箱是容器,靠 loot list 指向物品定義;收藏品是標籤,靠命名空間歸類物品定義;探員是角色,靠模型和語音資源獨立於物品定義之外。三者都出現在同一個商店界面裡,但在客戶端裡被三套不同的邏輯調用。

所以下次在 C5GAME 上看貨,不妨多想一步:你看到的這張圖,是物品定義的渲染,是模型資源的立繪,還是收藏品標籤下的一個條目。想清楚這一點,頁面和遊戲之間那點「對不上」的感覺,就會變成一件挺有意思的事。