在Command Line中使用TexturePacker

≡放荡痞女 提交于 2019-11-30 09:43:01

运行cmd, TexturePacker

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

–data <filename>

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

–format <format>

  • 生成的plist格式,我们使用cocos2d格式
  • 示例:--format cocos2d
  • 注:其他支持格式见下图:

–auto-sd

  • 自动生成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-name

  • 剪裁掉拼接图片的后缀名
  • 示例:--trim-sprite-name 这样在plist文件中<key>001.png</key>会变成<key>001</key>
  • 注:是剪裁用来拼接的文件而不是生成文件,如果你的资源管理类似于android那样,使用图片时不加后缀名,那么打包时可以使用这个选项

–replace <regexp>=<string>

  • 按照原文的翻译是使用<string>替换掉拼接图片的文件名中正则表达式匹配的字符串
  • 卧槽,正则表达式啊一听就尼玛高大强啊,可惜老夫不会啊,怎么办呢?回家去翻翻金瓶梅改天告诉大家.
  • 这个TM太有用了,后面我遇到的那个问题,用这个来解决最好不过了

–ignore-files <regexp>

  • 按照原文的翻译是忽略所有满足给定条件的图片(可以使用时间作为条件),你可以使用*?,但在使用bash时应避免使用通配符.

####尺寸

先上一张cocos2d-x支持的最大图片尺寸:


还有官方的这句话:

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
 

 

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!