Animacije · bei.pm
Format datoteka opisani na ovoj stranici temelje se na tehničkoj analizi intelektualnog vlasništva Dynamix, Inc. i Sierra Entertainment.
Intelektualno vlasništvo danas je dio Activision Publishing, Inc. / Activision Blizzard, Inc. grupe i trenutno je u vlasništvu Microsoft Corp..
Informacije su prikupljene putem obrnute inženjering i analize podataka u svrhu arhiviranja i interoperabilnosti s povijesnim podacima.
Nisu korištene nikakve vlasničke ili povjerljive specifikacije.
Igra se trenutno može kupiti kao preuzimanje na gog.com.
Sada dolazimo do kraljevske discipline unutar Outpost 2 formata podataka:
Animacija.
Popisi animacija započinju globalnim zaglavljem, koje prvenstveno služi za verifikaciju podataka. Nakon toga slijede konkretne definicije animacija, koje su podijeljene u 3 razine:
-
Animacija
Animacija je najviša instanca; predstavlja animaciju jedinice, zgrade ili 'čestice-animacije' (udar kometa, vrijeme, eksplozija) u određenoj početnoj situaciji. -
Okvir
Okvir je pojedinačna slika unutar animacije. Animacija može sadržavati jedan ili više okvira. -
Podokvir
Podokvir je informacija o tome da se određena bitmapa pod određenim kriterijima treba nacrtati na određenu poziciju okvira. Okvir može sadržavati jedan ili više podokvira.
Nakon toga slijede konkretne definicije animacija.
Adr | x0 | x1 | x2 | x3 | x4 | x5 | x6 | x7 | x8 | x9 | xA | xB | xC | xD | xE | xF | znak | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0x0000 | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . |
Pomak | Tip podataka | Naziv | Objašnjenje |
---|---|---|---|
0x0000 | uint(32) | Broj animacija | Koliko animacijskih podataka postoji |
0x0004 | uint(32) | Broj okvira | Koliko ukupno okvira bi trebalo biti prisutno |
0x0008 | uint(32) | Broj podokvira | Koliko ukupno subframeova bi trebalo biti prisutno |
0x000c | uint(32) | Broj opcionalnih unosa | Koliko "opcionalnih unosa" postoji. |
Animacija
Adr | x0 | x1 | x2 | x3 | x4 | x5 | x6 | x7 | x8 | x9 | xA | xB | xC | xD | xE | xF | znak | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0x0000 | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . |
0x0010 | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . |
0x0020 | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . |
Pomak | Tip podataka | Naziv | Objašnjenje |
---|---|---|---|
0x0000 | uint(32) | Nepoznato 1 | Nepoznate informacije |
0x0004 | uint(32) | Okvir za granice: Lijevo | Navodi lijevi početak (u pikselima) Bounding Box. |
0x0008 | uint(32) | Ograničavajući okvir: Gornji | Navodi gornji početak (u pikselima) Bounding Box. |
0x000c | uint(32) | Okvir: Širina | Navodi širinu (u pikselima) Bounding Box. |
0x0010 | uint(32) | Okvir za ograničenje: Visina | Navodi visinu (u pikselima) Bounding Box. |
0x0014 | uint(32) | Pomak: X | Određuje horizontalnu sredinu animacije |
0x0018 | uint(32) | Pomak: Y | Određuje vertikalnu središnjicu animacije |
0x001c | uint(32) | Nepoznato 2 | Nepoznate informacije |
0x0020 | uint(32) | Broj okvira | Navodi koliko animacijskih okvira sadrži ova animacija |
0x0024 | uint(32) | Broj prozora | Navodi koliko prozora treba primijeniti prilikom crtanja |
Podaci gornjeg sloja, animacije, prvenstveno su upravni podaci - Boundingbox označava koordinate oznake oko vozila/zgrade, kada je ona odabrana, i također označava koji dio treba biti klikabilan.
Offset prvenstveno određuje "nulte točke"; točka koja se mora izračunati ili oduzeti od unutarnjih koordinata igre. Moglo bi se reći i matematički: offset ovdje označava izvor koordinata.
Windows se, kao i offset, sastoje od 4 uint(32) vrijednosti po prozoru, koje označavaju područje koje se može koristiti za pojedinačne subframeove. Izvan prozora ne smije se, osim ako nije predviđeno za bitmapu, crtati.
Okvir
Adr | x0 | x1 | x2 | x3 | x4 | x5 | x6 | x7 | x8 | x9 | xA | xB | xC | xD | xE | xF | znak | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0x0000 | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . |
Pomak | Tip podataka | Naziv | Objašnjenje |
---|---|---|---|
0x0000 | uint(8) | Broj podokvira i prekidač za Opcionalno 1, 2 | Ova vrijednost sadrži:
|
0x0001 | uint(8) | Nepoznato 1 i prekidač za Opcionalno 3, 4 | Ova vrijednost sadrži:
|
0x0002 | uint(8) | Opcionalno 1 | Nepoznato |
0x0003 | uint(8) | Opcionalno 2 | Nepoznato |
0x0004 | uint(8) | Opcionalno 3 | Nepoznato |
0x0005 | uint(8) | Opcionalno 4 | Nepoznato |
Subokvir
Adr | x0 | x1 | x2 | x3 | x4 | x5 | x6 | x7 | x8 | x9 | xA | xB | xC | xD | xE | xF | znak | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0x0000 | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . |
Pomak | Tip podataka | Naziv | Objašnjenje |
---|---|---|---|
0x0000 | uint(16) | Bitmap-Id | Navodi koja se bitmapa treba koristiti za ovaj podokvir |
0x0002 | uint(8) | Nepoznato 1 | Nije poznato - međutim, snažno pretpostavljam da se ovdje radi o prioritetu renderiranja (Z-sloj). |
0x0003 | uint(8) | Subframe-Id | Navodi u kojem se podokviru nalazimo |
0x0004 | sint(16) | Offset - Horizontalno | Navodi gdje unutar okvira treba postaviti podokvir, odnosno koliko piksela treba horizontalno pomaknuti bitmapu |
0x0006 | sint(16) | Offset - Vertikalni | Navodi gdje unutar okvira treba postaviti podokvir, odnosno koliko piksela treba vertikalno pomaknuti bitmapu |
Tako možemo sada sastaviti pojedinačne okvire, kao i kompletne animacije, ovdje jednom primjerom na složenijoj animaciji, animaciji s indeksom 500, demonstrirano
Animacija 500
Animacija 500 prikazuje kako se Plymouth transporter, koji je opterećen običnim željezom, istovara. Ovo je jedna od rijetkih animacija koja koristi funkcionalnost prozora.
Tako se može sastaviti cijela animacija.
Nažalost, još uvijek postoji problem s gornjim otvorom za utovar, jer ovdje odgovarajući bit u informacijama o tipu grafike nije postavljen.
Evo još nekoliko prekrasno animiranih spriteova iz igre: