Animazioni · bei.pm
I formati di file descritti in questa pagina si basano sull'analisi tecnica della proprietà intellettuale di Dynamix, Inc. e Sierra Entertainment.
La proprietà intellettuale è attualmente parte del patrimonio di Activision Publishing, Inc. / Activision Blizzard, Inc. ed è attualmente di proprietà di Microsoft Corp..
Le informazioni sono state raccolte tramite Reverse Engineering e analisi dei dati a scopo di archiviazione e interoperabilità con dati storici.
Non sono state utilizzate specifiche proprietarie o riservate.
Il gioco è attualmente disponibile per l'acquisto come download su gog.com.
Adesso arriviamo alla classe regina delle discipline all'interno dei formati dati di Outpost 2:
Le animazioni.
Le liste delle animazioni sono introdotte da un'intestazione globale, che serve principalmente alla verifica dei dati. Seguono quindi le specifiche delle animazioni concrete, che si suddividono in 3 livelli:
-
Animazione
Un'animazione è l'istanza principale; rappresenta un'animazione di un'unità, di un edificio o di un 'animazione di particelle' (impatto di un cometa, meteo, esplosione) in una determinata situazione iniziale. -
Frame
Un frame è un'immagine singola all'interno di un'animazione. Un'animazione può contenere uno o più frame. -
Subframe
Un subframe è l'informazione riguardante il fatto che un determinato bitmap deve essere disegnato in una certa posizione di un frame secondo specifici criteri. Un frame può contenere uno o più subframe.
Segue quindi direttamente la definizione delle singole animazioni.
Adr | x0 | x1 | x2 | x3 | x4 | x5 | x6 | x7 | x8 | x9 | xA | xB | xC | xD | xE | xF | caratteri | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0x0000 | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . |
Offset | Tipo di dato | Nome | Spiegazione |
---|---|---|---|
0x0000 | uint(32) | Numero di animazioni | Quanti dataset di animazione sono presenti |
0x0004 | uint(32) | Numero di frame | Quanti frame dovrebbero essere presenti in totale |
0x0008 | uint(32) | Numero di subframe | Quanti subframe dovrebbero esserci in totale |
0x000c | uint(32) | Numero di voci opzionali | Quanti "voci opzionali" sono disponibili. |
Animazione
Adr | x0 | x1 | x2 | x3 | x4 | x5 | x6 | x7 | x8 | x9 | xA | xB | xC | xD | xE | xF | caratteri | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0x0000 | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . |
0x0010 | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . |
0x0020 | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . |
Offset | Tipo di dato | Nome | Spiegazione |
---|---|---|---|
0x0000 | uint(32) | Sconosciuto 1 | Informazioni sconosciute |
0x0004 | uint(32) | Bounding Box: Sinistra | Indica l'inizio sinistro (in pixel) della Bounding Box. |
0x0008 | uint(32) | Bounding Box: Sopra | Indica l'inizio superiore (in pixel) della Bounding Box. |
0x000c | uint(32) | Bounding Box: Larghezza | Indica la larghezza (in pixel) della Bounding Box. |
0x0010 | uint(32) | Bounding Box: Altezza | Indica l'altezza (in pixel) della Bounding Box. |
0x0014 | uint(32) | Offset: X | Indica il punto centrale orizzontale dell'animazione |
0x0018 | uint(32) | Offset: Y | Indica il punto centrale verticale dell'animazione |
0x001c | uint(32) | Sconosciuto 2 | Informazione sconosciuta |
0x0020 | uint(32) | Numero di frame | Indica quanti fotogrammi di animazione sono contenuti in questa animazione |
0x0024 | uint(32) | Numero di finestre | Indica quanti finestre devono essere utilizzate durante il disegno |
I dati del livello superiore, dell'animazione, sono principalmente dati di gestione - la Boundingbox indica le coordinate del contrassegno attorno al veicolo/edificio, quando esso è selezionato e indica anche quale area deve essere cliccabile.
L'offset determina principalmente il "punto zero"; il punto da sommare o sottrarre alle coordinate interne del gioco. Potremmo anche dire in termini matematici: l'offset indica qui l'origine delle coordinate.
Le finestre consistono, proprio come l'offset, in 4 valori uint(32) ciascuna (per finestra), che specificano un'area utilizzabile per singoli subframe. Fuori dalle finestre non è permesso realizzare disegni, a meno che non sia specificamente previsto per la bitmap.
Cornice
Adr | x0 | x1 | x2 | x3 | x4 | x5 | x6 | x7 | x8 | x9 | xA | xB | xC | xD | xE | xF | caratteri | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0x0000 | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . |
Offset | Tipo di dato | Nome | Spiegazione |
---|---|---|---|
0x0000 | uint(8) | Numero di sottoquadro e attivazione per Opzionale 1, 2 | Questo valore contiene:
|
0x0001 | uint(8) | Sconosciuto 1 e Toggle per Opzionale 3, 4 | Questo valore contiene:
|
0x0002 | uint(8) | Opzionale 1 | Sconosciuto |
0x0003 | uint(8) | Opzionale 2 | Sconosciuto |
0x0004 | uint(8) | Opzionale 3 | Sconosciuto |
0x0005 | uint(8) | Opzionale 4 | Sconosciuto |
Sottostruttura
Adr | x0 | x1 | x2 | x3 | x4 | x5 | x6 | x7 | x8 | x9 | xA | xB | xC | xD | xE | xF | caratteri | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0x0000 | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . |
Offset | Tipo di dato | Nome | Spiegazione |
---|---|---|---|
0x0000 | uint(16) | Bitmap-ID | Indica quale bitmap deve essere utilizzata per questo subframe |
0x0002 | uint(8) | Sconosciuto 1 | È sconosciuto - tuttavia sospetto fortemente che si tratti di una priorità di rendering (Z-Layer). |
0x0003 | uint(8) | Subframe-Id | Indica in quale subframe ci troviamo |
0x0004 | sint(16) | Offset - Orizzontale | Indica dove all'interno del frame deve essere posizionato il subframe, oppure di quanti pixel deve essere spostata orizzontalmente la bitmap. |
0x0006 | sint(16) | Offset - Verticale | Indica dove all'interno del frame deve essere posizionato il subframe, oppure di quanti pixel deve essere spostata verticalmente la bitmap |
Con questo possiamo ora assemblare singoli frame, così come animazioni complete; qui viene dimostrato, a titolo esemplificativo, con un'animazione più complessa, quella con l'indice 500.
Animazione 500
L'animazione 500 mostra come un furgone Plymouth, caricato con materiale comune, venga scaricato. Si tratta di una delle poche animazioni che utilizza la funzionalità di Windowing.
In questo modo si può unire l'intera animazione.
Purtroppo c'è ancora un problema con il portellone superiore, poiché qui il bit corrispondente nelle informazioni sul tipo di grafica non è impostato.
Ecco alcuni altri bellissimi sprite animati dal gioco: