在Command Line中使用TexturePacker

運行cmd, TexturePacker
android

–sheet <filename>
+生成的圖片名,支持png,jpg,pvr,pvr.czz,pvr.gz格式
+示例:--sheet out.png正則表達式

–data <filename>安全

  • 生成的plist文件名
  • 示例:--data out.plist

–format <format>bash

  • 生成的plist格式,咱們使用cocos2d格式
  • 示例:--format cocos2d
  • 注:其餘支持格式見下圖:

–auto-sdless

  • 自動生成sd資源
  • 示例:--auto-sd
  • 注:這個要注意一點,若是要使用這個參數,你輸入的sheetdata名必須含有-hd@2x,TP會自動生成不帶後綴的sd數據.

–texturepath <path>工具

  • 在生成的sheet文件的路徑前加你
  • 示例:--texturepath image/tower 這樣在plist文件中realTextureFileName的值爲image/tower/out.png
  • 注:這個參數主要用在當你的圖片與plist文件再也不同一個目錄時使用,不會改變out.png的目錄

–trim-sprite-namespa

  • 剪裁掉拼接圖片的後綴名
  • 示例:--trim-sprite-name 這樣在plist文件中<key>001.png</key>會變成<key>001</key>
  • 注:是剪裁用來拼接的文件而不是生成文件,若是你的資源管理相似於android那樣,使用圖片時不加後綴名,那麼打包時可使用這個選項

–replace <regexp>=<string>翻譯

  • 按照原文的翻譯是使用<string>替換掉拼接圖片的文件名中正則表達式匹配的字符串
  • 臥槽,正則表達式啊一聽就尼瑪高大強啊,惋惜老夫不會啊,怎麼辦呢?回家去翻翻金瓶梅改天告訴你們.
  • 這個TM太有用了,後面我遇到的那個問題,用這個來解決最好不過了

–ignore-files <regexp>rest

  • 按照原文的翻譯是忽略全部知足給定條件的圖片(可使用時間做爲條件),你可使用*?,但在使用bash時應避免使用通配符.

####尺寸

先上一張cocos2d-x支持的最大圖片尺寸:

還有官方的這句話:code

For the developers, if you want to cross platforms and run your games smoothly, you should keep your texture size less than 1024*1024, that is the lowest restriction for most machines.

–width/–height <int>

  • 兩個參數,放在一塊說了,設置輸出圖片的寬度/高度
  • 示例:--width 100 --height 100
  • 注:這個值設置的大了無所謂,會產生空白區域,可是若是過小,就會報錯:
    1
    error: Could not fit all sprites into the sprite sheet.

–max-width/–max-height/–max-size <int>

  • 設置輸出圖片的最大寬度/高度/尺寸
  • 示例:--max-width 1024 --max-height 1024 前面兩個等價於後面 --max-size 1024
  • 注:
    1.和上面兩個參數的區別在於告訴TP實際值別超過這個值就OK,而上邊那兩個參數告訴TP實際值必定是這個.
    2.默認值爲2048
    3.若是實際值大於設置的最大值會產生錯誤:
    1
    error: Sprite sheet size is too small.

–allow-free-size

  • 容許輸出圖片不是2的冪,以最小尺寸輸出
  • 示例:--allow-free-size
  • 注:這個通常開啓,cocos2d-x2.0開始就已經支持圖片不是2的冪了

####間距和旋轉

–shape-padding <int>

  • 圖塊之間縫隙的寬度,默認值是2
  • 示例:--shape-padding 100

–border-padding <int>

  • 能夠理解爲邊框的寬度,默認值爲2
  • 示例:--border-padding 100

–padding

  • 間距,這個參數等價於上面兩個參數同時同時做用
  • 示例:--padding 100
  • 注:若是沒有開啓--allow-free-size可能和你想象的不太同樣

–inner-padding

  • 試了一下,這個參數的做用應該是給每一個sprite的周圍加一個邊框,默認值爲0
  • 示例:--inner-padding 100
  • 注:上面的這幾個參數做用都不是很大

–enable-rotation/diable-rotation

  • 開啓/關閉旋轉,默認值和輸出的格式有關係,cococ2d格式默認enable
  • 示例--enable-rotation --diable-rotation
  • 注:這個很好理解,爲了排版更密集些,有的圖片會被旋轉

–trim/no-trim

  • 剪裁圖片,即移除圖片周圍的透明像素,保留原始尺寸,默認開啓
  • 示例:--trim no-trim
  • 注:這個要格外注意一下,這個參數略微有些問題,若是沒有了解帶來的後果的話仍是使用--no-trim更安全些,我會在後面的仔細講一下.

–crop

  • 與上面的一條相似,移除圖片四周的透明像素,不保留原始尺寸,保存爲一張更小的圖片
  • 示例:--crop
  • 注:同上,要當心使用,儘可能不在這裏使用,而是改成前期用其它工具處理

–trim-threshold

  • 與Trim相似,只是這個選項有一個參數,表示剪裁掉alpha值小於這個參數的像素,取值0~255,默認爲0.
  • 示例:--trim-threshold

–disable-auto-alias

  • 關閉自動命名,什麼意思呢?TP在打包時會自動識別相同的圖片,最終在大圖裏只會保留一張,這樣會更加的節省資源,這個參數將會關閉這個功能
  • 示例:--disable-auto-alias
  • 注:這樣參數仍是不要設置的好

####其餘經常使用選項

–opt

  • 設置輸出圖片的像素格式 通常默認RGBA8888
  • 示例:--opt RGB444
  • 注:這個選項通常不作更改,若是想壓縮資源體積的話,能夠改成RGBA4444這樣圖片能夠減少一半的體積.具體你們能夠看下面這張圖:

##常見問題

錯誤: error: Error in sprite: .png: Failed to load image!
解決方案: 去掉目標路徑末尾的.png試試.

錯誤: error: Could not fit all sprites into the sprite sheet.
解決方案:
1.查看有無設置--width or --height,這個錯誤一般是因爲輸出圖片的尺寸過小致使的.
2.查看有無--max-width/--max-height/--max-size,沒有的話加上,有的話將參數值改大一些.

錯誤: error: Sprite sheet size is too small.
解決方案:參見上個錯誤中的解決方案2,--max-width/--max-height/--max-size默認值爲2048,試着改爲4096試試,若是解決了,不要高興,由於大多數移動設備都不支持這個尺寸,能夠考慮分開打包.

錯誤: error: Unknown argument –XXX - please check parameters or visit http://www.texturepacker.com for newer version
解決方案: 檢查XXX的拼寫是否正確

問題: 程序中得到圖片的尺寸與打包前不一致
解決方案: 檢查參數是否含有--crop,有的話刪除,有沒有--no-trim,沒有的話加上.

##後記 講了那麼多參數,其實經常使用的沒有幾個,下面這個是我最終使用的命令: TexturePacker --sheet out.png --data out.plist --allow-free-size --no-trim --max-size 1024 --format cocos2d animation  

相關文章
相關標籤/搜索