Мопас демо: Теория, практика, сакральный смысл.


Приветсвтую всех любителей, а также ненавистников запилятора!

В этом топике я расскажу как создавалась дема Мопас, с какими трудностями мы столкнулись и как оно вообще было.

Сначала John Norton Irr нарисовал картинку. Рисует он так: ставит определённую музыку и она задаёт настрой, под неё и только под неё происходит весь процесс рисования. В данном случае была музыка Siril4d — 216 cycles of moon. Она же и вошла в дему.

Дальше надо было её анимировать. К тому времени уже была готова программа Fitcha, которая выделяет из анимации только движущуюся часть. Было решено использовать эту программу на максимум.
Делать анимацию в ZX-Paintbrush'е оказалось достаточно сложно, поэтому мы сохранили картинку в чб формате как bmp, чтобы анимировать в Paint'е.

Следующим шагом мы создали 3 папки, в каждую положили эту картинку под названием 1.bmp. Каждая папка отвечала за анимацию.
Теперь следовало анимировать. Брался первый кадр, чуть редактировался, сохранялся как 2, потом опять редактировался, сохранялся как 3 и так далее. После нескольких изменений анимация смотрлась и если были скачки, то редактировалось. И так для всех трёх анимаций. У Джона ушло на это с перерывами около 2-х дней.
Анимация 1.

Анимация 2.

Анимация 3.

Итак, анимация готова, теперь её надо отделить от фона. Берём мою программу Fitcha и получаем облом — она работает с scr, а не с bmp. Что-ж, конвертируем используя bmp2scr.
Теперь самое главное, как отделить задник от трёх анимаций. Берём первую папку с кадрами (в scr), прогоняем её через Fitch-у, получаем серию bmp и zadnik.scr. Далее, берём zadnik.scr и ставим его вместо 1.scr во второй папке. Прогоняем теперь вторую папку через фичу. Смотрим выход. Ой, что это? В кадрах помимо выделенной анимации находится статичный кусок из предыдущей папки? Да, это недоработка, вручную убираем из каждого кадра этот ненужный кусок. Всё, вторая анима готова, переходим к третьей. Опять берём zadnik.scr уже из второй папки и копируем вместо первого кадра. Прогоняем по третьей анимации, опять вырезаем лишнее из кадров и всё, анимация готова!
Делаем из кадров гифки.
1.

2.

3.

Гифки готовы, теперь нужен фон. Смотрим, что у нас в Zadnik.scr (Последний, полученный из 3-ей анимации)

Он чб, а ним нужен цвет. Я долго думал какой метод переноса цвета самый быстрый и остановился на таком: Открываем zadnik.scr в текстовом редакторе (Я использую akelpad, он показывает смещение в байтах от начала и бережно относится к байтам-несимволам), находим место, где начинаются аттрибуты 768 одинаковых идущих подряд байтов в конце, и удаляем эту область. Дальше, идём в цветной оригинал, тоже его открываем в блокноте, находим эту область, копируем её и вставляем на место удалённой. Сохраняем, смотрим:

Ура, сработало! Грузим всё в запилятор, смотрим, ага, пара аттрибутов клеширует, подправили, грузим, всё отлично!
Вот по такому алгоритму создавалось Мопас демо. Но почему-то крому Джона, меня и моего виртуала никто до него не додумался. Может ААА в пикселе его и юзал, но не уверен, там видно что анимация и фон рисовались отдельно друг от друга.

18 комментариев

avatar
Офигенно! Жаль раньше не видел :) Чем-то напомнило часть из «Glum» от Dream Makers Software.

avatar
Ух ты! Действительно похоже.
Можно считать это первым запилом.
avatar
Ага, только там, как и в твоей деме графику рисовали руками и сами ;)
avatar
Прекрасно, я считаю =)
Даром, что лицо заинтересованное =)
avatar
Конечно это ад. Задники одним словом)) Я так понимаю речь идёт про 1 запилятор. Анимацию надо было рисовать иначе:

Выявили что хотите анимировал, удаляете все лишнее с экрана и анимируете ветку, папер и инк сходите к одному. Потом следующий кусок… Потом все куски соединяете в единый гиф. Фон вытирается под аниму.

Программа какоса недоделанная. На кой лёд в бмп сохранение, весь мир в пнг 8 битку рисует. Остальное всё адилово. Вы пошли по пути как замучить самих себя)) Я читал статью и слезы наворачивались…
  • AAA
  • 0
avatar
Можно глупый вопрос? А почему нельзя было анимировать цветную картинку сразу на PC?
avatar
все равно же потом конвертить и дорабатывать. а конверченные картинки без обработки — аццкий ад для запилятора.
avatar
Всё анимировалось на PC. В программах ZX-PaintBrush и MSPaint из Windows XP. Просто MSPaint более удобный в плане «выделить-переместить-копировать-вставить». Поэтому картинки были переведены в монохром BMP.
avatar
Kakos_nonos, а что подвигло именно к ручной оптимизации анимации (отделению ее от фона)? Запилятор не анализирует разницу между экранами? Почему нельзя просто скормить последовательность картинок (например даже с одинаковыми атрибутами) и получить демо? Весь процесс понятен, но не понятно, почему делали именно так?
avatar
diver4d скорее всего из-за излишней прожорливости первого запилятора, на котором все и делалось.
avatar
Разве первый запилятор не использует оптимизированные gif-файлы, где хранится разница последующих кадров?
avatar
Я как-то так делал, сильно глючило. Иногда изображение пропадало, были ещё какие-то глюки. К тому же здесь три анимации, в каждой своё количество кадров.
avatar
О! Это вот вообще не очевидно было про разное количество кадров. 8, 5 и 4. То есть запилятор одновременно показывает 3 анимации в разных местах экрана?
avatar
первый запилятор мог загрузить три спрайта
один на 48 к и два по 16к, типа того.
и периодически ему то-то не нравилось и он показывал хз что хз почему ))
avatar
Да.
avatar
… что означает, что фактический период итоговой анимации — 8*5 = 40 кадров. Поэтому так хорошо и смотрится.
avatar
Ну и еще по самой анимации видно, что она собственного производства, что автор рисовал сам. От этого и восприятие лучше.
avatar
Вообще говоря не хватает обзорной информации о возможностях запиляторов. Уже несколько версий существует, возможности разные. Два how-to опубликованы: от ААА и это, но в них описаны частные случаи и ни фига не понятно, почему авторы действуют так, а не иначе.
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.