Frames Commander - плеер для аниматоров и художников VFX
Frames Commander: как я написал инструмент, которого мне не хватало
История создания видеоплеера для аниматоров.
На видео урок по работе с плеером. Первые 2 минуты общий обзор возможностей, для тех кто спешит.
Я работаю аниматором уже много лет. Анимация персонажей, существ, техники — это моя основная работа. Но параллельно я увлекся программированием. Не на уровне профессионального разработчика, а скорее как хобби, которое иногда перерастает во что-то полезное. Frames Commander — как раз такой случай.
Всё началось с простой проблемы. Когда работаешь над анимацией, постоянно нужно смотреть референсы — видео с реальными движениями, чужие работы, предыдущие версии своих же дублей. И стандартные видеоплееры для этого подходят плохо. Попробуйте в Windows Media Player перемещаться по кадрам. Или сравнить два видео бок о бок. Или наложить референс поверх своей анимации в Maya. Всё это либо невозможно, либо требует танцев с бубном.
Кадр за кадром
Первое, что мне было нужно — нормальная покадровая навигация. Когда анализируешь движение, важен каждый кадр. Как вес переносится с ноги на ногу? В какой момент рука начинает замедляться? Где именно происходит контакт? Всё это можно увидеть только покадрово.
В Frames Commander стрелки влево-вправо перемещают видео ровно на один кадр. Звучит просто, но большинство обычных плееров этого не умеют — они прыгают примерно туда, куда надо, но не точно. А для анимации "примерно" не работает.
Ещё я добавил шаг по 30 кадров клавишами A и D. Когда референс длинный, перематывать по одному кадру утомительно. 30 кадров — это примерно секунда при стандартных 24-30 fps, удобный шаг для быстрой навигации.
Сравнение дублей
Вторая проблема, которую я хотел решить — сравнение версий. Аниматор постоянно делает дубли. Первый проход, второй, десятый. Получил фидбек от режиссёра — ещё пять дублей. И нужно понимать, что изменилось, что стало лучше, а что сломалось.
Для этого я сделал несколько режимов. Самый простой — Split View, когда два видео показываются рядом, горизонтально или вертикально. Включаешь синхронизацию — и они крутятся вместе. Скрабишь одно — второе следует за ним. Очень удобно для сравнения "было-стало".
Есть ещё режим 2x2 Grid — это когда на экране сразу четыре видео. Например, четыре варианта одной и той же анимации. Или оригинал, две версии и референс. Каждую панель можно развернуть для детального редактирования, а потом вернуться в сетку.
Слои видео
Но самая интересная штука — это режим слоёв. Представьте Photoshop, только для видео. До шести слоёв, каждый со своей прозрачностью. Можно наложить референс поверх своей анимации и смотреть, насколько движение совпадает. Или сравнить несколько проходов, плавно меняя прозрачность.
Есть функция Hold Frame — можно заморозить один слой на определённом кадре, а другой крутить дальше. Полезно, когда нужно сравнить позу из одного видео с движением в другом.
Синхронизация с Maya
Я работаю в Autodesk Maya, и мне всегда хотелось видеть референс прямо во время анимации. Не переключаться между окнами, а чтобы видео было тут же, рядом. Так появился Maya Mode.
Плеер подключается к Maya через простой скрипт. После этого они синхронизируются: двигаешь тайм-слайдер в Maya — видео перематывается на тот же кадр. И наоборот. Нажимаешь Play в плеере — Maya тоже запускается. Диапазон воспроизведения тоже синхронизируется.
А ещё есть режим Overlay Pro — это те же функции, но без привязки к Maya. Для тех, кто работает в Blender, Houdini, After Effects или любой другой программе. Окно плеера можно сделать полупрозрачным, закрепить поверх всех окон, и даже включить режим "прокликивания" — когда мышь проходит сквозь плеер и кликает на то, что под ним. Можно буквально анимировать, глядя сквозь референс.
Заметки на полях
Когда анализируешь референс, часто хочется что-то отметить. Вот тут центр массы, вот линия действия, вот дуга движения руки. Я добавил простые инструменты рисования: карандаш, линии, прямоугольники, круги, стрелки. Рисунки привязываются к кадрам — на каждом кадре могут быть свои заметки.
Есть режим "Показать все" — тогда видны рисунки со всех кадров, но с затуханием. Чем дальше кадр от текущего, тем бледнее рисунок. Хорошо для отслеживания траекторий.
Экспорт фрагментов
Иногда из длинного референса нужно вырезать короткий кусочек. Раньше для этого приходилось открывать какой-нибудь редактор, импортировать, резать, экспортировать. Теперь можно прямо в плеере отметить начало и конец фрагмента и экспортировать его одной кнопкой.
Есть два режима: быстрое копирование без перекодирования (для случаев, когда точность обрезки не критична) и полное перекодирование с настройками качества (когда нужна покадровая точность или изменение разрешения).
Мелочи, которые помогают
За время разработки я добавил кучу мелких, но полезных вещей. Закладки — чтобы отмечать интересные моменты и быстро к ним возвращаться. Композиционные сетки — правило третей, золотое сечение, безопасные зоны для кадрирования. Тайм-код с настраиваемой позицией и форматом. Скриншоты с возможностью копирования в буфер обмена или сохранения на диск — вместе с рисунками и тайм-кодом.
Проекты сохраняются в файлы — можно закрыть программу, а потом вернуться к тому же видео, на том же кадре, со всеми закладками и рисунками. Настройки хранятся в обычном JSON, без реестра Windows — программу можно скопировать на флешку и она будет работать.
Зачем я это пишу
Frames Commander я делал в первую очередь для себя. Решал свои проблемы, автоматизировал свой рабочий процесс. Но потом понял, что те же проблемы есть у многих аниматоров. Мы все смотрим референсы, сравниваем дубли, анализируем движение покадрово.
Я не профессиональный разработчик и не претендую на это. Frames Commander — это инструмент, написанный аниматором для аниматоров. Он решает конкретные задачи, с которыми я сталкиваюсь каждый день. Надеюсь, кому-то ещё он тоже окажется полезным.
Урок по работе с плеером в начале статьи, ссылка на скачивание под видео или тут, с моего сайта на github https://eu-melnikov.github.io/
Кстати, напомню это открытая бета, так что накидывайте пожелания, я учитываю, добавляю. И первые пожелания которые ребята накидывали в моем ТГ уже реализованы, и скоро выйдет версия 1.1.
Е. Мельников