我的图形设计师在单独的PNG文件中制作了图形。是否有一个巧妙的工具/脚本将它们混成一张Spritesheet?
我可能自己也可以编写一些代码,但是为什么要重新发明轮子呢:)
我的图形设计师在单独的PNG文件中制作了图形。是否有一个巧妙的工具/脚本将它们混成一张Spritesheet?
我可能自己也可以编写一些代码,但是为什么要重新发明轮子呢:)
Answers:
我是唯一使用SpriteSheetPacker的人吗?它是免费的开放源代码,因此您可以对其进行修改并了解其工作方式。
我一直在使用TexturePacker从PNG图像文件夹中创建精灵。我正在移植最初是用Flash开发的游戏,所以我只是将MovieClip的每一帧导出为png,然后将这些图像导入Texture Packer。
另一个类似的工具是Zwoptex
(后者是Mac软件,但是TP也有Windows的版本。)
我决定开放我的2D Spritesheet和动画工具的源代码。它支持自动精灵选择,将图像,精灵分组和旋转的多精灵动画组合在一起。
它是用Java编写的,github仓库在这里:https : //github.com/darkFunction/darkFunction-Editor
该项目的网站是:http : //darkfunction.com/editor
我真的很喜欢libgdx(游戏框架)的打包程序。但是,仅为打包程序设置框架可能有点麻烦。
封隔器效果很好。在此处阅读libgdx texturepacker文档,亲自体验一下。我最喜欢的功能是,还可以在大的Spritesheet / Atlas中保存有关所有纹理的信息的文档,因此您可以轻松地编写一个脚本来为您获取它们。Libgdx也具有此内置功能,因此即使它位于很大的地图集中,我也可以通过其原始文件名加载/显示任何纹理。还有一个用于打包程序的GUI。
包含有关某些纹理信息的压缩文件的节选:
ferdige1.png
format: RGBA8888
filter: Nearest,Nearest
repeat: none
mainmenu
rotate: false
xy: 2, 2
size: 800, 480
orig: 800, 480
offset: 0, 0
index: -1
plankeu3
rotate: false
xy: 804, 2
size: 64, 384
orig: 64, 384
offset: 0, 0
index: -1
levelSelect
rotate: false
xy: 2, 484
size: 591, 373
orig: 591, 373
offset: 0, 0
index: -1
plankeu2
rotate: false
xy: 870, 2
size: 64, 256
orig: 64, 256
offset: 0, 0
index: -1
ImageMagick有一个命令行实用程序,可以将图像加入所谓的“蒙太奇”。获取正确的命令行参数来完成您想要的事情可能很累,但这是一个非常强大且灵活的工具。我经常使用它来构建Spritesheets。
convert +append folder/*.png stacked.png
将文件夹中的所有png(按字母顺序排列)转换为stacked.png
我最终使用了此处理脚本。您可以从Processing.org免费下载Processing。所有文件都必须位于同一文件夹中,并且文件名以4位数字结尾。
ArrayList<PImage> images = new ArrayList
<PImage>();
void setup() {
String folder = "file location ...";
String file = "file prefix ...";
String outfile = "output.png";
int fileCount = 30;
int cols = 7;
int rows = 5;
println("Loadgin...");
for (int i = 1; i <= fileCount; i++) {
String number = "" + i;
if(number.length() == 1) number ="000" + number;
else if(number.length() == 2) number = "00" + number;
PImage img = loadImage(folder+file + number +".png");
images.add(img);
}
println("Starting...");
PImage img = createImage(images.get(0).width * cols, images.get(0).height * rows, ARGB);
for (int x = 0; x < images.get(0).width; x++) {
for (int y = 0; y < images.get(0).height; y++) {
for (int z = 0; z < images.size(); z++) {
img.set(
x+images.get(0).width* (z%cols),
y +images.get(0).height * int(z/cols),
images.get(z).get(x,y));
}
}
}
println("Saving...");
img.save(folder + outfile);
}
我不知道我是否正确地理解了问题,但是我知道该软件可以处理纹理并制作动画,sprite工作表和.gif动画。参见http://www.spritetools.com/
我使用Photoshop脚本制作Spritesheets,请参阅我的博客上的这篇文章。
它可以制作旧的skool瓷砖网格以及纹理地图集,并且可以导出包含图像大小和位置信息的自定义文本文件。它可以在PC和Mac上运行,它是开源的,并且编写为可扩展的。