Page 1 of 1

Zapilyator ND

PostPosted: Tue, 28.10.2014 11:24:42
by nyuk
Буду краток. Форкнул запилятор в отдельный, возможно временный проект — Zapilyator ND (не детский).

http://nyuk.retropc.ru/demo_maker_nd

Основные отличия:
  • Выкинул всё "ненужное": заставки, скролл, анализаторы. Осталась только анимация и музыка.
  • Новый формат хранения распарсенных данных: экономичнее раза в 2-3, но с потерей скорости конечно же.
  • Нет ограничений на размер: результат парсинга автоматически раскидывается по страницам и пытается оптимально занять все доступные 128К.
  • Разница между кадрами сохраняется в отдельный каталог diff.

Подробнее о разницах

Каждый файл в каталоге - разница для одного фрейма (номер фрейма в имени файла). Последний файл - разница между последним и первым кадром.

Диффы сохраняются по одному байту в строку, в формате:
Code: Select all
xxxx yy

где:
xxxx - смещение относительно стартового адреса экрана (HEX)
yy   - байт, заносимый по этому адресу (HEX)



Формат максимально простой, если нужно - могу переделать как угодно.

---

Почему проект временный? Потому что часть нового функционала со временем перекочует в основной запилятор. А остальное когда-нибудь всплывет в Запиляторе 2.0

Re: Zapilyator ND

PostPosted: Tue, 28.10.2014 11:43:45
by nyuk
Выложил утилитку, с помощью которой можно легко, а главное быстро "разоптимизировать" GIF, чтобы запилятор его проглотил.

http://nyuk.retropc.ru/resources/demo_m ... izeGIF.zip

Скопировать всё в один каталог и запустить:
unoptimize.cmd %FILENAME%

После этого с гифкой произойдут две вещи:
1. Разоптимизация - каждый фрейм хранится отдельно
2. Конверсия в 1-битный цвет.

Новая гифка будет сохранена в том же катлоге.

Re: Zapilyator ND

PostPosted: Tue, 28.10.2014 11:46:40
by diver
Цвет не поддерживается?

Re: Zapilyator ND

PostPosted: Tue, 28.10.2014 11:52:32
by nyuk
Цвет уже поддерживается в обоих запиляторах, но... в общем пока неюзабельно:

Информация о цвете (атрибуты) берется из дополнительных 24-х строк GIF файла. Для подготовки такого изображения из набора SCR файлов можно использовать утилиту от Kakos Nonos: http://kabardcomp.retroscene.org/ZX/ZXAnim.rar


Я хочу добавить альтернативный вариант: загрузка zip-архива со скринами 6912 и парсинг из него.

Re: Zapilyator ND

PostPosted: Tue, 28.10.2014 14:46:10
by diver
6912 - это оптимально

Re: Zapilyator ND

PostPosted: Tue, 28.10.2014 18:32:54
by nyuk
diver wrote:6912 - это оптимально

Да, но. Теряется возможность установки персональных пауз на каждый фрейм. Сейчас эти паузы можно задавать в гифке. Впрочем, я уже придумал типа решение. Класть в архив со скринами файлик durations.txt, в котором прописывать паузы.

Re: Zapilyator ND

PostPosted: Tue, 28.10.2014 19:09:41
by diver
Именно.

Re: Zapilyator ND

PostPosted: Wed, 29.10.2014 00:40:30
by nyuk
Быстропофикшеный баг не считается найденым! Пофиксил кой-чо. А заодно добавил фишку: если анимация не влезет в памяти, то дема все равно соберется и заработает. Но без невлезших кадров, которые в исхолнике будут автоматически закомментированы.

Re: Zapilyator ND

PostPosted: Wed, 29.10.2014 10:12:38
by nyuk
Придумал! Впень durations.txt! Пусть будет map.txt, где через пробел записаны следующие параметры:

  • Имя файла.
  • Продолжительность показа в интах (не обязательно).
  • Имя файла следующего кадра (не обязательно).

Тем самым легко и непринужденно получаем нелинейную анимацию. Правда, пока писал, возникла куча нюансов в голове. Пойду думать.

Zapilyator ND

PostPosted: Wed, 29.10.2014 19:41:05
by diver
Крутяк! Тогда одинаковые кадры и храниться будут 1 раз? Но это слооожно будет сделать:)

Re: Zapilyator ND

PostPosted: Wed, 29.10.2014 20:53:51
by nyuk
Да тут всё хитрее получается. потому что хранится разница между кадрами.
Т.е. если у нас есть A->B и A->C, то придется хранить оба перехода.
В общем, пока допилю нормальный цвет, потом дальше буду думать.

Re: Zapilyator ND

PostPosted: Wed, 29.10.2014 21:09:47
by diver
Можно в map выделять ключевые кадры вручную. Типа картинок.

Re: Zapilyator ND

PostPosted: Wed, 29.10.2014 22:42:12
by nyuk
diver wrote:Можно в map выделять ключевые кадры вручную. Типа картинок.

