Animacije · bei.pm

Objavljeno 19.11.2015.·Ažurirano 13.02.2025.·Kroatski
Ovaj tekst je automatski preveden pomoću OpenAI GPT-4o Mini.

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:

  1. Animacija
    Animacija je najviša instanca; predstavlja animaciju jedinice, zgrade ili 'čestice-animacije' (udar kometa, vrijeme, eksplozija) u određenoj početnoj situaciji.
  2. Okvir
    Okvir je pojedinačna slika unutar animacije. Animacija može sadržavati jedan ili više okvira.
  3. 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:

  • 0x7F (Bitmaski): Broj podokvira koji se koriste u ovom okviru
  • 0x80: Informacija o tome jesu li Opcional 1 i 2 prisutni
0x0001 uint(8) Nepoznato 1 i prekidač za Opcionalno 3, 4

Ova vrijednost sadrži:

  • 0x7F (Bitmaske): Nepoznato - Jako sumnjam da se ovdje radi o broju gametickova koji prolaze do nego se prikaže sljedeći okvir
  • 0x80: Informacija o tome jesu li Opcional 3 i 4 prisutni
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:

Renderiranje animacije 500 ilustrirano

Animacija 500 potpuno sastavljena

Plymouth Fabrika zgrada

Eden Svemirska luka

Eden Medicinski centar

SCAT

Plymouth Svemirska luka

Easteregg:
Djed Mraz

Easteregg:
Dans Pas