Κινούμενα σχέδια · bei.pm
Τα φορμά αρχείων που περιγράφονται σε αυτή τη σελίδα βασίζονται στην τεχνική ανάλυση πνευματικής ιδιοκτησίας της Dynamix, Inc. και της Sierra Entertainment.
Η πνευματική ιδιοκτησία ανήκει σήμερα στο σύνολο της Activision Publishing, Inc. / Activision Blizzard, Inc. και είναι αυτή τη στιγμή στην κατοχή της Microsoft Corp..
Οι πληροφορίες συγκεντρώθηκαν μέσω Αντίστροφης Μηχανικής και Ανάλυσης Δεδομένων για σκοπούς αρχειοθέτησης και διαλειτουργικότητας με ιστορικά δεδομένα.
Δεν χρησιμοποιήθηκαν ιδιοσκευές ή εμπιστευτικές προδιαγραφές.
Το παιχνίδι μπορεί να αγοραστεί αυτή τη στιγμή ως λήψη από το gog.com.
Τώρα φτάνουμε στην κορυφαία κατηγορία των τομέων μέσα στα φορμά δεδομένων του Outpost 2:
Στις κινήσεις.
Οι λίστες κινήσεων αρχίζουν με μια παγκόσμια κεφαλίδα, η οποία χρησιμεύει κυρίως για την επαλήθευση των δεδομένων. Ακολουθούν οι συγκεκριμένες ορισμοί κινήσεων, οι οποίοι διακρίνονται σε 3 επίπεδα:
-
Κίνηση
Μια κίνηση είναι η ανώτερη οντότητα; αναπαριστά μια κίνηση μιας μονάδας, ενός κτηρίου ή μιας 'κίνηση σωματιδίων' (πτώση κομήτη, καιρός, έκρηξη) σε μια συγκεκριμένη αρχική κατάσταση. -
Καρέ
Ένα καρέ είναι μια μεμονωμένη εικόνα μέσα σε μια κίνηση. Μια κίνηση μπορεί να περιλαμβάνει ένα ή περισσότερα καρέ. -
Υποκαρέ
Ένα υποκαρέ είναι η πληροφορία ότι μια συγκεκριμένη bitmap θα πρέπει να σχεδιαστεί σε μια συγκεκριμένη θέση ενός καρέ υπό συγκεκριμένα κριτήρια. Ένα καρέ μπορεί να περιλαμβάνει ένα ή περισσότερα υποκαρέ.
Αμέσως μετά ακολουθούν οι συγκεκριμένες ορισμοί κινήσεων.
Διεύθυνση | x0 | x1 | x2 | x3 | x4 | x5 | x6 | x7 | x8 | x9 | xA | xB | xC | xD | xE | xF | χαρ. | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0x0000 | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . |
Απόκλιση | Τύπος Δεδομένων | Ονομασία | Εξήγηση |
---|---|---|---|
0x0000 | uint(32) | Αριθμός κινήσεων | Πόσες είναι οι διαθέσιμες εγγραφές κινουμένων σχεδίων; |
0x0004 | uint(32) | Αριθμός Καρέ | Πόσα καρέ θα πρέπει να υπάρχουν συνολικά |
0x0008 | uint(32) | Αριθμός υποπλαισίων | Πόσες υποκατασκευές θα έπρεπε να υπάρχουν συνολικά |
0x000c | uint(32) | Αριθμός προαιρετικών καταχωρήσεων | Πόσες "προαιρετικές καταχωρίσεις" υπάρχουν. |
Κινούμενα Σχέδια
Διεύθυνση | x0 | x1 | x2 | x3 | x4 | x5 | x6 | x7 | x8 | x9 | xA | xB | xC | xD | xE | xF | χαρ. | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0x0000 | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . |
0x0010 | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . |
0x0020 | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . |
Απόκλιση | Τύπος Δεδομένων | Ονομασία | Εξήγηση |
---|---|---|---|
0x0000 | uint(32) | Άγνωστο 1 | Άγνωστες πληροφορίες |
0x0004 | uint(32) | Περιθώριο: Αριστερά | Δίνει την αριστερή αρχή (σε πίξελ) του Bounding Box. |
0x0008 | uint(32) | Περίγραμμα: Πάνω | Δηλώνει την πάνω αρχή (σε εικονοστοιχεία) του Bounding Box. |
0x000c | uint(32) | Περίγραμμα: Πλάτος | Δίνει το πλάτος (σε πίξελ) του Bounding Box. |
0x0010 | uint(32) | Περίγραμμα: Ύψος | Δίνει το ύψος (σε πίξελ) του Bounding Box. |
0x0014 | uint(32) | Μετατόπιση: X | Δείχνει το οριζόντιο μέσο σημείο της animation |
0x0018 | uint(32) | Απόκλιση: Y | Δίνει το κατακόρυφο κέντρο της κινούμενης εικόνας |
0x001c | uint(32) | Άγνωστο 2 | Άγνωστη Πληροφορία |
0x0020 | uint(32) | Αριθμός Καρέ | Δηλώνει πόσα καρέ animation περιέχονται σε αυτήν την animation |
0x0024 | uint(32) | Αριθμός παραθύρων | Δηλώνει πόσα παράθυρα πρέπει να χρησιμοποιηθούν κατά τη διάρκεια της σχεδίασης |
Τα δεδομένα της ανώτερης στρώσης, της κινούμενης εικόνας, είναι κυρίως διοικητικά δεδομένα - η Boundingbox αναφέρεται στις συντεταγμένες της σήμανσης γύρω από το όχημα/κτίριο, όταν αυτό έχει επιλεγεί και υποδεικνύει ταυτόχρονα ποια περιοχή θα πρέπει να είναι κλικαριστή.
Η μετατόπιση (offset) προσδιορίζει κυρίως το "σημείο μηδέν"; το σημείο που πρέπει να προστεθεί ή να αφαιρεθεί στις εσωτερικές συντεταγμένες του παιχνιδιού. Θα μπορούσε κανείς να πει και μαθηματικά: η μετατόπιση αναφέρεται εδώ στην προέλευση των συντεταγμένων.
Όσον αφορά τα παράθυρα (Windows), όπως και η μετατόπιση, πρόκειται για 4 τιμές uint(32) ανά παράθυρο, οι οποίες υποδεικνύουν μια περιοχή που θεωρείται χρήσιμη για επιμέρους υποπλαίσια. Εκτός των παραθύρων δεν επιτρέπεται, αν δεν έχει προβλεφθεί κατάλληλα για την bitmap, να σχεδιαστεί.
Πλαίσιο
Διεύθυνση | x0 | x1 | x2 | x3 | x4 | x5 | x6 | x7 | x8 | x9 | xA | xB | xC | xD | xE | xF | χαρ. | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0x0000 | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . |
Απόκλιση | Τύπος Δεδομένων | Ονομασία | Εξήγηση |
---|---|---|---|
0x0000 | uint(8) | Αριθμός υποπλαισίων και εναλλαγή για Προαιρετικό 1, 2 | Αυτή η τιμή περιλαμβάνει:
|
0x0001 | uint(8) | Άγνωστο 1 και Toggle για Προαιρετικά 3, 4 | Αυτή η τιμή περιέχει:
|
0x0002 | uint(8) | Προαιρετικό 1 | Άγνωστο |
0x0003 | uint(8) | Προαιρετικό 2 | Άγνωστο |
0x0004 | uint(8) | Προαιρετικό 3 | Άγνωστο |
0x0005 | uint(8) | Προαιρετικό 4 | Άγνωστο |
Υποπλαίσιο
Διεύθυνση | x0 | x1 | x2 | x3 | x4 | x5 | x6 | x7 | x8 | x9 | xA | xB | xC | xD | xE | xF | χαρ. | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0x0000 | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . |
Απόκλιση | Τύπος Δεδομένων | Ονομασία | Εξήγηση |
---|---|---|---|
0x0000 | uint(16) | Bitmap-Id | Δηλώνει ποια bitmap θα χρησιμοποιηθεί για αυτό το υποπλαίσιο |
0x0002 | uint(8) | Άγνωστο 1 | Είναι άγνωστο - υποψιάζομαι όμως έντονα ότι πρόκειται για μια προτεραιότητα απόδοσης (Z-Layer). |
0x0003 | uint(8) | Υποπλαίσιο-Id | Δηλώνει σε ποιο υποπλαίσιο βρισκόμαστε |
0x0004 | sint(16) | Απόκλιση - Οριζόντια | Καθορίζει πού μέσα στο πλαίσιο θα τοποθετηθεί το υποπλαίσιο, ή πόσους πίξελ πρέπει να μετατοπιστεί η εικόνα οριζόντια. |
0x0006 | sint(16) | Απόκλιση - Κατακόρυφα | Δηλώνει πού μέσα στο πλαίσιο θα πρέπει να τοποθετηθεί το υποπλαίσιο, ή κατά πόσους εικονοστοιχεία θα πρέπει να μετατοπιστεί η bitmap κατακόρυφα |
Έτσι μπορούμε τώρα να συνθέσουμε μεμονωμένα καρέ, καθώς και ολόκληρες κινούμενες εικόνες, όπως θα δείξουμε εδώ με ένα πιο σύνθετο παράδειγμα, την κινούμενη εικόνα με τον δείκτη 500.
Κίνηση 500
Η Animation 500 δείχνει πώς ένα Plymouth-μεταφορέας, που είναι φορτωμένος με συνηθισμένο μέταλλο, ξεφορτώνεται. Πρόκειται για μία από τις λίγες αναπαραστάσεις που αξιοποιούν τη λειτουργία παραθύρων.
Έτσι μπορεί να συνδυαστεί η πλήρης αναπαράσταση.
Δυστυχώς, υπάρχει ακόμα ένα πρόβλημα με την άνω πλευρά φόρτωσης, καθώς το αντίστοιχο bit στην πληροφορία τύπου γραφικών δεν έχει οριστεί.
Εδώ είναι μερικά ακόμα πανέμορφα κινούμενα sprites από το παιχνίδι: