Всего пользователей: 1,270 Новый пользователь: valentin_13
Основы работы в Ramen
Про композитинг вообще
Компо́зитинг (от англ. compósiting — компоновка) — создание целостного изображения путём совмещения двух и более слоёв отснятого на кино- или видеоплёнку материала, а также CGI (Генерированные Компьютерные Объекты) и анимации. Широко применяется в современной компьютерной технологии для создания визуальных эффектов в кино, на телевизионном производстве, в рекламе, когда необходимо идеально симулировать реальную действительность. Примерами композитинга можно назвать такие широко известные фильмы, как «Терминатор-2», «Титаник», «Матрица», «Властелин Колец», рекламные кино-ТВ ролики «Coca-Cola», «Toyota», «BMW», и др. ()
Проще говоря, это технология склеивания и фильтрации движущихся картинок.
Композеры можно разделить на две группы:
На основе слоев. Предлагают работать с композицией как с набором накладывающихся друг на друга изображений и фильтров. Как правило применяются для создания простых эффектов и видеографики. Чаще всего используются в телевидении и рекламе.
На основе узлов. Представляют фильтры, источники изображений и прочие процедуры в виде узлов и предлагают работать с самим процессом потока графических данных как с проводами соединяющими узлы. Предоставляют гораздо большую свободу и используются, в основном, в большом кинематографе для создания сложных композиций с огромным количеством элементов.
В мире достаточно хороших, дорогих и не очень, проприетарных решений. Навскидку:
Apple Shake;
The Foundry Nuke;
Autodesk Combution;
Eyeon Fusion;
Adobe After Effects.
У пользователей свободного ПО с выбором похуже. Из существующих решений можно отметить следующие:
: его встроенный композер с виду хорош, но стоит лишь начать работать с ним, как сразу понимаешь, в какое болото ты попал. Это и очень медленная работа, и постоянная необходимость создавать узлы Viewer (и кто это только придумал?), и ужасные средства для анимации композиции: узел Time и Translate, который не умеет двигать картинку на полпиксела. Кроме того, обрезается картинка, залезшая за пределы области рендеринга. Я уж не говорю об отсутствии человеческих средств для ротоскопинга (векторные маски). Да и ещё много других подводных камней.
: хоть эта программа делалась вовсе не для композитинга, а для векторной анимации, но с некоторыми задачами композитинга она справляется на «ура». Поскольку главное в ней — векторная анимация, с ротоскопингом вообще нет никаких проблем. Кроме того, движок визуализации Synfig очень неплохо справляется с большими разрешениями. Основные недостатки — скромный набор эффектов и неспособность работать с дополнительными каналами (каналы глубины, скорости и прочие хитрые вещи). Synfig организует элементы в виде дерева, так что при желании программу можно использовать как своеобразную замену Adobe After Effects.
: работает по слоям, есть более-менее функциональный ротоскопинг, неплохие фильтры. Но о том, чтобы делать что-то сложное, даже думать страшно.
: Gimp Animation Package тоже может это делать, но разрушающе, поскольку после применения фильтра изменяется исходное изображение. Кроме того, он сам по себе несколько неудобен.
И тут откуда ни возьмись — .
Как и почему
Спасителем выступил Эстебан Товальяри (Esteban Tovagliari) — человек, имеющий более чем десятилетний опыт работы композером в рекламе и компьютерной графике. Увлёкшись программированием ещё в 15 лет, в своей профессиональной деятельности он позднее разработал ряд сложных инструментов для обработки изображений, которые здорово ему помогли. Однако эти инструменты имели интерфейс командной строки и были неудобны: приходилось экспортировать изображения, обрабатывать, импортировать обратно, проверять и повторять этот процесс снова и снова. И тогда Эстебан начал разрабатывать Ramen.
Приблизительно год назад Эстебан раздал пару копий своей программы друзьям и сослуживцам, а потом рассудил, что сделав исходный код открытым, он сделает свой вклад в open source. Особенно учитывая намерение Apple похоронить Shake и уход Adobe и Autodesk в сторону от решения насущных задач.
Установка
Сразу отмечу, что пользователи самой популярной операционной системы пока могут не беспокоиться: сборка для Windows возможна, и первые шаги для этого сделаны, но у Эстебана нет времени на то, чтобы устанавливать третью систему и поддерживать сборку для неё. Сейчас вы можете готовые сборки для Linux и Mac. Как раз к выпуску статьи Эстебан выложил новые предварительные сборки 0.5, так что свежесть гарантирована.
Если же вам интересно наблюдать за развитием приложения воочию, тут начинаются первые препятствия, которые, впрочем, вполне объяснимы. Над проектом в данный момент работает только один человек, и потому скорость разработки достигается за счёт использования большого количества сторонних библиотек.
Исходный код можно получить из репозитория SVN на SourceForge:
Далее внимательно читаем список зависимостей и способ сборки в файле INSTALL.txt. На тот момент, когда писался этот обзор, в файле не было написано, что при сборке с GCC 4.4 вам потребуется свежая библиотека boost версии 1.42.
Если вы пользуетесь Ubuntu, вам повезло, потому что есть .
Кроме того, для запуска вам потребуется нормальная (не Intel) и относительно новая видеокарта. На моем GForce 8200 всё работает замечательно.
Первое знакомство
Если вы никогда не имели дело с программами такого рода, вероятно, вам сначала захочется узнать общий принцип составления композиции. Он примерно таков:
Сначала создаются один или несколько источников изображений, таких как узлы Color, Color Bars, Gradient, Image (поддерживает форматы tif, sgi, tga, png, jpg, hdr, exr, dpx и cin), Mandelbort (фрактал), Noise (полезен для подмешивания шума) или Quick Shape (векторная маска для ротоскопинга).
Затем создаётся некоторое количество фильтрующих и смешивающих узлов.
После этого создаётся нужное количество выходных узлов Image (поддерживает те же форматы что и входной узел Image).
Наконец, входы и выходы узлов соединяются проводами.
Сразу после старта Ramen выглядит примерно так:
Большую часть экрана занимает окно просмотра композиции. Внизу располагаются два окна собранные во вкладки: окно просмотра дерева композиции (активно) и окно редактирования кривых анимации. В правой части располагается окно параметров выделенного узла.
Узлы добавляются через меню Create в верхней части и связываются между собой перетаскиванием курсора от входа/выхода одного узла до выхода/входа другого узла. Для разрыва связи достаточно щёлкнуть по проводу между узлами с зажатой клавишей Control. Выход узла обозначается жёлтым квадратиком, основной вход — зеленым, вторичный вход — красным, matte — синим:
Активный узел, отображаемый в редакторе параметров, отмечен красной рамкой. Узел отображаемый в окне просмотра — синей. Выделенные узлы имеют жёлтый фон.
Для активации узла щёлкните по нему два раза.
По умолчанию в окне просмотра отображается активный узел. Для того чтоб просматривать один узел, а редактировать другой, нужно переключить режим Active на Context в окне просмотра.
После активации режима Context щёлкните два раза с зажатой клавишей Control на интересующий вас узел. В окне просмотра появится изображение с выхода этого узла.
Кроме того, вам пригодятся следующие горячие клавиши:
, and . — приблизить и отдалить соответственно; объект увеличения зависит от того, где вы в последний раз щёлкнули мышью.
Backspace — удалить выделенные узлы или точки на кривой анимации
Alt + Left Mouse Button — панорамирование
Просмотрите меню, в котором также указаны горячие клавиши.
Первая проба
Идея ролика
Идея проста. В начале мы видим брутальную linux консоль, после чего она заливается цветными кляксами, ну и в конце — логотип сайта .
Исходные материалы
Консоль загружающейся системы была записана при помощи и . На экране примечательный дистрибутив .
Кляксы сделаны при помощи туши, пипетки, бумаги, сканера и растрового редактора .
Экранная демонстрация загрузки
Приводим расположение элементов к более привычному вам виду и начинаем собирать картинку:
Ramen в данный момент не может показать, где находятся края кадра, поэтому используем старый как мир трюк. Берём яркий задник (узел color) нужного размера, и кладем поверх него свою картинку. Сразу становится ясно, куда и насколько её растягивать.
Кляксы
Добавляем заранее заготовленные кляксы. Ramen определяет их как последовательность кадров. Это не то, что нам нужно, однако, в свойствах узла image_in есть полезное поле Slip и функция Lock. Они позволяют указать нужный кадр последовательности и выключить смену кадров.
Далее делаем так: инвертируем картинку узлом invert, при помощи узла setch заворачиваем канал Red в канал Alpha (в инспекторе на картинке ниже), затем перемножаем получившуюся картинку с желаемым цветом при помощи узла layer. При этом нужно будет для узла color указать размеры картинки так, чтоб в неё полностью умещалась наша кляксомаска.
Теперь добавляем узел move2d для того, чтобы можно было подкрутить положение клякс на картинке, и кидаем эти кляксы поверх видеоконсоли.
Чтобы было красивее, немножечко изменяем положение узлов:
Повторяем операцию несколько раз и получаем ураган цвета:
На этом этапе время рендеринга уже велико, поэтому трудно переоценить возможность понизить разрешение изображения (переключатель Full/Half/Third/Quarter на панели с изображением). В режиме Quarter композиция отрисовывается почти в реальном времени.
Далее делаем переход всей композиции в белый цвет. Этот переход хорош ещё тем, что можно зажать кнопку Ignore на узле layer и тем самым отбросить то, что мы только что нагородили с кляксами.
И тут я призадумался. Изначально я планировал сделать появление клякс через увеличение их непрозрачности. Но тут мне пришла в голову идея использовать размытую маску для анимации плавного появления клякс. Нужно отметить что экспериментировать подобным образом в композерах, работающих на основе слоев, а не узлов, значительно менее приятно.
Анимируем параметр Offset узла correct. Узел layer_115 тут перемножает исходную маску с вновь созданной. Узел setch перенастраиваем для того, чтобы направлять канал Red во все каналы, а не дублировать в узле correct параметры на все каналы.
И получаем вполне неплохой результат.
Теперь нужно применить изменение ко всем кляксам с правильным таймингом. Тайминг лучше продумать заранее и на бумаге, поскольку Ramen пока не обладает достойными средствами ре-тайминга.
После применения этого приёма дерево подрастает:
После удвоения клякс оно уже перестаёт быть похожим на дерево:
Убедившись, что эта часть композиции работает как надо, отрендерив и посмотрев, выключаем узел layer, чтобы дальше работать на белом фоне.
Логотип
Исходник логотипа был в SVG, так что он был предварительно разбит на отдельные элементы в , а для удобства сборки заодно экспортирован целиком.
Вставляем логотип. Поскольку Inkscape экспортирует формат PNG без умножения цвета на непрозрачность (premultiply), нам придётся сделать это в Ramen.
Раскидываем элементы по своим местам и получаем еще одну лесенку:
Остается только сделать анимацию, используя параметр Scale узлов move2d.
Для большей эффектности в момент перехода добавим размывание клякс:
Готовый ролик
И вот он — результат.
от на .
Исходный файл в Ogg Theora можно скачать .
Исходники композиции
Исходники композиции можно загрузить .
Ramen использует абсолютные пути. Чтобы исправить эту проблему, я положил в архив маленький скрипт pathfix.py. Перейдите в директорию с распакованной композицией и запустите команду
$ python pathfix.py
После этого в Ramen можно открыть compos.rmn.
Итоги
Плюсы:
Есть вменяемые инструменты для ротоскопирования! УРА!
Удобный интерфейс.
Встроенный предпросмотр анимации (flipbook)
Высокая скорость работы, даже несмотря на заявление автора о том, что код не оптимизирован.
Полностью рабочая (не так как в Blender) система понижения разрешения предварительного просмотра.
Почти все параметры узлов могут быть анимированы.
Базовая поддержка , что означает возможность использования плагинов для Nuke, Toxik, Fusion и т.д.; в готовых сборках временно отключено из-за недоделанности, но при самостоятельной сборке можно включить обратно;
Минусы:
Есть утечки оперативной памяти, приходится перезапускать программу для ее высвобождения (в данный момент Эстебан решает эту проблему).
Отсутствуют элементы управления непосредственно на изображении (но обещают скоро исправить).
Пока слабые возможности ретайминга (нет возможности масштабировать/передвигать несколько кривых разных узлов одновременно).
Отсутствие инструментов трекинга и мачмувинга.
Отсутствие палитры узлов, доставать их из меню не совсем удобно.
Замечательный старт. Быстрое развитие. Но пока еще не готовый продукт для внедрения в проекты с дедлайном. Тем не менее, Ramen сейчас ближе всех к взрослым композерам. Ещё пару умных голов, и как знать — может быть через год большим дяденькам придётся потесниться.
Планы на будущее
Перечисленные выше пункты относятся к редакции 128 дерева разработки. С каждым новым коммитом Ramen становится все лучше и лучше, поэтому стоит немного рассказать о том, чего ждать от проекта.
В ближайших планах Эстебана исправить наиболее досадные ошибки, сделать программу более надёжной и удобной, а также доработать поддержку OFX.
Что касается более отдалённых планов, Эстебан определяет их как реализацию функционала, сравнимого с функционалом Shake. Это означает motion tracking, хорошее ротоскопирование, векторный узел paint (как в Shake), возможность исполнения сценариев и различные оптимизации.
А ещё?
Эстебан ведёт , в котором рассказывает о новостях разработки (этот блог можно читать через аггрегатор ). По адресу в ближайшее время будет открыт пользовательский форум. Буквально на днях появилась тематическая . Вот, кстати, пример использования хрома-кея в Ramen:
от на .
В этом году проект будет подавать заявку на участие в Google Summer of Code 2010. Список возможных проектов приведён .
Еще бы что то подобное давно пора было сделать для нелинейного видеомонтажа.
А пока то что есть для монтажа - это или для "домохозяек", или стоит как самолет.
blender... его встроенный композер с виду хорош, но стоит лишь начать работать с ним, как сразу понимаешь, в какое болото ты попал....
и автор как бэ не замечает что Blender в общем то программа не направленная на видеомонтаж или постообработку... я вам наверное открою СТРАУШНУЮ ТАЙНУ.. но blender это программа прежде всего ориентированнная на задачи 3d анимации.. и для этой цели его композер более чем достаточен.. но конечноо если вы со своими кривыми руками пытаетесь редактировать видео в программах для этого не предназначенных.. то да... Blender УГ... как впрочем и автор статьи...
@Nameless: А комментатор не обратил внимание на то, что разбираемый простой пример использования — не о редактировании видео? А что на невозможность анимировать каждое свойство в Blender до старта ветки 2.5 ругались все кто только можно, многоуважаемый комментатор знает?
Прекрасная статья, спасибо за хорошую новость!
Интерфейс настолько здорово напоминает взрослые композеры, что ох. Буду пробовать. Очень хочется, чтобы автор снабдил его и всеми «ускорялками» работы типа часто используемых нод на хоткеях, быстрого подключения нод, Нюковский и Гудиньский функционал клавиши Tab...
Кеинг в Ramen, конечно, молод... Но он работает, особенно если воспользоваться преимуществами нодового редактора и, как все нормальные композитинг-артисты, корректировать альфа-канал не внутри ноды Key (хотя вспомнить тот же Primatte ), а снаружи, пользуясь всей мощью композера, а не ограниченными пятью рульками.
Кстати, когда спрашивают, в чем отличие нодового композера от табличного, люди опытные обычно в первую очередь рассказывают про зубодробительный многопроходный кеинг, для которого в том же Афтере понадобится куча прекомпозов, а в Nuke, Fusion, shake, и теперь еще в Ramen — десяток-другой узлов, которые все на виду и объединены логичной структурой связей.
Хотя, когда я пробовал кеинг, были странности, но о них надо говорить с картинками в руках, попробую воспроизвести проблему.
Добавить комментарий
Пожалуйста, залогиньтесь для добавления комментария.
Рейтинги
Рейтинг доступен только для пользователей.
Пожалуйста, залогиньтесь или зарегистрируйтесь для голосования.
Очень даже понравился интерфейс и то что можно сделать в ней.