Animazioni · bei.pm

Pubblicato il 19/11/2015·Aggiornato il 13/02/2025·Italiano
Questo testo è stato tradotto automaticamente tramite OpenAI GPT-4o Mini.

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:

  1. 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.
  2. Frame
    Un frame è un'immagine singola all'interno di un'animazione. Un'animazione può contenere uno o più frame.
  3. 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:

  • 0x7F (Maschera di bit): il numero di subframe utilizzati in questo frame
  • 0x80: l'informazione se l'Opzione 1 e 2 sono presenti
0x0001 uint(8) Sconosciuto 1 e Toggle per Opzionale 3, 4

Questo valore contiene:

  • 0x7F (Maschera di bit): Sconosciuto - Sospetto fortemente che si tratti del numero di gametick che passano prima che venga visualizzato il prossimo frame
  • 0x80: L'informazione se Optional 3 e 4 sono presenti
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:

Rendering dell'animazione 500 illustrato

Animazione 500 completata e assemblata

Fabbrica di edifici Plymouth

Porto spaziale Eden

Centro medico Eden

SCAT

Porto spaziale Plymouth

Easteregg:
Papà Natale

Easteregg:
Cane di Dans