遊戲貼圖打包工具——TexturePacker詳解
TexturePacker是一款快速打包圖片的工具,功能強大,非常適合打包遊戲素材。該軟體是收費的,市面上有流傳破解版,這裡以3.0.9版本為例說明。
開啟軟體可以看到這個介面:
左邊欄是需要打包的精靈,我們用幾個測試示例作介紹(精靈的概念做遊戲的抖動,不贅述):
單擊Edit,如果你的精靈圖片都是存放在資料夾裡,選擇Add Folder,如果是分散的,或只想選特定的幾個,可以點選Add Sprites逐個選擇新增。新增好後在左邊欄裡頭出現了需要打包的精靈圖片。
而此時我的工程介面是這樣的,因為沒有調整右邊欄的引數,所以顯得很凌亂,但是中間這個工程區域是不能自己調節的,只能通過引數設定自動調節,我們下面來仔細研究右邊欄。
右邊欄由4個部分的設定組成:output輸出設定,和輸出的相關引數有關;Geometry圖形設定,主要和打包後的形態和大小有關;Layout佈局設定,主要就是精靈打包的分佈狀態;Advance是其他設定,一般用不到。
output設定:
自上而下一共有11個可選:
- 1是資料輸出的格式,也就是說你的遊戲基於的引擎選擇,有很多引擎框架供選擇,包括常見的cocos和unity,當然也可以自己定義輸出的格式。
- 2是基於1的設定,設定好了某種引擎框架,就可以選擇對應的輸出檔案型別,以及設定路徑。比如我選的cocos2d,那麼就會輸出plist檔案,如果選擇unity,那麼就會輸出txt檔案,具體檔案命名和路徑根據實際情況來定,這裡寫作test。
- 3是打包出來的影象格式,一般做遊戲都是用png的影象。
- 4是打包的紋理圖路徑,根據實際情況來定,這裡用test。
- 5是基於4的設定,選擇png後會出現這個優化選項,優化可以壓縮png的大小,但會降低打包效率。我們做遊戲本身資源圖片不是很大情況下,就不做優化。
- 6是DPI設定,DPI——Dots Per Inch,意思是每英寸列印的點數,值越大,圖片就越清晰,通常製作場景地圖之類的都用300dpi,這裡用預設的72是可以的,根據個人情況可以自行調整。
- 8是影象的格式,其實就是設定有沒有存在alpha通道,以及RGBA四個通道的順序和位深度之類,預設RGBA8888,輸出為32位深度的影象。如果不想要透明度,就RGB888,輸出為24位深度的影象。
- 9是抖動顯示設定,在設定低位深度的影象使用,比如RGBA4444,可用色彩是有限的,不如8888的多,那麼可以通過具體選擇的抖動演算法,來增加更多的色彩,提高影象質量。高深度的影象預設不可選。
- 10可以通過增加list來設定不同的輸出scale等,應用較少,預設空
- 最後是對輸出的內容加密,影響不大,通常也是不需要的。
測試用設定如圖:
Geometry設定:
自上而下有8個選擇:
- 1是設定打包目標的大小,根據你的精靈大小來計算,我們測試用例的鎖大小72*96,定時炸彈大小48*48,並且有上下左右,如果打包是兩兩一行那麼寬度最大就是96+96=192,長度最大就是96+96+48+48=288,由於4個炸彈寬度48*4=192,因此炸彈只需一行即可,那麼長度最大設定成240,我們也可以設定為256,方便描述,總之,不小於計算的最大值的值都可以設定。這裡要注意的是下面的Force squared不能勾選才能自己設定。
- 2是修正大小引數,通常預設空,如果改變,則1失效。
- 3是和精靈密切相關的,初始預設是POT,POT是2為底的指數值,將精靈強制轉換為2,4,8,16……的大小,這種情況用於一些設定為2為底的指數大小的精靈。而通常使用的話會影響打包效果,因此大部分均按照AnySize設定,也就是TP會自己計算精靈影象的最小值,從來參與排列。
- 4是限定打包的結果是正方形,寬和高一樣,影響1的設定。
- 5是字對齊設定,是一個優化的引數,預設不勾選。
- 6是打包設定,軟體可以自動識別精靈大小的最小值,通過該選項,可以選擇演算法,用Best效果最好,但時間花費最大,通常為了良好效果,都用它。
- 7是縮放比例,可以設定打包後的縮放比例,0-1是縮小,大於1是放大,預設1。
- 8是選擇縮放的模式,預設smooth,該設定影響精靈的縮放以及前面Output的AutoSD設定,有不同的演算法可選擇。
我們將測試用例設定為:
Layout佈局設定:
自上而下有14個選擇,我們經過合併後列出12種:
- 1是佈局的演算法,預設MaxRects,使用的空間最小,但常會造成不美觀的現象,且演算法有限,不方便使用。因此通常選擇Basic,可以根據自己喜好調整精靈位置。
- 2基於1的設定,選擇MaxRects才有2,試一下啟發式演算法,調整佈局排列的。如果選Basic則是,可以按照精靈的名字大小等按升序或降序排列,想要的排列順序可以通過修改名稱來實現。
- 3是加空隙,由於這三個都差不多,我們合併到一個選項看待,第一個padding是邊界,意思是精靈與精靈之間,精靈與打包之間的空隙,說白了,就是在四周加上一圈透明的,但不改變精靈大小,具體按照希望的畫素大小輸入即可,預設2,可以根據自己喜好新增,只是美觀作用。同樣,第二個padding是精靈與精靈之間的空隙,預設2,不與第一個padding疊加,即如果border設定的是2,shape設定的是0,則精靈之間是沒有空隙的,與邊界有2的空隙。第三個是也是增加一圈透明的,但這圈透明的是計算在精靈大小內的,預設0。這些值影響到Geometry設定的Maxsize大小,如果計算的值卡的很死,那麼久應該將這些padding置於0。
- 4是將圖片精靈邊界的畫素重複向外擴張,預設0,一般用不到。
- 5是用來擴張精靈大小用的,擴張的部分是透明的,擴充套件到的大小是可以被這個公約數所除,通常用不到,預設x=1,y=1。
- 6也就是alpha混合處理技術,只在premutiplied alpha關閉情況下有用,預設關閉。
- 7是在軟體調整精靈位置的時候,允許軟體自動旋轉精靈,預設勾選。做遊戲通常是不希望旋轉的,因為我們有自己的一套旋轉資源,再被旋轉的話就會出錯。這個功能並不適用全部的引擎框架,結合實際情況選擇。
- 8是修剪模式,選擇trim就是自動裁剪精靈圖片內部邊緣的透明部分,但是保留原精靈大小,這樣做可以提高遊戲的渲染效率。
- 9是裁剪的透明度閾值,若alpha通道的值低於設定的門檻,則會被裁剪。這個設定非常實用,有些精靈需要一定的透明度,則可以自由調節。
- 10是給精靈劃出邊界,便於檢視,通常用於測試。
- 11是自動使用別名,這是一個優化功能,預設勾選。
- 12幾乎沒怎麼用過,意思是對精靈圖片的四角畫素抽樣,並且移除特定的背景色,預設不勾選。
我們的測試用例設定如下:
Advaced的功能這裡不介紹,就是兩個,一個是加路徑的,一個是切除字尾名的。最後根據測試用例的設定,效果如下:
而後,我們選擇Publish:
打印出結果:
無報錯說明成功,可以去之前設定的目標路徑找到兩個生成的檔案:
plist檔案可以用sublime開啟,根據裡面的資訊為編寫程式碼服務。此外,可以儲存這次的打包設定:
save可以將打包設定一tps的格式儲存,下次開啟這個格式檔案就可以還原這次設定的全部引數,也可以點選save defaults,將這次的打包引數作為預設儲存,下次開啟即復原。
總之,TexturePacker是一款小巧而功能強大的圖片打包軟體,非常適合遊戲開發,將圖片歸類存放,也便於呼叫,提高效率,新手必學!