• bat调用TexturePacker更新SpriteSheet


    一款游戏会用到很多图片资源,通常我们会使用TexturePacker工具进行图片的拼接、压缩,为了考虑性能问题,单个SpriteSheet的尺寸不会设置的太大(最大1024 * 1024),这样就可能会有多个SpriteSheet。每当有图片资源需要更新时,操作起来会有点不方便。所以希望能通过bat来批量重新生成新的SpriteSheet

     

    首先我们需要获取TexturePacker的安装目录,一般我们都会安装TexturePackerGUI工具,它实际运行起来还是调用TexturePacker.exe工具。因为软件环境因人而异可能存放的目录各不相同,这里通过读取注册表相关信息来避免此问题

    @echo off

    echo "获取TexturePackerGUI注册表安装信息..." & echo.

    setlocal enabledelayedexpansion
    for /f "skip=4 tokens=1,* delims=REG_SZ " %%a in ('reg query "HKEY_CLASSES_ROOTApplicationsTexturePackerGUI.exeshellOpencommand" /ve') do (
    set "str=%%b"

    echo !str! & echo.

    set "str=!str:"%%1"=!"

    echo TexturePackerGUI的安装路径:!str! & echo.

    for /f "tokens=1,* delims=" %%i in (!str!) do (
    set "str=%%i"

    set "TexturePacker_Path=!str:TexturePackerGUI.exe=!TexturePacker.exe"

    echo !TexturePacker_Path! & echo.
    )
    )



    pause

    在dos窗口下执行查询指令,得到结果如下图所示:

    实际注册表的相关信息:

     

     

    我们会发现,返回的结果中,前4行是无用的信息。然后以“REG_SZ ”作为分隔符进行字符串分隔。得到包含空格的路径信息:"G:Program FilesTexturePackerinTexturePackerGUI.exe" "%1"

    通过set指令替换掉%1   

    set "str=!str:"%%1"=!"

    然后通过for /f "tokens=1,* delims=" %%i in (!str!) do () 来去除””及空格信息

     

    之后就直接调用了TexturePacker.exe

    echo "TexturePacker安装路径:%TexturePacker_Path%" & echo.

    "%TexturePacker_Path%" batch_btn.tps
    "%TexturePacker_Path%" batch_kuang.tps
    "%TexturePacker_Path%" batch_left.tps
    "%TexturePacker_Path%" batch_spt.tps
    "%TexturePacker_Path%" batch_text.tps
    "%TexturePacker_Path%" batch_expression.tps

    下面附几张Texture Packer 的常用设置截图,

     

    通常情况下,我们导出的纹理图片是RGBA8888格式,R、G、B、A各需要占用8个比特(1字节),所以一个像素总共需要4个字节表示。通常我们使用RGBA444来保存图片,不过需要注意设置一个参数来保证压缩后的图片尺寸大小不会变化。勾选“Allow free sizes”,否则使用导出的图片后界面会错位(因为空白区域被裁剪掉了>_<)

    使用RGBA4444还需要注意的一个问题,就是选择压缩算法(抖动+通道)

     

    texturepacker官网上有相应的对比图>>

     

     

     

    参考资料:

    在Command Line中使用TexturePacker

    使用TexturePacker批量生成SpriteSheet

    bat批处理 教程

    (译)在cocos2d里面如何使用Texture Packer和像素格式来优化spritesheet

  • 相关阅读:
    Linux系统学习之网络管理
    EntityFramework 6.1.2-beta2
    微软开源的30个基础设施项目-C#
    vs2015 Android SDK
    批量删除空的文件夹
    统一者管理员指南(Unifier Administration Guide)中文
    XXX全球 IP 地址库
    mssql2008R2 RCU-6083:ALTER database FWC SET READ_COMMITTED_SNAPSHOT ON
    ORA-01843: 无效的月份,执行sql语句更改为美国语言后仍然失败的解决办法
    Win7如何安装IIS来浏览ASP网站
  • 原文地址:https://www.cnblogs.com/meteoric_cry/p/3532520.html
Copyright © 2020-2023  润新知