Animatiounen · bei.pm
déi Dateiformater, déi op dëser Säit beschriwwe sinn, baséieren op der technescher Analyse vum geistegen Eegentum vun Dynamix, Inc. an Sierra Entertainment.
D'geistegt Eegentum ass Haut Deel vun der Activision Publishing, Inc.- / Activision Blizzard, Inc.-Masse an ass zur Zäit am Besëtz vun Microsoft Corp..
D'Informatioune goufen duerch Reverse Engineering an Datenanalyse fir d'Archivéierung an d'Interoperabilitéit mat historesche Date gesammelt.
Et goufen keng proprietär oder vertrauléch Spezifikatiounen benotzt.
D'Spill kann zur Zäit op gog.com als Download kaaft ginn.
Nun kommen mir zur Kéierklassen vun den Disziplinen am Outpost 2 Datenformat:
Den Animationen.
Die Animatiounslisten ginn mat engem globalen Header, deen primär der Dateverifikatioun déngt, ageleitet. Darophin kommen d'konkreten Animatiounsdefinitiounen, déi an 3 Stufen ënnerdeelt sinn:
-
Animatioun
Ei Animatioun ass d'oberste Instanz; si stellt eng Animatioun vun enger Eenheet, engem Gebai oder enger 'Partikel-Animatioun' (Kometenschlag, Wieder, Explosioun) an enger bestëmmter Ausgangslage duer. -
Frame
E Frame ass eeen eenzegt Bild an engem Animatioun. Eng Animatioun kann een oder méi Frames enthalen. -
Subframe
E Subframe ass d'Informatioun dor iwwer, datt eng bestëmmte Bitmap ënner bestëmmten Kriterien op eng bestëmmte Positioun vun engem Frame gezeechent soll ginn. E Frame kann een oder méi Subframes enthalen.
>Anschléissend kommen schonn direkt d'eenzeg Animatiounsdefinitiounen.
Adr | x0 | x1 | x2 | x3 | x4 | x5 | x6 | x7 | x8 | x9 | xA | xB | xC | xD | xE | xF | char | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0x0000 | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . |
Offset | Datentyp | Bezeechnung | Erklärung |
---|---|---|---|
0x0000 | uint(32) | Zuel vun Animatiounen | Wéi vill Animatiounsdatensätz sinn u presente? |
0x0004 | uint(32) | Zuel vun de Frame | Wéi vill Frames insgesamt sollt et ginn |
0x0008 | uint(32) | Zuel vun de Subframes | Wéi vill Subframes insgesamt sollten ech hunn |
0x000c | uint(32) | Zuel vun fakultativen Entréeën | Wéi vill "optional Entréeën" sinn do? |
Animatioun
Adr | x0 | x1 | x2 | x3 | x4 | x5 | x6 | x7 | x8 | x9 | xA | xB | xC | xD | xE | xF | char | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0x0000 | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . |
0x0010 | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . |
0x0020 | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . |
Offset | Datentyp | Bezeechnung | Erklärung |
---|---|---|---|
0x0000 | uint(32) | Onbekannt 1 | Onbekannt Informatiounen |
0x0004 | uint(32) | Bounding Box: Lénks | Gëtt den linke Start (an Pixel) vun der Bounding Box ugebueden. |
0x0008 | uint(32) | Bounding Box: Oben | Gëtt den obere Start (an Pixel) vun der Bounding Box ugewisen. |
0x000c | uint(32) | Bounding Box: Breite | Gitt d'Breit (an Pixel) vun der Bounding Box un. |
0x0010 | uint(32) | Bounding Box: Héicht | Gëtt d'Héicht (an Pixel) vun der Bounding Box ugewise. |
0x0014 | uint(32) | Offset: X | Gëtt de horizontalen Mënschpunkt vun der Animatioun un |
0x0018 | uint(32) | Offset: Y | Gëtt de vertikalen Mënschpunkt vun der Animation un |
0x001c | uint(32) | Unbekannt 2 | Onbekannt Informatioun |
0x0020 | uint(32) | Zuel vun de Frame | Gitt un, wéi vill Animatiounsframes an dëser Animatioun enthalen sinn |
0x0024 | uint(32) | Zuel vun Windows | Gëtt un, wéi vill Fënster beim Zeichnen anzewenden sinn |
Die Date vun der oberster Schicht, der Animation, sinn do vorrangig Verwaltungsdaten - déi Boundingbox bezeechent déi Koordinaten vun der Markéierung ronderëm d'Fuerzeug/Gebai, wann dat gewielt ass an gëtt och gläichzäiteg un, wéi eng Zone klickbar soll sinn.
D'Shift bestëmmt vorrangig den "Nullpunkt"; den Punkt, deen op d'Spillintern Koordinaten ze addéieren beziehungsweise ofzéien ass. Een kéint och mathematesch soen: d'Shift bezeechent hei den Koordinatenurspronk.
Bei den Windows handelt et sech, genee wéi beim Shift, ëm jeeweils (pro Window) 4 uint(32)-Wäerter, déi eng Zone uginn, déi fir eenzel Subframes als benotzbar gëllt. D'Ausserhalb vun den Windows darf, esou wäit et fir d'Bitmap entspriechend virgesin ass, net gezeechent ginn.
Frame
Adr | x0 | x1 | x2 | x3 | x4 | x5 | x6 | x7 | x8 | x9 | xA | xB | xC | xD | xE | xF | char | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0x0000 | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . |
Offset | Datentyp | Bezeechnung | Erklärung |
---|---|---|---|
0x0000 | uint(8) | Subframe-Zuel an Toggle fir Optional 1, 2 |
|
0x0001 | uint(8) | Onbekannt 1 an Toggle fir Optional 3, 4 | Dëse Wäert enthält:
|
0x0002 | uint(8) | Optioun 1 | Onbekannt |
0x0003 | uint(8) | Optional 2 | Onbekannt |
0x0004 | uint(8) | Optiounen 3 | Onbekannt |
0x0005 | uint(8) | Optional 4 | Onbekannt |
Subframe
Adr | x0 | x1 | x2 | x3 | x4 | x5 | x6 | x7 | x8 | x9 | xA | xB | xC | xD | xE | xF | char | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0x0000 | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . |
Offset | Datentyp | Bezeechnung | Erklärung |
---|---|---|---|
0x0000 | uint(16) | Bitmap-Id | Gëtt aan, wéi eng Bitmap fir dësen Subframe benotzt soll ginn |
0x0002 | uint(8) | Onbekannt 1 | Ass onbekannt - ech vermuten awer staark, datt et sech hei ëm eng Render-Prioritéit (Z-Layer) handelt. |
0x0003 | uint(8) | Subframe-Id | Gëtt uginn, an wéi engem Subframe mir eis befannen |
0x0004 | sint(16) | Offset - Horizontal | Gëtt an, wou innerhalb vum Frame d’Subframe placéiert soll ginn, respektiv wéivill Pixel d’Bitmap horizontal verschoben soll ginn |
0x0006 | sint(16) | Offset - Vertikal | Gëtt un, wou am Frame d'Subframe plazéiert soll ginn, respektiv wéi vill Pixel d'Bitmap vertikal verschowe soll ginn |
Daduerch kënne mir elo eenzel Frames, souwéi komplett Animatioune entspriechend zesummesetzen, hei als Beispill un enger méi komplexer Animation, der Animation mat dem Index 500, demonstréiert.
Animation 500
Animatioun 500 weist, wéi e Plymouth-Transporter, deen mat gewéinlechem Erz belueden ass, entluede gëtt. Dëst ass eng vun de wenigen Animatiounen, déi d'Windowing-Funktionalitéit benotzt.
An esou kann d'komplet Animatioun zesummegestallt ginn.
Leider ass et nach e Problem mat der uupper Ladeluke, well hei d'äquivalente Bit an der Grafiktyp-Informatioun net gesat ass.
Hir sinn nach e puer weider, schéin animéiert Sprites aus dem Spill: