游戏贴图打包工具——TexturePacker详解
為什么80%的碼農(nóng)都做不了架構(gòu)師?>>> ??
TexturePacker是一款快速打包圖片的工具,功能強(qiáng)大,非常適合打包游戲素材。該軟件是收費(fèi)的,市面上有流傳破解版,這里以3.0.9版本為例說明。
打開軟件可以看到這個(gè)界面:
左邊欄是需要打包的精靈,我們用幾個(gè)測(cè)試示例作介紹(精靈的概念做游戲的抖動(dòng),不贅述):
單擊Edit,如果你的精靈圖片都是存放在文件夾里,選擇Add Folder,如果是分散的,或只想選特定的幾個(gè),可以點(diǎn)擊Add Sprites逐個(gè)選擇添加。添加好后在左邊欄里頭出現(xiàn)了需要打包的精靈圖片。
而此時(shí)我的工程界面是這樣的,因?yàn)闆]有調(diào)整右邊欄的參數(shù),所以顯得很凌亂,但是中間這個(gè)工程區(qū)域是不能自己調(diào)節(jié)的,只能通過參數(shù)設(shè)置自動(dòng)調(diào)節(jié),我們下面來仔細(xì)研究右邊欄。
右邊欄由4個(gè)部分的設(shè)置組成:output輸出設(shè)置,和輸出的相關(guān)參數(shù)有關(guān);Geometry圖形設(shè)置,主要和打包后的形態(tài)和大小有關(guān);Layout布局設(shè)置,主要就是精靈打包的分布狀態(tài);Advance是其他設(shè)置,一般用不到。
output設(shè)置:
自上而下一共有11個(gè)可選:
- 1是數(shù)據(jù)輸出的格式,也就是說你的游戲基于的引擎選擇,有很多引擎框架供選擇,包括常見的cocos和unity,當(dāng)然也可以自己定義輸出的格式。
- 2是基于1的設(shè)置,設(shè)置好了某種引擎框架,就可以選擇對(duì)應(yīng)的輸出文件類型,以及設(shè)置路徑。比如我選的cocos2d,那么就會(huì)輸出plist文件,如果選擇unity,那么就會(huì)輸出txt文件,具體文件命名和路徑根據(jù)實(shí)際情況來定,這里寫作test。
- 3是打包出來的圖像格式,一般做游戲都是用png的圖像。
- 4是打包的紋理圖路徑,根據(jù)實(shí)際情況來定,這里用test。
- 5是基于4的設(shè)置,選擇png后會(huì)出現(xiàn)這個(gè)優(yōu)化選項(xiàng),優(yōu)化可以壓縮png的大小,但會(huì)降低打包效率。我們做游戲本身資源圖片不是很大情況下,就不做優(yōu)化。
- 6是DPI設(shè)置,DPI——Dots Per Inch,意思是每英寸打印的點(diǎn)數(shù),值越大,圖片就越清晰,通常制作場(chǎng)景地圖之類的都用300dpi,這里用默認(rèn)的72是可以的,根據(jù)個(gè)人情況可以自行調(diào)整。
- 7是預(yù)處理alpha通道(透明度),具體知識(shí)請(qǐng)移步:http://my.oschina.net/hqc17/blog/735115
- 8是圖像的格式,其實(shí)就是設(shè)置有沒有存在alpha通道,以及RGBA四個(gè)通道的順序和位深度之類,默認(rèn)RGBA8888,輸出為32位深度的圖像。如果不想要透明度,就RGB888,輸出為24位深度的圖像。
- 9是抖動(dòng)顯示設(shè)置,在設(shè)置低位深度的圖像使用,比如RGBA4444,可用色彩是有限的,不如8888的多,那么可以通過具體選擇的抖動(dòng)算法,來增加更多的色彩,提高圖像質(zhì)量。高深度的圖像默認(rèn)不可選。
- 10可以通過增加list來設(shè)置不同的輸出scale等,應(yīng)用較少,默認(rèn)空
- 最后是對(duì)輸出的內(nèi)容加密,影響不大,通常也是不需要的。
測(cè)試用設(shè)置如圖:
?Geometry設(shè)置:
自上而下有8個(gè)選擇:
- 1是設(shè)置打包目標(biāo)的大小,根據(jù)你的精靈大小來計(jì)算,我們測(cè)試用例的鎖大小72*96,定時(shí)炸彈大小48*48,并且有上下左右,如果打包是兩兩一行那么寬度最大就是96+96=192,長(zhǎng)度最大就是96+96+48+48=288,由于4個(gè)炸彈寬度48*4=192,因此炸彈只需一行即可,那么長(zhǎng)度最大設(shè)置成240,我們也可以設(shè)置為256,方便描述,總之,不小于計(jì)算的最大值的值都可以設(shè)置。這里要注意的是下面的Force squared不能勾選才能自己設(shè)置。
- 2是修正大小參數(shù),通常默認(rèn)空,如果改變,則1失效。
- 3是和精靈密切相關(guān)的,初始默認(rèn)是POT,POT是2為底的指數(shù)值,將精靈強(qiáng)制轉(zhuǎn)換為2,4,8,16……的大小,這種情況用于一些設(shè)定為2為底的指數(shù)大小的精靈。而通常使用的話會(huì)影響打包效果,因此大部分均按照AnySize設(shè)置,也就是TP會(huì)自己計(jì)算精靈圖像的最小值,從來參與排列。
- 4是限定打包的結(jié)果是正方形,寬和高一樣,影響1的設(shè)置。
- 5是字對(duì)齊設(shè)置,是一個(gè)優(yōu)化的參數(shù),默認(rèn)不勾選。
- 6是打包設(shè)置,軟件可以自動(dòng)識(shí)別精靈大小的最小值,通過該選項(xiàng),可以選擇算法,用Best效果最好,但時(shí)間花費(fèi)最大,通常為了良好效果,都用它。
- 7是縮放比例,可以設(shè)置打包后的縮放比例,0-1是縮小,大于1是放大,默認(rèn)1。
- 8是選擇縮放的模式,默認(rèn)smooth,該設(shè)置影響精靈的縮放以及前面Output的AutoSD設(shè)置,有不同的算法可選擇。
我們將測(cè)試用例設(shè)置為:
Layout布局設(shè)置:
自上而下有14個(gè)選擇,我們經(jīng)過合并后列出12種:
- 1是布局的算法,默認(rèn)MaxRects,使用的空間最小,但常會(huì)造成不美觀的現(xiàn)象,且算法有限,不方便使用。因此通常選擇Basic,可以根據(jù)自己喜好調(diào)整精靈位置。
- 2基于1的設(shè)置,選擇MaxRects才有2,試一下啟發(fā)式算法,調(diào)整布局排列的。如果選Basic則是,可以按照精靈的名字大小等按升序或降序排列,想要的排列順序可以通過修改名稱來實(shí)現(xiàn)。
- 3是加空隙,由于這三個(gè)都差不多,我們合并到一個(gè)選項(xiàng)看待,第一個(gè)padding是邊界,意思是精靈與精靈之間,精靈與打包之間的空隙,說白了,就是在四周加上一圈透明的,但不改變精靈大小,具體按照希望的像素大小輸入即可,默認(rèn)2,可以根據(jù)自己喜好添加,只是美觀作用。同樣,第二個(gè)padding是精靈與精靈之間的空隙,默認(rèn)2,不與第一個(gè)padding疊加,即如果border設(shè)置的是2,shape設(shè)置的是0,則精靈之間是沒有空隙的,與邊界有2的空隙。第三個(gè)是也是增加一圈透明的,但這圈透明的是計(jì)算在精靈大小內(nèi)的,默認(rèn)0。這些值影響到Geometry設(shè)置的Maxsize大小,如果計(jì)算的值卡的很死,那么久應(yīng)該將這些padding置于0。
- 4是將圖片精靈邊界的像素重復(fù)向外擴(kuò)張,默認(rèn)0,一般用不到。
- 5是用來擴(kuò)張精靈大小用的,擴(kuò)張的部分是透明的,擴(kuò)展到的大小是可以被這個(gè)公約數(shù)所除,通常用不到,默認(rèn)x=1,y=1。
- 6也就是alpha混合處理技術(shù),只在premutiplied alpha關(guān)閉情況下有用,默認(rèn)關(guān)閉。
- 7是在軟件調(diào)整精靈位置的時(shí)候,允許軟件自動(dòng)旋轉(zhuǎn)精靈,默認(rèn)勾選。做游戲通常是不希望旋轉(zhuǎn)的,因?yàn)槲覀冇凶约旱囊惶仔D(zhuǎn)資源,再被旋轉(zhuǎn)的話就會(huì)出錯(cuò)。這個(gè)功能并不適用全部的引擎框架,結(jié)合實(shí)際情況選擇。
- 8是修剪模式,選擇trim就是自動(dòng)裁剪精靈圖片內(nèi)部邊緣的透明部分,但是保留原精靈大小,這樣做可以提高游戲的渲染效率。
- 9是裁剪的透明度閾值,若alpha通道的值低于設(shè)定的門檻,則會(huì)被裁剪。這個(gè)設(shè)置非常實(shí)用,有些精靈需要一定的透明度,則可以自由調(diào)節(jié)。
- 10是給精靈劃出邊界,便于查看,通常用于測(cè)試。
- 11是自動(dòng)使用別名,這是一個(gè)優(yōu)化功能,默認(rèn)勾選。
- 12幾乎沒怎么用過,意思是對(duì)精靈圖片的四角像素抽樣,并且移除特定的背景色,默認(rèn)不勾選。
我們的測(cè)試用例設(shè)置如下:
Advaced的功能這里不介紹,就是兩個(gè),一個(gè)是加路徑的,一個(gè)是切除后綴名的。最后根據(jù)測(cè)試用例的設(shè)置,效果如下:
而后,我們選擇Publish:
打印出結(jié)果:
無報(bào)錯(cuò)說明成功,可以去之前設(shè)置的目標(biāo)路徑找到兩個(gè)生成的文件:
plist文件可以用sublime打開,根據(jù)里面的信息為編寫代碼服務(wù)。此外,可以儲(chǔ)存這次的打包設(shè)置:
save可以將打包設(shè)置一tps的格式儲(chǔ)存,下次打開這個(gè)格式文件就可以還原這次設(shè)置的全部參數(shù),也可以點(diǎn)擊save defaults,將這次的打包參數(shù)作為默認(rèn)存儲(chǔ),下次打開即復(fù)原。
總之,TexturePacker是一款小巧而功能強(qiáng)大的圖片打包軟件,非常適合游戲開發(fā),將圖片歸類存放,也便于調(diào)用,提高效率,新手必學(xué)!
?
轉(zhuǎn)載于:https://my.oschina.net/hqc17/blog/735233
總結(jié)
以上是生活随笔為你收集整理的游戏贴图打包工具——TexturePacker详解的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 笔记 shell基础应用,texture
- 下一篇: Latex在论文中输出微米和cm-1