Музыка: | Аквариум --- Трамвай |
Synfig
Разные знакомые интересуются, что такое Synfig.
Synfig — это формат векторной анимации и одноимённая программа для его рендеринга. В отличие, скажем, от Flash, Synfig с самого начала задумывался как средство создания мультфильмов кинематографического качества. Для работы с Synfig используется программа Synfig Studio.
История Synfig, насколько я успел разобраться, чем-то напоминает историю Blender: мультипликационная студия создавала формат и программу для собственных нужд, потом студия закрылась, а программу выпустили под GPL. Возможно, поэтому интерфейс Synfig, как и интерфейс Blender, больше ориентирован на экономию сил и нервов опытного пользователя, а не на освоение методом тыка. Хотя до эзотеричности Blender ему, конечно, далеко.
И тем не менее, желающим попробовать делать мультфильмы в домашних условиях с помощью свободного софта я рекомендую именно Synfig и Synfig Studio. Попробую объяснить, почему.
Свободных средств создания мультфильмов довольно много. Но большинство из них — растровые редакторы, авторы которых стараются имитировать рабочий стол художника-мультипликатора, работающего с бумагой: ключевые кадры как бы "просвечивают" сквозь фон текущего кадра, каждый новый кадр надо рисовать с нуля (хотя cut-n-paste, конечно, никто не отменял). Я в своё время потратил довольно много времени, разбираясь с, пожалуй, самым мощным (и самым неудобным) из таких средств — GIMP GAP. По итогам появилось даже что-то вроде краткой справки по наиболее полезным его возможностям: http://wiki.linuxgraphics.ru/doku.php?id=kb-animation-gimp-gap (усилиями prokoudine@lj, в основном UPD: самоорганизовалось), но даже в GIMP GAP создание сколько-нибудь длинного и содержательного мультфильма требует слишком много усилий, чтобы быть скорее развлечением, чем работой.
Synfig, как уже было сказано — векторный формат, поэтому рисовать от руки в Synfig Studio не так удобно, как в растровых редакторах. Зато собственно анимацию в нём делать — одно удовольствие: не нужно рисовать от руки кадр за кадром, вместо этого мы задаём положение контрольных точек каждой фигуры в ключевых положениях, а программа дорисовывает все промежуточные кадры сама. Причём можно определить, как именно будут вычисляться промежуточные положения, например, привязать контрольные точки к произвольным сложным траекториям.
Возникает, правда, другой вопрос — как с помощью Synfig Studio делать мультфильмы, более или менее похожие на настоящие, а не просто рисовать движение кругов, прямоугольников и прочих векторных примитивов? Я нашёл в документации на программу два способа, которые показались мне подходящими.
Первый — это перекладки (cut-out animation). Рисуем персонажа в каком-нибудь растровом редакторе (или рисуем на бумаге и сканируем), потом выделяем части, которые будут двигаться самостоятельно, и сохраняем каждую в отдельный файл. Открываем эти файлы в Synfig Studio, собираем из них персонажа обратно, связываем контрольные точки разных частей таким образом, чтобы персонаж двигался согласованно, двигаем. Это чем-то напоминает работу с марионеткой, только удобнее, потому что не в реальном времени. Процесс подробно описан вот здесь: http://synfig.org/Cut-out_Animation
Вот такого персонажа я нарисовал в GIMP и анимировал в Synfig Studio с помощью этой техники.
Vimeo: http://vimeo.com/3405850
YouTube: http://www.youtube.com/watch?v=vMKr-weS-To
Synfig-файл: http://yuriy.shirokov.googlepages.com/cutout.tar.gz
На сайте программы есть гораздо более удачные примеры, но я специально использую в этом посте собственноручно созданные видео, чтобы вы убедились: мультипликация в Synfig Studio действительно доступна каждому. У меня нет никакого художественного образования, на то, что я рисую от руки на бумаге, страшно смотреть (и не потому, что я рисую только ужасы), а вот результаты моих экспериментов с Synfig моему ребёнку, по крайней мере, нравятся. А дети постарше могут рисовать такие мультфильмы и сами (дошкольникам, всё-таки, лучше посмотреть в сторону чего-нибудь типа GCompris). Это очень просто и, главное, быстро.
Видео короткие, но надо понимать, что большая часть времени при их создании ушла на сборку персонажа, а дальше за считанные минуты можно было разметить движение хоть на час итогового видео, просто в данном случае это не нужно.
Второй способ — трассировка нарисованного от руки с помощью кривых Безье. По идее, можно делать это автоматически в Inkscape и потом конвертировать в Synfig, кто-то добрый сделал для этого XSLT-файл. Но у меня так и не получилось заставить эту схему работать, а кроме того, у ручной трассировки в Synfig Studio есть важные преимущества. Проводя кривые Безье от руки, можно обойтись гораздо меньшим количеством узлов, что, во-первых, упрощает описание движения, а во-вторых, облагораживает очертания трассируемого предмета, зачастую очень сильно (что особенно актуально для тех, кто не умеет рисовать, как я).
Вот этого дракона я, опять же очень быстро, нарисовал с помощью кривых Безье.
Vimeo: http://vimeo.com/3405978
YouTube: http://www.youtube.com/watch?v=3fUBs3rVA_U
Synfig-файл: http://yuriy.shirokov.googlepages.com/draco_animated.sifz
Техника очень простая: рисуем от руки в растровом редакторе (или, опять же, рисуем на бумаге и сканируем) персонажа или предмет. Открываем получившийся растровый файл в Synfig Studio и воспроизводим нарисованное с помощью инструмента BLine Tool. Удаляем исходную картинку, описываем движение, двигая контрольные точки.
Процесс описан, например, вот здесь: http://synfig.org/Walk_Cycle
Вот как выглядел исходный эскиз, нарисованный в GIMP с помощью планшета:
Обратите внимание, что нарисовано довольно убого и кривенько. Ещё раз напоминаю: чтобы делать в Synfig Studio относительно прилично выглядящие мультфильмы, в общем-то, необязательно быть профессиональным художником. Вот так выглядит процесс трассировки:
Как видите, кривых понадобилось не так много. Кстати, чем их меньше, тем обычно эстетичнее итоговое изображение.
Важная деталь: я не нашёл, как без прыжков с бубном добавить заливку к уже существующему контуру, поэтому лучше сразу создавать заполненные контуры, а чтобы заливка не мешала при трассировке, просто делать её невидимой. Кстати, подобных граблей в Synfig Studio разложено на удивление мало. Интерфейс продуман и логичен, общее впечатление куда лучше, чем, скажем, от интерфейса того же GIMP. Всё, что мне кажется недостатками — это, пожалуй, многооконность, как и у GIMP (хотя я-то лично пользуюсь мозаичным оконным менеджером, который сводит на нет многие недостатки многооконных интерфейсов) и наличие двух режимов: рисования и анимации. Да простят меня фанаты vi и GNOME HIG, но всё-таки Раскин прав: с точки зрения юзабилити режимы это кошмар, в хороших интерфейсах их очень мало или нет вообще. Однако общее впечатление очень приятное. И хотя, повторюсь, прежде чем садиться рисовать в Synfig Studio полнометражный мультфильм, лучше проглядеть документацию хотя бы по диагонали (просто чтобы не тратить недели труда на то, что программа позволяет сделать в один клик), в целом кривая обучения выходит довольно пологой, в том числе на начальном этапе (что, увы, редкость для свободных программ).
Кстати, о документации: она, на мой вгляд, очень хороша. На вики проекта ведётся работа по её переводу на русский язык: http://synfig.org/Documentation.ru
В общем, на мой взгляд, Synfig Studio это отличная программа для домашних экспериментов с мультипликацией. Возможно, не только, как-никак этот инструмент пришёл к нам из мира мультипликации профессиональной, и кое-какие его возможности (например, основанный на XML формат, что должно быть удобно, например, при хранении файла в системе контроля версий) могут быть очень полезны именно при работе с большими проектами. Но то, что с ней интересно экспериментировать дилетанту, я проверил на собственном опыте.
Видео и исходные файлы в формате Synfig, использованные в этом посте, а также сам пост, доступны на условиях лицензии CC-BY-SA (разрешается распространение и модификация при условии ссылки на автора и сохранения свободы производных произведений).