Animatiounen · bei.pm

Verëffentlecht den 19.11.2015·Aktualiséiert den 13.02.2025·Lëtzebuergesch
Dëse Text gouf automatiséiert duerch OpenAI GPT-4o Mini iwwersat.

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:

  1. 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.
  2. Frame
    E Frame ass eeen eenzegt Bild an engem Animatioun. Eng Animatioun kann een oder méi Frames enthalen.
  3. 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
  • 0x7F (Bitmaske): D'Zuel vun Subframes, déi an dësem Frame benotzt gi sinn
  • 0x80: D'Informatioun ob Optional 1 an 2 präsent sinn
0x0001 uint(8) Onbekannt 1 an Toggle fir Optional 3, 4

Dëse Wäert enthält:

  • 0x7F (Bitmaske): Onbekannt - Ech sinn derbäi ze mengen, datt et sech hei ëm d'Zuel vun Gameticks handelt, déi vergaangen sinn, bis de nächste Frame ugewisen gëtt
  • 0x80: D'Informatioun doriwwer, ob Optional 3 an 4 präsent sinn
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:

Rendering vun Animatioun 500 illustriert

Animatioun 500 fäerdeg zesummegestallt

Plymouth Gebai-Fabréck

Eden Weltraumhafen

Eden medizinescht Zentrum

SCAT

Plymouth Weltraumhafen

Easteregg:
Weihnachtsmann

Easteregg:
Dans Hund