Анимације · bei.pm

Објављено 19.11.2015.·Ажурирано 13.02.2025·Српски
Овај текст је аутоматски преведен помоћу OpenAI GPT-4o Mini.

Формати датотека описани на овој страници засновани су на техничкој анализи интелектуалне својине Dynamix, Inc. и Sierra Entertainment.
Интелектуална својина је данас део Activision Publishing, Inc.- / Activision Blizzard, Inc.- имовине и тренутно је у власништву Microsoft Corp..

Информације су прикупљене помоћу Реверзног инжењеринга и анализа података у сврху архивирања и интероперабилности са историјским подацима.
Нису коришћене никакве власничке или поверљиве спецификације.

Iгра се тренутно може купити као преузимање на gog.com.

Сада прелазимо на краљевску класу дисциплина унутар Outpost 2 формата података:
Анимацијама.

Листе анимација почињу глобалним заглављем, које служи углавном за верификацију података. Након тога следе конкретне дефиниције анимација, које се деле на 3 нивоа:

  1. Анимација
    Анимација је највиша инстанца; она представља анимацију јединице, зграде или 'честичне анимације' (удар комете, време, експлозија) у одређеној почетној позицији.
  2. Фрејм
    Фрејм је један слика унутар анимације. Анимација може да садржи један или више фрејмова.
  3. Субфрејм
    Субфрејм је информација о томе да одређена битмап треба да се нацрта на одређену позицију фрејма под одређеним критеријумима. Фрејм може да садржи један или више субфрејмова.

Након тога следе већ конкретне дефиниције анимација.

Адреса x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 xA xB xC xD xE xF симболи
0x0000 -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- . . . . . . . . . . . . . . . .
Позиција Тип података Ознака Објашњење
0x0000 uint(32) Број анимација

Колико анимационих података постоји

0x0004 uint(32) Број оквира

Колико укупно фрејмова треба да буде присутно

0x0008 uint(32) Број субфрејмова

Колико укупно подфрамова би требало да буде присутно

0x000c uint(32) Број опционих уноса

Колико "опционалних записа" постоји.

Анимација

Адреса x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 xA xB xC xD xE xF симболи
0x0000 -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- . . . . . . . . . . . . . . . .
0x0010 -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- . . . . . . . . . . . . . . . .
0x0020 -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- . . . . . . . . . . . . . . . .
Позиција Тип података Ознака Објашњење
0x0000 uint(32) Непознато 1

Необјашњене информације

0x0004 uint(32) Ограничена кутија: Леви

Означава леви почетак (у пикселима) Bounding Box.

0x0008 uint(32) Ограничена кутија: Горња

Дефинише горњи почетак (у пикселима) Bounding Box.

0x000c uint(32) Ограничена кутија: Ширина

Наведите ширину (у пикселима) Bounding Box.

0x0010 uint(32) Ограничена кутија: Висина

Даје висину (у пикселима) Bounding Box.

0x0014 uint(32) Оффсет: X

Означава хоризонталну средину анимације

0x0018 uint(32) Одступање: Y

Даје вертикалну средину анимације

0x001c uint(32) Непознато 2

Непозната информација

0x0020 uint(32) Број оквира

Наводи колико анимационих кадрова садржи ова анимација

0x0024 uint(32) Број прозора

Назначава колико прозора треба користити приликом цртања

Подаци највишег слоја, анимације, су пре свега управни подаци - Boundingbox означава координате ознаке око возила/зграде, када је исто изабрано и такође указује који простор треба да буде кликабилан.

Офсет пре свега одређује "нулту тачку"; тачку која се мора одузети или додати на интерне координате игре. Може се рећи и математички: офсет овде означава координатно порекло.

Када су у питању прозори, они су, као и офсет, представљени са по 4 uint(32) вредности које указују на подручје које је доступно за поједине подфреймове. Изван прозора не сме да се слика, осим ако то није предвиђено за битмап.

Оквир

Адреса x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 xA xB xC xD xE xF симболи
0x0000 -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- . . . . . . . . . . . . . . . .
Позиција Тип података Ознака Објашњење
0x0000 uint(8) Број подфрејмова и прекидач за Опционални 1, 2

Ова вредност садржи:

  • 0x7F (Битмаска): Број субфрејмова који се користе у овом фрејму
  • 0x80: Информацију о томе да ли су Опционално 1 и 2 присутни
0x0001 uint(8) Непознато 1 и Тогле за Опционално 3, 4

Ова вредност садржи:

  • 0x7F (Битмаска): Непознато - Сигурно сумњам да се ради о броју гаме тикова који прођу пре него што се следећи фрејм прикаже
  • 0x80: Информација о томе да ли су Опционални 3 и 4 присутни
0x0002 uint(8) Опционално 1

Непознато

0x0003 uint(8) Опционално 2

Непознато

0x0004 uint(8) Опционо 3

Непознато

0x0005 uint(8) Опционално 4

Непознато

Подоквир

Адреса x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 xA xB xC xD xE xF симболи
0x0000 -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- . . . . . . . . . . . . . . . .
Позиција Тип података Ознака Објашњење
0x0000 uint(16) Bitmap-ID

Наведите која ће битма бити коришћена за овај подоквир

0x0002 uint(8) Непознато 1

Није познато - међутим, чини ми се да се ради о приоритету рендеровања (Z-слој).

0x0003 uint(8) Субфрејм-ИД

Наведите у ком субфрейму се налазимо

0x0004 sint(16) Оффсет - Хоризонтално

Наведите где унутар оквира треба да буде постављено подоквир, односно колико пиксела треба да се битма помери хоризонтално.

0x0006 sint(16) Оффсет - Вертикално

Наведите где унутар фрејма треба да буде постављен подфрејм, односно за колико пиксела треба вертикално померити битмап.

Тако можемо сада саставити појединачне оквире, као и комплетне анимације, овде ћемо то демонстрирати на пример једне сложеније анимације, анимације са индексом 500

Анимација 500

Анимација 500 показује како се Plymouth транспортера, који је оптерећен обичним рудом, истовара. Ово је једна од ретких анимација која користи функционалност прозора.

И тако се комплетна анимација може саставити.
Нажалост, још увек постоји проблем са горњим отвором за учитавање, јер овде одговарајући бит у информацијама о графичком типу није постављен.

Ево још неколико, прелепо анимираних спрајтова из игре:

Renderovanje анимације 500 илуструје

Анимација 500 завршена и састављена

Plymouth зграда-фабрика

Eden свемирска лука

Eden медицински центар

SCAT

Plymouth свемирска лука

Easteregg:
Деда Мраз

Easteregg:
Dans Dog