Интересно. Типа, ключевой кадр обновляет экран, а дальше от него строятся изменения. Правда, если в это же время крутится еще одна анимация, ключевой кадр может её испортить.

Re: Zapilyator ND

PostPosted: Wed, 29.10.2014 23:40:24
by diver
Нет, я не совсем это хотел сказать. Могут быть кадры, которые надо действительно повторять в деме и нет смысла их хранить как изменения к предыдущему, а дешевле хранить 1 раз целиком.

Простой пример: пустой экран. На кой ляд хранить изменения к предыдущему, когда надо просто очистить экран. Дальше, например эффект из набора меняющихся повторяющихся картинок, мерцание или перебор. Запилятор на таком умрет. А если кадры пометить и хранить один раз, то будет экономно.

Ну а какие-то схожие последовательности надо действительно хранить как набор изменений. Первые кадры последовательностей - как раз ключевые в стандартном понимании.

Но и те, что выше, они тоже ключевые, за ними просто последовательности нет, там один за другим, например, ключевые кадры с разной задержкой.

Re: Zapilyator ND

PostPosted: Thu, 30.10.2014 11:46:01
by nyuk
Тут ты описываешь именно то, что я хочу сделать во втором запиляторе. Будет некое подобие таймлайна, будет можно накидывать последовательность анимаций, статичных картинок, очистка экрана, эффекты... Клева в общем будет :-)

Но этот полумифический второй запилятор до сих пор на стадии планирования. А сейчас я хотел добиться гибкости, оставаясь в рамках текущего запилятора. Хотя... вот я думаю что. Правильнее довести до ума работу с цветом и всё. А остальное уже в следующей версии.

Re: Zapilyator ND

PostPosted: Wed, 12.11.2014 23:22:31
by nyuk
Прикрутил поддержку ZIP-архивов. Вот несколько тезисов:

* В архиве должны находиться цветные или ч/б скрины. Желательно в корне архива.

* Сортировки нет. Поэтому лучше заранее переименовать файлы в нужном порядке и закидывать в архив сразу всей пачкой. Во избежании.

* Продолжительность показа фреймов настраиваем следующим образом:
В корень архива (ОБЯЗАТЕЛЬНО В КОРЕНЬ!) кладем файл durations.txt, в котором указываем продолжительность показа каждого кадра в формате:
Code: Select all
имя_файла N

Где N - количество интов от 1 до 255.
Если для файла не найдена запись в durations.txt, то берется значение из настроек запилятора. Если в настройках выбрано "Take from GIF", то будет 1.

(Я не стал городить описанные выше приблуды типа map.txt. Отложил на будущее.)

* Мы с Какосом выбрали цвет #80 (черный инк, черный папер, нобрихт, флэш) в качестве "магического". атрибуты, указанные этим цветом запилятор не обрабатывает. Оставляет как было на экране. В будущем будет возможность задать свой Magic Color.

Re: Zapilyator ND

PostPosted: Thu, 13.11.2014 01:45:31
by Black_Cat
nyuk wrote:Мы с Какосом выбрали цвет #80 (черный инк, черный папер, нобрихт, флэш) в качестве "магического"

Ну вааще-то (инк=папер) & флеш - все магические в силу своей бессмысленности :) Почему чёрный?

Re: Zapilyator ND

PostPosted: Thu, 13.11.2014 03:15:57
by nyuk
Почему бы и нет? Просто нужно было договориться на каком-нибудь неиспользуемом цвете.

Re: Zapilyator ND

PostPosted: Thu, 13.11.2014 10:14:22
by den_p
когда оно станет платным?

Re: Zapilyator ND

PostPosted: Thu, 13.11.2014 11:13:48
by nyuk
А смысл делать платным сейчас? Только ААА и будет башлять.
Сначала нужно побольше народу подсадить. Работаю над этим.

Re: Zapilyator ND

PostPosted: Thu, 13.11.2014 16:36:50
by den_p
nyuk wrote:Сначала нужно побольше народу подсадить.

ну смеха ради подай пример - пищы демы сам. ничо к деме ты не доделал.

Re: Zapilyator ND

PostPosted: Thu, 13.11.2014 18:23:32
by nyuk
den_p wrote:ну смеха ради подай пример - пищы демы сам. ничо к деме ты не доделал.

Не распарсил посыл. На всякий случай, дему я пишу. Очень медленно, но пишу. Без запилятора. Пока без запилятора, но возможно заюзаю его в качестве вспомогательного инструмента.

Re: Zapilyator ND

PostPosted: Fri, 14.11.2014 05:40:24
by den_p
nyuk wrote:Не распарсил посыл.

эквалайзеры и появление картинок, и поднадоевший шрифт.

Re: Zapilyator ND

PostPosted: Fri, 14.11.2014 08:09:27
by nyuk
Ден, ты можешь как-то развернутей сказать, о чем ты? Иначе мне даже и ответить нечего. Тупо не понимаю.