Animacije · bei.pm

Objavljeno 19.11.2015·Posodobljeno dne 13.02.2025·Slovenščina
Ta besedilo je bilo avtomatizirano prevedeno s strani OpenAI GPT-4o Mini.

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:

  1. Animacija
    Animacija je najvišja instanca; predstavlja animacijo enote, stavbe ali 'delčne animacije' (kometski udar, vreme, eksplozija) v določenem izhodišču.
  2. Frame
    Frame je posamezna slika znotraj animacije. Animacija lahko vsebuje enega ali več frame-ov.
  3. 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:

  • 0x7F (Bitmask): Število podokvirov, ki se uporabljajo v tem okviru
  • 0x80: Informacija o tem, ali sta Opcional 1 in 2 prisotna
0x0001 uint(8) Nepoznan 1 in preklopnik za opcionalno 3, 4

Ta vrednost vsebuje:

  • 0x7F (bitna maska): Neznano - Močno sumim, da gre za število gametickov, ki minejo, preden se prikaže naslednji okvir
  • 0x80: Informacija o tem, ali sta opcionalna 3 in 4 prisotna
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:

Rendering animacije 500 ilustrira

Animacija 500 je dokončno sestavljena

Plymouth tovarna stavb

Eden vesoljski pristanišče

Eden medicinski center

SCAT

Plymouth vesoljski pristanišče

Easteregg:
Božiček

Easteregg:
Dans Dog