Texture Packer 命令行 多个图像

Texture Packer Command line multiple images

我在命令行中使用 TexturePacker,但无法让它将多个精灵打包成 1 个 sheet。它允许我做 1 个精灵,所以命令没问题。

这是我正在使用的命令。

"TexturePacker --format sparrow --texture-format atf --opt DXT5 --max-width 2048 --max-height 2048 --size-constraints POT --pack-mode Best --enable-rotation --trim-mode Trim --algorithm MaxRects --multipack --border-padding 5 --shape-padding 5 --reduce-border-artifacts --scale " + sheetInfo.scale + " --data " + imageOutputDirectory + "\" + lanfPrefix + "\" + sheetInfo.name + ".xml " + "--sheet " + imageOutputDirectory + "\" + lanfPrefix + "\" + sheetInfo.name + ".atf image1.png image2.png";

知道为什么这不起作用吗?根据文档,它应该可以工作。

我什至联系了 texture packer 的开发者,但找不到任何真正的方法来解决这个问题,但没有得到任何回应。相反,我能够通过将所有需要的文件复制到一个临时目录,然后将该目录添加到 texturepacker 调用的末尾而不是单个图像来实现预期的结果。

由于 TexturePacker 文档不完善,我花了很多时间才弄明白!

要将多个图像添加到单个精灵 sheet,这里有一个示例命令,它将创建一个名为 out.png(默认)的图集,其中包含图像 img_1 到 img_4...

TexturePacker --format unity-texture2d img_1.png img_2.png img_3.png img_4.png

关键是仅由空格分隔的图像文件名列表。我在 Python 工作,所以这是我用来创建与上面的示例行相同的地图集的脚本。使用带通配符的 glob 允许我从包含许多图像的文件夹中 select 图像,并且无需为了 TexturePacker 的缘故将我想要的文件隔离到文件夹中。

import subprocess, glob
TP = r"C:\Program Files\CodeAndWeb\TexturePacker\bin\TexturePacker.exe"
baseFrame = "img"
def FillAtlas(baseFrame):
    globString = baseFrame + "_*.png"
    frameList = glob.glob(globString)
    imgList = []
    for frame in frameList:
        imgList.append(frame)
    TPargs = [TP, "--format", "unity-texture2d"] + imgList
    subprocess.call(TPargs)

FillAtlas(baseFrame)