CSGO地圖文件大小優(yōu)化,壓縮貼圖文件使符合限制的方法
由于CS:GO第三方社區(qū)服務器加載150MB以上的地圖文件時可能導致服務端崩潰,所以導致部分服務器要求推薦的第三方地圖都需要小于150MB才可以上傳。
本文提供一種方法用于解決這種問題。主要操作就是壓縮貼圖,同時刪除一些地圖內(nèi)占用較大的資源(例如:音頻)。雖然可能導致地圖的貼圖不夠清晰,但是一個競技性游戲貼圖不是很重要,就算再不清晰也不會回到CS1.6那種效果的,畢竟CSGO有HDR。
先決條件
.NET Framework v3.5
包括 (VTFEdit打開的時候系統(tǒng)會提醒你裝)已安裝
Java
已安裝 以下工具
VTFEdit ? ?
VTFEdit
修改.vtf格式的貼圖文件VIDE ? ?
VIDE
Valve Integrated Development Environment 用于修改地圖文件的資源BspZipGUI ? ?
BspZipGUI
用于修改地圖文件的資源
VIDE
和 BspZipGUI
二選一, VIDE 有嚴重的BUG問題, 新增文件的同時不能刪除文件, 但是界面易用, 反正不是V社自己開發(fā)的工具這東西就這樣.
bspsrc ? ?
bspsrc
用于提取地圖文件資源游戲本體和地圖文件(.bsp)
操作步驟
當你下載好了以上工具并準備好了地圖文件,那我們就可以開始了。
準備
創(chuàng)建一個工作區(qū)文件夾,里面放置這些內(nèi)容。
分別是bspsrc,VIDE,輸入文件夾 input,輸出文件夾 output,地圖文件(.bsp) 和 VTFEdit。
解包貼圖
運行bspsrc目錄下的bspinfo.bat或者bspinfo.sh。
運行后界面應如圖所示。
將地圖文件(.bsp)拖入軟件窗口,正確導入后如圖所示。
切換到Embedded files選項卡,點擊Extract all,將文件釋放到input目錄下。
貼圖解包完成,關閉bspinfo軟件。
貼圖的壓縮
一般情況下我們只能壓縮materials里面的材質,這里面一般情況下存放的是地圖貼圖和模型貼圖。由于很多作者上傳地圖的時候使用的都是4K貼圖,更有甚者使用8K貼圖的,一個貼圖都有幾十M,地圖文件能不大就有鬼了。
單次轉換文件過多可能導致VTFEdit崩潰,所以可以提前將input/materials目錄下一些較小的文件以及vmt文件刪除掉,因為這些文件再怎么縮小也無濟于事了(邊際效應),減少等待時間和崩潰概率。
打開VTFEdit工具,選擇Tools選項卡,再點擊Convert Folder。
選擇input下的materials文件夾,將vtf貼圖轉換為tga格式,輸出文件夾選擇output。
當轉換完成后,進行下一步操作,更改輸入的目錄為output和輸出的目錄為vtf_output以及轉換方式。
點擊Options更改選項,降低Clamp選項下的Maximum width和Maximum height(推薦情況是512和1024,數(shù)值越小文件越小),然后點擊OK保存。
點擊Convert完成tga轉換回vtf的過程。
轉換完成,關閉VTFEdit,完成下一部分操作吧。
貼圖的導入和替換
上述步驟中我們完成貼圖的壓縮,接下來該對已有的文件進行替換了。
注意一次只能導入單個子目錄下的所有文件,并不能一次性導入所有貼圖。要批量導入可以將剛才壓縮好的貼圖(vtfoutput)目錄下所有文件丟進csgo的materials文件夾,然后使用Scan指定CSGO目錄進行導入。
打開VIDE,點擊Pakfile Lump Editor(如圖)。
點擊BSP Options分類下的Open按鈕,選擇地圖文件(.bsp)。
點擊Pakfile Options分類下的Add按鈕,批量選擇導出的貼圖。
根據(jù)原本文件存放的路徑填入對話框,例如vtfoutput/nippertextures/20th原本對應的是materials/nippertextures/20th,所以填入以上內(nèi)容點擊OK確認。
點擊后提示正在處理并確認是否替換文件,選擇Yes to All。
重復步驟 3-5,直至所有要修改的貼圖已經(jīng)導入完成。
如圖,已修改的文件會用其他顏色高亮顯示,然后點擊Save保存地圖文件(.bsp),縮圖結束。
原本的bsp文件就會被替換為修改好的,并創(chuàng)建一份原有文件的.bak備份。
最后
本文由于CS2的發(fā)布,希望各大服務器盡快更新至新版本,本文可能已失去時效性,現(xiàn)進行公開。
感謝你的閱讀,本文由淺愛(@ShallowAi) 原創(chuàng)撰寫,遵循CC-BY-SA協(xié)議,全文圖片詳見個人博客。