ผู้ออกแบบกราฟิกของฉันทำกราฟิกในไฟล์ PNG แยกต่างหาก มีเครื่องมือ / สคริปต์ที่ชาญฉลาดที่จะทำให้มันกลายเป็น spritesheet หรือไม่?
ฉันอาจเขียนโค้ดเองได้ แต่ทำไมต้องคิดค้นวงล้อใหม่ :)
ผู้ออกแบบกราฟิกของฉันทำกราฟิกในไฟล์ PNG แยกต่างหาก มีเครื่องมือ / สคริปต์ที่ชาญฉลาดที่จะทำให้มันกลายเป็น spritesheet หรือไม่?
ฉันอาจเขียนโค้ดเองได้ แต่ทำไมต้องคิดค้นวงล้อใหม่ :)
คำตอบ:
ฉันเพียงคนเดียวที่ใช้SpriteSheetPacker ? ฟรีและโอเพ่นซอร์สดังนั้นคุณสามารถปรับเปลี่ยนและเรียนรู้วิธีการทำงาน
ฉันใช้TexturePackerเพื่อสร้างสไปรต์จากโฟลเดอร์ภาพ PNG ฉันแปลงเกมที่พัฒนามาใน Flash ดังนั้นฉันแค่ส่งออกแต่ละเฟรมของ MovieClip ไปยัง png แล้วนำเข้ารูปภาพเหล่านั้นใน Texture Packer
อีกเครื่องมือที่คล้ายกันคือZwoptex
(หลังเป็นซอฟต์แวร์ Mac แต่ TP มีรุ่นสำหรับ Windows ด้วย)
ฉันได้ตัดสินใจที่จะโอเพนซอร์ซชีต 2D และเครื่องมืออนิเมชั่น สนับสนุนการเลือกสไปรต์อัตโนมัติรวมรูปภาพจัดกลุ่มสไปรต์และภาพเคลื่อนไหวหลายสไปรต์พร้อมการหมุน
มันเขียนใน Java, repo github อยู่ที่นี่: https://github.com/darkFunction/darkFunction-Editor
เว็บไซต์สำหรับโครงการคือ: http://darkfunction.com/editor
ฉันชอบ packer (game framework) ของ libgdx อาจจะค่อนข้างยุ่งยากในการตั้งค่าเฟรมเวิร์กสำหรับผู้แพ็คเกอร์
เครื่องบรรจุหีบห่อใช้งานได้ดี อ่านlibgdx texturepacker doc ที่นี่และดูด้วยตัวคุณเอง คุณสมบัติที่ฉันชอบคือบันทึกเอกสารพร้อมข้อมูลเกี่ยวกับพื้นผิวทั้งหมดใน 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มียูทิลิตีบรรทัดคำสั่งที่สามารถเข้าร่วมภาพในสิ่งที่เรียกว่า "การตัดต่อ" อาจเหนื่อยที่จะได้รับพารามิเตอร์บรรทัดคำสั่งที่ถูกต้องเพื่อทำสิ่งที่คุณต้องการ แต่มันเป็นเครื่องมือที่ทรงพลังและยืดหยุ่นมาก ฉันใช้มันบ่อยมากในการสร้างสไปรต์เวท
convert +append folder/*.png stacked.png
แปลง pngs ทั้งหมดในโฟลเดอร์ (เรียงตามลำดับตัวอักษร) เป็น stacked.png
ฉันสิ้นสุดการใช้สคริปต์การประมวลผลนี้ คุณสามารถดาวน์โหลดการประมวลผลได้ฟรีที่ Processing.org ไฟล์ทั้งหมดจะต้องอยู่ในโฟลเดอร์เดียวกันและมีชื่อไฟล์ลงท้ายด้วยตัวเลข 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);
}
ฉันไม่รู้ว่าฉันเข้าใจคำถามถูกต้องหรือไม่ แต่ฉันรู้ว่าซอฟต์แวร์ที่ทำงานกับพื้นผิวและสร้างภาพเคลื่อนไหวสไปรต์ชีทและภาพเคลื่อนไหว anf .gif เห็นhttp://www.spritetools.com/