Animace · bei.pm

Publikováno dne 19.11.2015·Aktualizováno dne 13. 02. 2025·čeština
Tento text byl automaticky přeložen pomocí OpenAI GPT-4o Mini.

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í:

  1. 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.
  2. Frame
    Frame je jednotlivý snímek v rámci animace. Animace může obsahovat jeden nebo více snímků.
  3. 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:

  • 0x7F (Bitmask): Počet subframe, které jsou v tomto rámci použity
  • 0x80: Informace o tom, zda jsou přítomny volitelné 1 a 2
0x0001 uint(8) Neznámý 1 a přepínač pro volitelné 3, 4

Tato hodnota obsahuje:

  • 0x7F (Bitová maska): Neznámé - Silně se domnívám, že se jedná o počet herních ticků, které uplynou, než se zobrazí další snímek
  • 0x80: Informace o tom, zda jsou přítomny volitelné 3 a 4
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:

Vykreslení animace 500 ilustrováno

Animace 500 úspěšně spojena

Plymouth Továrna na budovy

Eden Hvězdný přístav

Eden Zdravotní středisko

SCAT

Plymouth Hvězdný přístav

Easteregg:
Vánoční muž

Easteregg:
Dans Pes