Εισαγωγή
Αν ψάχνετε για ένα online texture packer, πιθανότατα έχετε ήδη έναν φάκελο με sprites και μια προθεσμία. Αυτό που χρειάζεστε είναι έναν άτλαντα που θα φορτώνει η μηχανή σας χωρίς έναν γύρο διορθώσεων.
Η δημιουργία της εικόνας είναι το εύκολο κομμάτι. Οι αποφάσεις που προκαλούν προβλήματα αργότερα είναι η μορφή δεδομένων, το μέγιστο μέγεθος φύλλου, ο τρόπος περικοπής των διαφανών άκρων και ο τρόπος γραφής των ονομάτων των πλαισίων. Αν κάνετε λάθος, θα το διαπιστώσετε μετά την εισαγωγή.
Αυτή η αναλυτική παρουσίαση καλύπτει αυτές τις ρυθμίσεις, τον τρόπο ελέγχου του άτλαντα πριν τον εξαγάγετε και τι πρέπει να κάνετε στη συνέχεια εάν τα sprites είναι πολύ βαριά ή ο άτλαντας εισέρχεται σε μια διαδικασία animation pipeline.
Τι χρειάζεστε πραγματικά από ένα εργαλείο Atlas
Ένα μόνο κουμπί "πακέτου" δεν είναι αρκετό όταν ο άτλας μπαίνει σε ένα πραγματικό παιχνίδι. Το μέγεθος του φύλλου, η συμπλήρωση, η περικοπή και η μορφή των δεδομένων επηρεάζουν όλα αν τα πλαίσια αποδίδονται σωστά και πόση μνήμη υφής χρησιμοποιείτε, επομένως θέλετε να τα ρυθμίσετε μόνοι σας.
Θέλετε επίσης να δείτε το αποτέλεσμα πριν από την εξαγωγή. Μια προεπισκόπηση του συσκευασμένου φύλλου εντοπίζει προβλήματα (ένα τεράστιο sprite που τρώει τη μισή σελίδα, ένα πλαίσιο που λείπει, άκρες που ξεθωριάζουν) ενώ αυτά εξακολουθούν να αποτελούν αλλαγή ρυθμίσεων και όχι αναφορά σφάλματος.
- Αρχεία δεδομένων για Unity (τρεις παραλλαγές), Godot, Unreal, MonoGame, Pixi, GameMaker, O3DE, Construct 3, Phaser, Cocos, CSS και γενικό JSON.
- Φύλλα από 256 έως 4096 px σε κάθε πλευρά, με προαιρετικό μέγεθος power-of-two ή τετράγωνο, και πολλαπλή συσκευασία όταν δεν χωράνε όλα σε μία σελίδα.
- Μια ζωντανή προεπισκόπηση του συσκευασμένου φύλλου, ώστε να μπορείτε να δείτε την περικοπή, την περιστροφή και την απόσταση πριν από την εξαγωγή.
Συσκευασία sprites βήμα προς βήμα
Προσθέστε τα sprites σας ένα προς ένα ή επιλέξτε έναν ολόκληρο φάκελο. Επιλέξτε τη μορφή δεδομένων που αναμένει η μηχανή σας, ορίστε το μέγιστο μέγεθος φύλλου και προσαρμόστε το κόψιμο και το γέμισμα. Εάν η τέχνη σας είναι pixel art, ορίστε την κλίμακα σε pixelated, ώστε τα αλλαγμένα καρέ να παραμείνουν ευκρινή.
Δημιουργήστε την προεπισκόπηση και εξετάστε τις περίεργες περιπτώσεις: μικροσκοπικά εικονίδια UI, sprites με πολύ κενό χώρο γύρω τους, οτιδήποτε έχει περιστραφεί. Όταν φαίνεται σωστό, κάντε εξαγωγή. Λαμβάνετε ένα ZIP με τα αριθμημένα PNG του άτλαντα και το αρχείο δεδομένων για τη μορφή που επιλέξατε.
- Προσθέστε sprites ή έναν φάκελο από τον υπολογιστή σας.
- Επιλέξτε τη μορφή δεδομένων, το μέγεθος φύλλου, την περικοπή, την αναπλήρωση και την κλίμακα.
- Ελέγξτε την προεπισκόπηση για σπατάλη χώρου και περίεργες τοποθετήσεις.
- Κατεβάστε το ZIP και εισαγάγετε τα PNG και το αρχείο δεδομένων στη μηχανή σας.
Γιατί να γίνει packing στο πρόγραμμα περιήγησης
Τα sprites διαβάζονται και συσκευάζονται στο μηχάνημά σας, επομένως δεν μεταφορτώνεται τίποτα. Αυτό έχει σημασία όταν εργάζεστε με ακυκλοφόρητους χαρακτήρες ή εικονογραφήσεις υπό NDA, και σημαίνει ότι δεν περιμένετε μια μεταφόρτωση κάθε φορά που αλλάζετε μια ρύθμιση.
Επίσης, κάνει την προσπάθεια φθηνή. Αλλάξτε την επένδυση, ξαναπακετάρετε, δείτε την εμφάνιση. Αλλάξτε το μέγεθος του φύλλου, ξαναπακετάρετε, δείτε την εμφάνιση. Κάθε γύρος διαρκεί δευτερόλεπτα, κάτι που θέλετε όταν κουρδίζετε έναν άτλαντα αντί να τον φτιάχνετε μία φορά.
Ένας άτλας ή περισσότεροι;
Για ένα μικρό ή μεσαίο σύνολο sprite, ένα φύλλο είναι πιο εύκολο στη φόρτωση και τη διαχείριση. Για μια μεγάλη βιβλιοθήκη, ένα φύλλο είτε δεν χωράει κάτω από το όριο μεγέθους σας είτε καταλήγει να είναι υπερβολικά μεγάλο. Γι' αυτό υπάρχει το multipack: κατανέμει τα sprite σε όσες σελίδες χρειάζεται και γράφει τα δεδομένα ώστε να ταιριάζουν. Εάν το multipack είναι απενεργοποιημένο και τα sprite δεν ταιριάζουν, το packer σας το λέει αντί να αφήνει αθόρυβα καρέ.
Το ποιο θα επιλέξετε εξαρτάται από την πλατφόρμα και από τον τρόπο με τον οποίο το παιχνίδι σας φορτώνει τις σκηνές. Οι στόχοι για κινητά συχνά θέλουν μικρότερες σελίδες. Ένα παιχνίδι για επιτραπέζιους υπολογιστές μπορεί συνήθως να διαρκέσει ένα μόνο φύλλο 4096. Δείτε την προεπισκόπηση για κάθε μέγεθος πριν αποφασίσετε.
- Διατηρήστε ένα συμπαγές περιβάλλον χρήστη σε ένα φύλλο. Είναι το λιγότερο που πρέπει να σκεφτείτε.
- Ενεργοποιήστε την πολυσυσκευασία όταν ένα μεγάλο σύνολο sprite δεν χωράει ή όταν θέλετε σελίδες που μπορείτε να φορτώσετε ξεχωριστά.
- Σε κάθε περίπτωση, φορτώστε το αποτέλεσμα στη μηχανή αναζήτησης ή σε ένα εργαλείο προεπισκόπησης πριν το χαρακτηρίσετε ολοκληρωμένο.
Τι πρέπει να κάνετε μετά την εξαγωγή
Εάν ο άτλας εξακολουθεί να είναι βαρύς, ενεργοποιήστε τη βελτιστοποίηση εικόνων στο πρόγραμμα συσκευασίας ή συρρικνώστε πρώτα τις εικόνες προέλευσης και, στη συνέχεια, επανασυσκευάστε. Εάν ο άτλας ανήκει σε έναν χαρακτήρα Spine, ανοίξτε τον στο Spine Viewer και ελέγξτε ότι κάθε περιοχή εξακολουθεί να αντιστοιχεί στο σωστό συνημμένο.
Αυτός είναι όλος ο κύκλος: πακετάρετε, μειώστε το βάρος όπου έχει σημασία και επιβεβαιώστε ότι αναπαράγεται πριν το εισαγάγει κάποιος στο παιχνίδι.
Γράφτηκε από
Ankit Kumar
Ανώτερος Μηχανικός Λογισμικού & Ιδρυτής στο ToolBuddy
Τεχνολογία βοηθητικών προγραμμάτων για πρώτη φορά στο πρόγραμμα περιήγησης με μηδενικές απαιτήσεις μεταφόρτωσης χρησιμοποιώντας τεχνολογίες WebAssembly, Web Audio και Canvas.