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

Публикувано на 19.11.2015·Актуализирано на 13.02.2025·Български
Текстът е автоматично преведен чрез OpenAI GPT-4o Mini.

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

Информацията е събрана чрез обратен инженеринг и анализ на данни с цел архивиране и интероперативност с исторически данни.
Не са използвани собствени или конфиденциални спецификации.

Играта може в момента да бъде закупена за изтегляне на 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) Ограничителна кутия: Ширина

Посочва ширината (в пиксели) на ограничителната кутия.

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 транспортен автомобил, натоварен с обикновен рудник, се разтоварва. Това е една от малкото анимации, които използват функционалността на прозорците.

И така, можем да съберем цялата анимация заедно.
За съжаление, все още има проблем с горния товарен люк, тъй като съответният бит в информацията за графичния тип не е зададен.

Ето и няколко допълнителни, прекрасно анимирани спрайта от играта:

Рендериране на анимация 500 илюстрирано

Анимация 500 готова и събрана

Фабрика за сгради Плимут

Космическо пристанище Едем

Медицински център Едем

SCAT

Космическо пристанище Плимут

Яйце за великден:
Дядо Коледа

Яйце за великден:
Кучето на Данс