Animace · bei.pm
Formáty souborů popsané na této stránce vycházejí z technické analýzy duševního vlastnictví společnosti Dynamix, Inc. a Sierra Entertainment.
Duševní vlastnictví je dnes součástí majetku Activision Publishing, Inc. / Activision Blizzard, Inc. a v současnosti je ve vlastnictví Microsoft Corp..
Informace byly shromážděny pomocí Reverse Engineering a analýzy dat za účelem archivace a interoperability s historickými daty.
Nebyly použity žádné proprietární nebo důvěrné specifikace.
Hra je v současnosti dostupná ke koupi jako stahování na gog.com.
Nyní se dostáváme k vrcholné disciplíně v rámci datových formátů Outpost 2:
k animacím.
Seznamy animací začínají globální hlavičkou, která slouží primárně pro verifikaci dat. Následují konkrétní definice animací, které jsou rozděleny do 3 úrovní:
-
Animace
Animace je nejvyšší instancí; představuje animaci jednotky, budovy nebo 'partiklové animace' (náraz komety, počasí, exploze) v určité výchozí situaci. -
Frame
Frame je jednotlivý snímek v rámci animace. Animace může obsahovat jeden nebo více snímků. -
Subframe
Subframe je informace o tom, že určité bitmapě má být pod určitými kritérii vykresleno na určité pozici snímku. Snímek může obsahovat jeden nebo více subframe.
Následně již přímo následují jednotlivé definice animací.
Adr | x0 | x1 | x2 | x3 | x4 | x5 | x6 | x7 | x8 | x9 | xA | xB | xC | xD | xE | xF | znaky | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0x0000 | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . |
Offset | Typ dat | Označení | Vysvětlení |
---|---|---|---|
0x0000 | uint(32) | Počet animací | Kolik animačních datových sad je k dispozici |
0x0004 | uint(32) | Počet snímků | Kolik rámců by mělo být celkem k dispozici |
0x0008 | uint(32) | Počet subrámců | Kolik subframeů by mělo být celkem k dispozici |
0x000c | uint(32) | Počet volitelných položek | Kolik "volitelných položek" je k dispozici. |
Animace
Adr | x0 | x1 | x2 | x3 | x4 | x5 | x6 | x7 | x8 | x9 | xA | xB | xC | xD | xE | xF | znaky | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0x0000 | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . |
0x0010 | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . |
0x0020 | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . |
Offset | Typ dat | Označení | Vysvětlení |
---|---|---|---|
0x0000 | uint(32) | Neznámý 1 | Neznámé informace |
0x0004 | uint(32) | Ohraničující rámeček: Odkazy | Určuje levý začátek (v pixelech) Bounding Box. |
0x0008 | uint(32) | Ohraničující rámeček: Nahoru | Určuje horní začátek (v pixelech) ohraničujícího rámce. |
0x000c | uint(32) | Omezená oblast: Šířka | Udává šířku (v pixelech) Bounding Box. |
0x0010 | uint(32) | Ohraničující rámeček: Výška | Udává výšku (v pixelech) Bounding Box. |
0x0014 | uint(32) | Offset: X | Určuje horizontální střed animace |
0x0018 | uint(32) | Offset: Y | Udává vertikální střed animace |
0x001c | uint(32) | Neznámý 2 | Neznámé informace |
0x0020 | uint(32) | Počet snímků | Udává, kolik animačních snímků je obsaženo v této animaci |
0x0024 | uint(32) | Počet oken | Udává, kolik oken má být použito při kreslení |
Údaje nejvyšší vrstvy, animace, jsou především administrativními daty - Boundingbox označuje souřadnice značky kolem vozidla/budovy, když je vybráno, a zároveň také určuje, která oblast by měla být klikací.
Offset primárně určuje "nulový bod"; bod, který je třeba připočítat nebo odečíst od herních souřadnic. Mohli bychom také říci matematicky: offset zde označuje počátek souřadnic.
V oknech se, stejně jako u offsetu, jedná o 4 uint(32) hodnoty pro každé okno, které určují oblast, která je považována za použitelnou pro jednotlivé subrámce. Mimo okna se, pokud to není pro bitmapu příslušně určeno, nesmí kreslit.
Rám
Adr | x0 | x1 | x2 | x3 | x4 | x5 | x6 | x7 | x8 | x9 | xA | xB | xC | xD | xE | xF | znaky | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0x0000 | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . |
Offset | Typ dat | Označení | Vysvětlení |
---|---|---|---|
0x0000 | uint(8) | Počet subrámců a přepínač pro volitelné 1, 2 | Tato hodnota obsahuje:
|
0x0001 | uint(8) | Neznámý 1 a přepínač pro volitelné 3, 4 | Tato hodnota obsahuje:
|
0x0002 | uint(8) | Volitelný 1 | Neznámý |
0x0003 | uint(8) | Volitelný 2 | Neznámý |
0x0004 | uint(8) | Volitelný 3 | Neznámý |
0x0005 | uint(8) | Volitelný 4 | Neznámý |
Podrámeček
Adr | x0 | x1 | x2 | x3 | x4 | x5 | x6 | x7 | x8 | x9 | xA | xB | xC | xD | xE | xF | znaky | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0x0000 | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . |
Offset | Typ dat | Označení | Vysvětlení |
---|---|---|---|
0x0000 | uint(16) | Bitmap-ID | Určuje, která bitmapa má být použita pro tento podrámeček |
0x0002 | uint(8) | Neznámý 1 | Není známo - silně však předpokládám, že se jedná o prioritu renderování (Z-Layer). |
0x0003 | uint(8) | Subframe-Id | Uveďte, v jakém subrámu se nacházíme |
0x0004 | sint(16) | Offset - Horizontální | Určuje, kde uvnitř rámce má být podrámeček umístěn, nebo o kolik pixelů má být bitmapa horizontálně posunuta. |
0x0006 | sint(16) | Offset - Vertikální | Určuje, kde uvnitř rámce by mělo být subrámce umístěno, nebo o kolik pixelů by měla být bitmapa vertikálně posunuta. |
Tímto můžeme nyní jednotlivé snímky i kompletní animace sestavovat podle potřeby, zde je to ukázáno na komplexnější animaci s indexem 500.
Animace 500
Animace 500 ukazuje, jak je vykládán Plymouth Transporter naložený běžným rudným materiálem. Jedná se o jednu z mála animací, které využívají funkčnost okna.
A tak lze celou animaci spojit dohromady.
Omlouváme se, ale stále existuje problém s horním nakládacím otvorem, protože zde není nastavený odpovídající bit v informacích o typu grafiky.
Zde je ještě několik dalších nádherně animovaných spriteů ze hry: