Animații · bei.pm

Publicat pe 19.11.2015·Actualizat pe 13.02.2025·Română
Acest text a fost tradus automat prin OpenAI GPT-4o Mini.

Formatele de fișier descrise pe această pagină se bazează pe analiza tehnică a proprietății intelectuale de la Dynamix, Inc. și Sierra Entertainment.
Proprietatea intelectuală este astăzi parte a masei Activision Publishing, Inc. / Activision Blizzard, Inc. și este deținută în prezent de Microsoft Corp..

Informațiile au fost adunate prin Inginerie Inversă și Analiza Datelor în scopul arhivării și interoperabilității cu datele istorice.
Nu au fost folosite specificații proprietare sau confidențiale.

Jocul poate fi achiziționat în prezent de la gog.com ca descărcare.

Acum ajungem la clasa regală a disciplinelor din formatele de date Outpost 2:
Animatiile.

Listelor de animație le precede un header global, care servește în principal pentru verificarea datelor. Apoi urmează definițiile concrete ale animațiilor, care se împart în 3 niveluri:

  1. Animație
    O animație este cea mai înaltă instanță; ea reprezintă o animație a unei unități, a unei clădiri sau a unei 'animații de particule' (impact de cometă, vreme, explozie) într-o anumită situație inițială.
  2. Cadru
    Un cadru este o imagine unică în cadrul unei animații. O animație poate conține unul sau mai multe cadre.
  3. Subcadru
    Un subcadru reprezintă informația că o anumită bitmap trebuie desenată într-o anumită poziție a unui cadru, conform unor criterii specifice. Un cadru poate conține unul sau mai multe subcadre.

Apoi urmează direct definițiile individuale ale animațiilor.

Adr x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 xA xB xC xD xE xF caractere
0x0000 -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- . . . . . . . . . . . . . . . .
Offset Tip de date Denumire Explicație
0x0000 uint(32) Numărul de animații

Câte seturi de date de animație există

0x0004 uint(32) Numărul de cadre

Câte cadre ar trebui să fie în total

0x0008 uint(32) Numărul de subcadre

Câte subcadre ar trebui să fie în total

0x000c uint(32) Numărul de intrări opționale

Câte "înregistrări opționale" sunt disponibile.

Animatie

Adr x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 xA xB xC xD xE xF caractere
0x0000 -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- . . . . . . . . . . . . . . . .
0x0010 -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- . . . . . . . . . . . . . . . .
0x0020 -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- . . . . . . . . . . . . . . . .
Offset Tip de date Denumire Explicație
0x0000 uint(32) Necunoscut 1

Informații necunoscute

0x0004 uint(32) Caseta de delimitare: Stânga

Indică începutul din stânga (în pixeli) al Bounding Box.

0x0008 uint(32) Bounding Box: Sus

Indică începutul superior (în pixeli) al Bounding Box.

0x000c uint(32) Bounding Box: Lățime

Indică lățimea (în pixeli) a Bounding Box.

0x0010 uint(32) Bounding Box: Înălțime

Indică înălțimea (în pixeli) a Bounding Box.

0x0014 uint(32) Decalaj: X

Indică mijlocul horizontal al animației

0x0018 uint(32) Offset: Y

Indică mijlocul vertical al animației

0x001c uint(32) Necunoscut 2

Informație necunoscută

0x0020 uint(32) Numărul de cadre

Indică câte cadre de animație sunt incluse în această animație

0x0024 uint(32) Numărul de feronerie

Indică câte feronierii trebuie utilizate la desenare

Datele stratului superior, al animației, sunt în principal date administrative - Boundingbox se referă la coordonatele marcajului din jurul vehiculului/clădirii, atunci când acesta este selectat și indică, de asemenea, care zonă poate fi clicată.

Offset-ul determină în principal „punctul zero”; punctul care trebuie adunat sau scăzut în coordonatele interne ale jocului. Pot să spun și mai matematic: offset-ul se referă aici la originea coordonatelor.

Windows-urile sunt, la fel ca offset-ul, formate din câte 4 valori uint(32) fiecare, ce indică o zonă care este considerată utilizabilă pentru subframe-uri individuale. În afara Windows-urilor, nu se poate desena, cu condiția ca acest lucru să fie prevăzut pentru bitmap.

Cadru

Adr x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 xA xB xC xD xE xF caractere
0x0000 -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- . . . . . . . . . . . . . . . .
Offset Tip de date Denumire Explicație
0x0000 uint(8) Numărul subcadrelor și comutator pentru Opțional 1, 2

Această valoare conține:

  • 0x7F (Mască de biți): Numărul de subcadre utilizate în acest cadru
  • 0x80: Informația despre prezența opționalelor 1 și 2
0x0001 uint(8) Necunoscut 1 și Toggle pentru Opțional 3, 4

Această valoare conține:

  • 0x7F (Masca de biți): Necunoscut - Suspectez puternic că este vorba despre numărul de gameticks care trec până când următorul cadru este afișat
  • 0x80: Informația despre existența Opționalelor 3 și 4
0x0002 uint(8) Opțional 1

Necunoscut

0x0003 uint(8) Opțional 2

Necunoscut

0x0004 uint(8) Opțional 3

Necunoscut

0x0005 uint(8) Opțional 4

Necunoscut

Subcadru

Adr x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 xA xB xC xD xE xF caractere
0x0000 -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- . . . . . . . . . . . . . . . .
Offset Tip de date Denumire Explicație
0x0000 uint(16) Bitmap-ID

Indică ce bitmap ar trebui folosit pentru acest subcadru

0x0002 uint(8) Necunoscut 1

Este necunoscut - totuși suspectez puternic că este vorba despre o prioritate de redare (Z-Layer).

0x0003 uint(8) Subframe-Id

Indică în ce subcadru ne aflăm

0x0004 sint(16) Offset - Orizontal

Indică unde în cadrul frame-ului ar trebui plasat subframe-ul sau cu câți pixeli ar trebui mutată bitmap-ul pe orizontală.

0x0006 sint(16) Offset - Vertical

Indică unde în cadrul frame-ului ar trebui să fie plasat subframe-ul sau cu câți pixeli ar trebui să fie mutată bitmap-ul vertical.

Astfel putem acum să combinăm cadre individuale, precum și animații complete, demonstrând aici, exemplificativ, o animație mai complexă, animația cu indexul 500

Animatie 500

Animatia 500 arată cum un transportor Plymouth, încărcat cu minereu obișnuit, este descărcat. Aceasta este una dintre puținele animații care utilizează funcționalitatea de feronerie.

Și astfel se poate asambla întreaga animație.
Din păcate, există încă o problemă cu hubloul superior, deoarece bitul corespunzător din informațiile despre tipul grafic nu este setat.

Iată câteva alte sprite-uri frumos animate din joc:

Renderizarea animației 500 ilustrează

Animația 500 finalizată

Fabrica de clădiri Plymouth

Portul spațial Eden

Centrul medical Eden

SCAT

Portul spațial Plymouth

Easteregg:
Moș Crăciun

Easteregg:
Câinele dansator