天天看點

bat調用TexturePacker更新SpriteSheet

一款遊戲會用到很多圖檔資源,通常我們會使用TexturePacker工具進行圖檔的拼接、壓縮,為了考慮性能問題,單個SpriteSheet的尺寸不會設定的太大(最大1024 * 1024),這樣就可能會有多個SpriteSheet。每當有圖檔資源需要更新時,操作起來會有點不友善。是以希望能通過bat來批量重新生成新的SpriteSheet

首先我們需要擷取TexturePacker的安裝目錄,一般我們都會安裝TexturePackerGUI工具,它實際運作起來還是調用TexturePacker.exe工具。因為軟體環境因人而異可能存放的目錄各不相同,這裡通過讀取系統資料庫相關資訊來避免此問題

在dos視窗下執行查詢指令,得到結果如下圖所示:

bat調用TexturePacker更新SpriteSheet

實際系統資料庫的相關資訊:

bat調用TexturePacker更新SpriteSheet

我們會發現,傳回的結果中,前4行是無用的資訊。然後以“REG_SZ ”作為分隔符進行字元串分隔。得到包含空格的路徑資訊:"G:\Program Files\TexturePacker\bin\TexturePackerGUI.exe" "%1"

通過set指令替換掉%1   

然後通過for /f "tokens=1,* delims=" %%i in (!str!) do () 來去除””及空格資訊

之後就直接調用了TexturePacker.exe

下面附幾張Texture Packer 的常用設定截圖,

bat調用TexturePacker更新SpriteSheet

通常情況下,我們導出的紋理圖檔是RGBA8888格式,R、G、B、A各需要占用8個比特(1位元組),是以一個像素總共需要4個位元組表示。通常我們使用RGBA444來儲存圖檔,不過需要注意設定一個參數來保證壓縮後的圖檔尺寸大小不會變化。勾選“Allow free sizes”,否則使用導出的圖檔後界面會錯位(因為空白區域被裁剪掉了>_<)

bat調用TexturePacker更新SpriteSheet

使用RGBA4444還需要注意的一個問題,就是選擇壓縮算法(抖動+通道)

bat調用TexturePacker更新SpriteSheet

<a href="http://www.codeandweb.com/texturepacker/features" target="_blank">texturepacker官網上有相應的對比圖&gt;&gt;</a>

bat調用TexturePacker更新SpriteSheet

參考資料:

<a href="http://post.justbilt.com/2013/12/12/use_tp_on_command_line/" target="_blank">在Command Line中使用TexturePacker</a>

<a href="http://www.shadowkong.com/archives/1203" target="_blank">使用TexturePacker批量生成SpriteSheet</a>

<a href="http://wenku.baidu.com/link?url=oYiq6qNNCYxrL-qXfRbRXzTijOXgzmdVwOSxHFcrINxm6azU8zqLwF1v2Eo9pVG6ryx4xvYp6-GWy63qEsjvlifBY0t6DaSCqyJCWmRSVkm" target="_blank">bat批處理 教程</a>

<a href="http://www.cnblogs.com/andyque/archive/2011/03/18/1988097.html" target="_blank">(譯)在cocos2d裡面如何使用Texture Packer和像素格式來優化spritesheet</a>

繼續閱讀