Animasjonen · bei.pm
Filformatene som er beskrevet på denne siden, er basert på teknisk analyse av åndsverk frå Dynamix, Inc. og Sierra Entertainment.
Åndsverka er i dag ein del av Activision Publishing, Inc.- / Activision Blizzard, Inc.-massen og er for tida eid av Microsoft Corp..
Informasjonen er samla inn gjennom Reverse Engineering og dataanalyse med det formål å arkivere og oppnå interoperabilitet med historiske data.
Ingen proprietære eller konfidensielle spesifikasjoner har blitt brukt.
Spelet kan no kjøpast som nedlasting på gog.com.
no kjem vi til kongeklassen av disiplinar innan Outpost 2 dataformata:
Animasjonane.
Animationslistene blir innleidd med ein global header, som primært er til for dataverifikasjon. Deretter følgjer dei konkrete animasjonsdefinisjonane, som er delt inn i 3 nivå:
-
Animajon
Ein animasjon er den øvste instansen; ho representerer animasjonen av ein eining, ein bygning eller ein 'partikkel-animasjon' (kometnedslag, vêr, eksplosjon) i ein bestemt utgangspunkt. -
Frame
Ein frame er eit enkelt bilete innanfor ei animasjon. Ei animasjon kan innehalde ein eller fleire frames. -
Subframe
Ein subframe er informasjon om at ei bestemt bitmap skal teiknast på ein bestemt posisjon i eit frame under bestemte kriterium. Eit frame kan innehalde ein eller fleire subframes.
Deretter følgjer dei enkelte animasjonsdefinisjonane direkte.
Adr | x0 | x1 | x2 | x3 | x4 | x5 | x6 | x7 | x8 | x9 | xA | xB | xC | xD | xE | xF | teikn | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0x0000 | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . |
Offset | Datatype | Betegnelse | Forklaring |
---|---|---|---|
0x0000 | uint(32) | Antall animasjonar | Kor mange animasjonsdatasett er til stades |
0x0004 | uint(32) | Antall rammer | Kor mange rammer skal vere til stades totalt |
0x0008 | uint(32) | Antall subrammer | Korleis mange subrammer bør det totalt vere |
0x000c | uint(32) | Antall valgfrie oppføringar | Kor mange "valfrie oppføringar" finst. |
Animasjon
Adr | x0 | x1 | x2 | x3 | x4 | x5 | x6 | x7 | x8 | x9 | xA | xB | xC | xD | xE | xF | teikn | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0x0000 | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . |
0x0010 | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . |
0x0020 | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . |
Offset | Datatype | Betegnelse | Forklaring |
---|---|---|---|
0x0000 | uint(32) | Ukjent 1 | Ukjente opplysningar |
0x0004 | uint(32) | Avgrensingsboks: Venstre | Angir venstre start (i pikslar) av Bounding Box. |
0x0008 | uint(32) | Avgrensingsboks: Oppe | Gjev den øvste starten (i pikslar) av Bounding Box. |
0x000c | uint(32) | Avgrensingsboks: Breidde | Oppgjev breidda (i pikslar) til Bounding Box. |
0x0010 | uint(32) | Avgrensingsboks: Høgde | Oppgjev høgda (i pikslar) til Bounding Box. |
0x0014 | uint(32) | Offset: X | Angir den horisontale midtpunktet for animasjonen |
0x0018 | uint(32) | Offset: Y | Gir den vertikale midtpunktet av animasjonen |
0x001c | uint(32) | Ukjent 2 | Ukjende opplysningar |
0x0020 | uint(32) | Antall rammer | Angir kor mange animasjonsrammer som er inne i denne animasjonen |
0x0024 | uint(32) | Antall vindauge | Angir kor mange vindauge som skal brukast ved teikning |
Dataene til det øvste laget, animasjonen, er først og fremst forvaltningsdata - Boundingbox refererer til koordinatane til merkedomenet rundt kjøretøyet/bygningen, når det er valt, og indikerer også samtidig kva område som skal være klikkbart.
Offsetet bestemmer først og fremst "nullpunktet"; punktet som skal leggjast til eller trekkast frå spelintern koordinatar. Man kan også seie matematisk at offsetet her refererer til koordinatorigins.
Vindauga består, akkurat som offsetet, av 4 uint(32)-verdier per vindauge, som angir eit område som er brukbart for enkelt subrammer. Utenfor vindauga skal det, så lenge det er tiltenkt for bitmapen, ikkje teiknast.
Ramme
Adr | x0 | x1 | x2 | x3 | x4 | x5 | x6 | x7 | x8 | x9 | xA | xB | xC | xD | xE | xF | teikn | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0x0000 | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . |
Offset | Datatype | Betegnelse | Forklaring |
---|---|---|---|
0x0000 | uint(8) | Subframe-tal og toggle for Valgfri 1, 2 | Denne verdien inneheld:
|
0x0001 | uint(8) | Ukjent 1 og Toggle for Valgfri 3, 4 | Denne verdien inneheld:
|
0x0002 | uint(8) | Valgfri 1 | Ukjent |
0x0003 | uint(8) | Valgfri 2 | Ukjent |
0x0004 | uint(8) | Valfritt 3 | Ukjent |
0x0005 | uint(8) | Valgfritt 4 | Ukjent |
Underramme
Adr | x0 | x1 | x2 | x3 | x4 | x5 | x6 | x7 | x8 | x9 | xA | xB | xC | xD | xE | xF | teikn | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0x0000 | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . |
Offset | Datatype | Betegnelse | Forklaring |
---|---|---|---|
0x0000 | uint(16) | Bitmap-ID | Angir kva bitmap som skal nyttast for denne subrammen |
0x0002 | uint(8) | Ukjent 1 | Er ukjend - eg mistenker likevel sterkt at dette handlar om ein render-prioritet (Z-lag). |
0x0003 | uint(8) | Subramme-ID | Angir kva for ein subramme vi er i |
0x0004 | sint(16) | Offset - Horisontal | Angir kvar innanfor ramma subramma skal plasserast, eller kor mange pikslar bitmapen skal flyttast horisontalt. |
0x0006 | sint(16) | Offset - Vertikalt | Angir kvar innan ramma subramma skal plasserast, eller kor mange pikslar bitmapen skal flyttast vertikalt. |
Med dette kan vi no sette saman enkeltbilde og heile animasjonar i samsvar, her demonstrert med eit meir komplisert eksempel, animasjonen med indeks 500.
Animasjon 500
Animasjon 500 viser korleis ein Plymouth-transportar, lasta med vanleg malm, blir lossa. Dette er ein av dei få animasjonane som nyttar vindusfunksjonaliteten.
Og slik kan heile animasjonen setjast saman.
Dessverre er det eit problem med den øvste lasteluka, sidan det aktuelle bitet i grafikktypa-informasjonen ikkje er sett.
Her er nokre fleire, vakkert animerte sprites frå spelet: