Animacije · bei.pm
Na tej strani opisani formati datotek temeljijo na tehnični analizi intelektualne lastnine podjetja Dynamix, Inc. in Sierra Entertainment.
Intelektualna lastnina je danes del mase Activision Publishing, Inc. / Activision Blizzard, Inc. in je trenutno v lasti Microsoft Corp..
Informacije so bile zbrane z obratnim inženiringom in analizo podatkov z namenom arhiviranja in interoperabilnosti s zgodovinskimi podatki.
Niso bile uporabljene nobene lastniške ali zaupne specifikacije.
Igro je trenutno mogoče kupiti v obliki prenosa na gog.com.
Zdaj pridemo do kraljevske discipline znotraj formatov podatkov Outpost 2:
Do animacij.
Seznami animacij se začnejo z globalno glavo, ki služi predvsem za verifikacijo podatkov. Nato sledijo konkretne definicije animacij, ki so razdeljene v 3 ravni:
-
Animacija
Animacija je najvišja instanca; predstavlja animacijo enote, stavbe ali 'delčne animacije' (kometski udar, vreme, eksplozija) v določenem izhodišču. -
Frame
Frame je posamezna slika znotraj animacije. Animacija lahko vsebuje enega ali več frame-ov. -
Subframe
Subframe je informacija, da naj se določena bitmapa pod določenimi kriteriji nariše na določeno mesto frame-a. Frame lahko vsebuje enega ali več subframe-ov.
Nato sledijo posamezne definicije animacij.
Nasl. | x0 | x1 | x2 | x3 | x4 | x5 | x6 | x7 | x8 | x9 | xA | xB | xC | xD | xE | xF | znak | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0x0000 | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . |
Odmik | Tip podatkov | Oznaka | Razlaga |
---|---|---|---|
0x0000 | uint(32) | Število animacij | Koliko animacijskih podatkov je na voljo |
0x0004 | uint(32) | Število sličic | Koliko okvirjev naj bi bilo skupno na voljo |
0x0008 | uint(32) | Število podokvirov | Koliko subokvirov naj bi bilo na voljo skupaj |
0x000c | uint(32) | Število neobveznih vnosov | Koliko "opcijskih vnosov" je na voljo. |
Animacija
Nasl. | x0 | x1 | x2 | x3 | x4 | x5 | x6 | x7 | x8 | x9 | xA | xB | xC | xD | xE | xF | znak | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0x0000 | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . |
0x0010 | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . |
0x0020 | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . |
Odmik | Tip podatkov | Oznaka | Razlaga |
---|---|---|---|
0x0000 | uint(32) | Neznan 1 | Neznane informacije |
0x0004 | uint(32) | Omejitveni okvir: Levo | Določa levi začetek (v slikovnih pikah) Bounding Box. |
0x0008 | uint(32) | Omejitveni okvir: Zgoraj | Določa zgornji začetek (v pikslah) Bounding Box. |
0x000c | uint(32) | Omejitveni okvir: Širina | Navede širino (v pikselih) Bounding Box. |
0x0010 | uint(32) | Omejitveni okvir: višina | Označuje višino (v pikselih) Bounding Box. |
0x0014 | uint(32) | Pomik: X | Označuje horizontalno središče animacije |
0x0018 | uint(32) | Offset: Y | Označuje vertikalno središče animacije |
0x001c | uint(32) | Neznano 2 | Neznane informacije |
0x0020 | uint(32) | Število sličic | Navede, koliko animacijskih sličic je v tej animaciji vsebovanih |
0x0024 | uint(32) | Število oken | Navede, koliko oken je treba uporabiti pri risanju |
Podatki zgornje plasti animacije so predvsem upravljalski podatki - Boundingbox označuje koordinate oznake okoli vozila/poslopja, kadar je to izbrano, in hkrati označuje, kateri del je mogoče klikniti.
Offset predvsem določa "ničelno točko"; točko, ki se mora seštevati ali odštevati od notranjih koordinat igre. Matematično bi lahko rekli: offset tukaj označuje koordinatno izhodišče.
Oken je, prav tako kot offset, vsak (na okno) sestavljen iz 4 uint(32) vrednosti, ki določajo območje, ki velja za posamezne subframe. Zunaj oken se, če to ni predvideno za bitmaps, ne sme risati.
Okvir
Nasl. | x0 | x1 | x2 | x3 | x4 | x5 | x6 | x7 | x8 | x9 | xA | xB | xC | xD | xE | xF | znak | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0x0000 | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . |
Odmik | Tip podatkov | Oznaka | Razlaga |
---|---|---|---|
0x0000 | uint(8) | Število podokvirov in preklop za opcijo 1, 2 | Ta vrednost vsebuje:
|
0x0001 | uint(8) | Nepoznan 1 in preklopnik za opcionalno 3, 4 | Ta vrednost vsebuje:
|
0x0002 | uint(8) | Opcijsko 1 | Neznan |
0x0003 | uint(8) | Opcionalno 2 | Neznan |
0x0004 | uint(8) | Opcijsko 3 | Neznan |
0x0005 | uint(8) | Opcijsko 4 | Neznan |
Podokvir
Nasl. | x0 | x1 | x2 | x3 | x4 | x5 | x6 | x7 | x8 | x9 | xA | xB | xC | xD | xE | xF | znak | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0x0000 | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . |
Odmik | Tip podatkov | Oznaka | Razlaga |
---|---|---|---|
0x0000 | uint(16) | Bitmap-ID | Označuje, katera bitmapa naj se uporablja za to podokno |
0x0002 | uint(8) | Neznan 1 | Je neznano - močno pa domnevam, da gre za prioritetno renderiranje (Z-sloja). |
0x0003 | uint(8) | Subframe-Id | Označuje, v katerem podoknu se nahajamo |
0x0004 | sint(16) | Offset - Horizontalno | Natančno določa, kje znotraj okvira naj bo podokno postavljeno, oziroma za koliko pikslov naj se bitna slika horizontalno premakne. |
0x0006 | sint(16) | Offset - Vertikal | Navede, kje znotraj okvira naj bo podokno postavljeno, oziroma za koliko pikslov naj bo bitna slika vertikalno premaknjena. |
Tako lahko zdaj sestavljamo posamezne okvire, pa tudi celotne animacije, tukaj pa to ob demonstraciji bolj kompleksne animacije, animacije z indeksom 500.
Animacija 500
Animacija 500 prikazuje, kako se Plymouth transporter, naložen z običajnimi minerali, raztovarja. To je ena redkih animacij, ki uporablja funkcionalnost oken.
In tako lahko sestavimo celotno animacijo.
Žal pa obstaja še en problem z zgornjim tovorom, saj tukaj ustrezni bit v informacijah o grafični vrsti ni nastavljen.
Tukaj je še nekaj drugih, čudovito animiranih sprite-ov iz igre: