Feedback Like A Boss
Как я написал программу для управления фидбэками на анимационном проекте
У меня работа такая — я часть команды производства анимации для игр. И если рассматривать количество анимаций в контексте одной игры, то их довольно много. Это целые анимационные ассеты, и общее количество переваливает за тысячи. Несколько десятков может быть одновременно в работе. Мы их смотрим, даём замечания, переделываем, улучшаем — и так по кругу.
Казалось бы, процесс непростой. Но на деле это еще сложнее, потому что надо выстраивать систему взаимодействий между отделами, субподрядом и т.д. Открываешь текстовый редактор, пишешь комментарии, потом идёшь искать нужную папку с анимациями, кидаешь туда текст, скрины, ссылки на рефы — всё это достаточно хаотично и занимает уйму времени. Когда анимаций сотни и по каждой идут итерации — ты можешь тонуть в этом хаосе.
В какой-то момент я подумал, что пора сделать нормальный инструмент под свои задачи управления этими анимационными процессами. Так появился Feedback Like A Boss.
________________________________________
С чего всё началось
Первая идея была простой до безобразия: есть папки с анимациями, и мне нужен удобный способ создавать к ним документы с комментариями. Чтобы нажал кнопку — создался Word-документ с правильным именем в нужной папке, и сразу открылся для редактирования. Имя файла автоматически: год-дата-имя анимации-номер фидбэка. Всё.
Первый прототип я сделал за день. Тёмная тема, чёрно-серо-рыжая палитра, PySide6. Запустил — работает. Уже хорошо.
Но потом начался самый интересный процесс — я начал пользоваться программой в реальной работе и понимать, чего ещё не хватает.
________________________________________
Как программа росла
Сначала добавил кнопку «Соединить все» — чтобы объединять все фидбэки по одной анимации в один документ. Потом понял, что фидбэки надо хранить не в корне папки, а в отдельной подпапке Boss_feedback. Потом захотел видеть порядковые номера у итераций анимации. Потом — импорт внешних файлов: скриншотов, видео, документов от продюсера. Потом корзину с возможностью восстановления.
И вот тут я понял кое-что важное: задача оказалась намного глубже, чем «создать документик в нужной папке».
Через несколько дней работы у меня уже был полноценный менеджер проекта с несколькими типами документов — фидбэки, заметки с митингов (Meet Notes), личные заметки (My Notes), таски. Каждый тип своего цвета, чтобы с первого взгляда было понятно что есть что.
________________________________________
Таймлайн — самая крутая штука
В какой-то момент разработки я придумал режим таймлайна. Слева — список анимаций, справа — линия времени, на которой видно когда и какой фидбэк был сделан. Нажал на метку — открыл документ. Видишь всю картину проекта сразу.
Реализовывать это оказалось непросто. Сначала фидбэки не там отображались. Потом наслаивались друг на друга если сделаны в один день. Потом скроллы в левой и правой панелях не синхронизировались — а это значит, что линии времени уезжают от имён анимаций. Это было непросто синхронизировать.
Я потратил много времени только на синхронизацию скроллов в двух рабочих фреймах. Проблема оказалась в том, что левая панель скроллится дискретно — по целой карточке, а правая — попиксельно. Как только это выровняли — всё встало на место.
Потом я вспомнил как устроен таймрендж в Maya — программе для 3D анимации. Там можно тянуть за края ползунка и менять диапазон воспроизведения. Я захотел такой же для навигации по времени. Сделали. Потом добавили двойной клик — чтобы ползунок разворачивался на весь диапазон и обратно сворачивался. Мелочь, а пользоваться стало в разы удобнее.
________________________________________
Детали которые важны
Когда делаешь инструмент для себя, начинаешь замечать всякие мелочи которые в обычном корпоративном софте никто не трогает.
Например, я убрал все подтверждающие диалоги типа «Файл успешно создан — нажмите ОК». Я и так вижу что создал. Зачем нажимать ОК? Убрал.
Добавил предпросмотр содержимого документа при наведении мышки с зажатым Ctrl. Навёл — видишь первые 20-30 слов. Не надо открывать файл чтобы понять что в нём.
Сделал кастомизацию цветов для разных типов документов. Видео — синие, картинки — зелёные, фидбэки — оранжевые. И дал возможность это всё настраивать в настройках.
Придумал группировку карточек в левом меню — как группы в Телеграме. Можно объединить несколько пушек в одну группу, свернуть и не мешают. В таймлайне свёрнутая группа тоже скрывает свои линии времени — чистота и порядок.
Добавил закрепление карточек. Нажал правой кнопкой — «Закрепить» — карточка улетает в самый верх и живёт там пока не открепишь. Максимум 10 закреплённых. Это удобно когда работаешь с 3-4 приоритетными задачами из 80.
________________________________________
Режим миниатюр и видео-превью
Самое последнее что я добавил — это режим миниатюр для медиафайлов. Вместо карточки с иконкой — реальная превьюшка. Для видео — первый кадр. А ещё: если навести мышку на видео-карточку, видео начинает воспроизводиться прямо в миниатюре, и можно перематывать двигая мышку влево-вправо. Как в каком-нибудь медиаменеджере.
Это оказалось технически самым сложным местом. Миниатюры то не генерировались при добавлении, то пропадали при переходе между карточками, то прогресс-бар не работал как надо. Но в итоге — работает отлично, и пользоваться этим приятно.
________________________________________
Про миграцию
Отдельная история — перенос проекта на другой компьютер. Сначала я сделал это неправильно: программа пыталась запихнуть все файлы проекта внутрь одного .flbs-файла. Если проект весит гигабайт — понятно что это зависает намертво.
Переделали по-нормальному: .flbs — это просто файл с путями, карта где что лежит. Когда нужно перенести проект — специальная функция экспорта копирует все файлы в папку рядом с .flbs, и пересчитывает пути на относительные. Приехал домой, открыл — всё работает.
________________________________________
Что получилось в итоге
За примерно два месяца работы программа прошла путь от «создать документ в папке» до полноценного менеджера проекта:
• удобное добавление фидбеков в привычных программах MS Office или Open Office.
• несколько типов документов с цветовой кодировкой
• таймлайн со всей историей проекта
• импорт любых файлов с превью и воспроизведением видео
• группировка и закрепление карточек
• поиск по проекту
• гиперссылки с отображением на таймлайне
• корзина с возможностью восстановления
• экспорт и импорт проекта для работы на разных машинах
• три режима отображения: список, сетка, миниатюры
• кастомизация цветов и темы
• горячие клавиши и контекстные меню везде где надо
Программа называется «Feedback Like A Boss» — это вышло само собой, с юмором. Потому что когда ты даёшь фидбэк через специальный инструмент а не через Блокнот — чувствуешь себя немного боссом.
Я изначально делал это под анимационный продакшн, но потом понял — это подходит для любого проекта где есть задачи, папки с файлами и люди которым надо давать замечания. Визуальные эффекты, дизайн, 3D-моделирование, архитектура — везде где работа идёт с папками и контентом, а не с базами данных.
________________________________________
Эта программа полностью бесплатная. Я создал ее для своей работы, и она действительно помогает. В процессе я подумал, что возможно она кому-то еще может быть полезной. В ближайших планах есть идея портировать ее на Mac OS, чтобы расширить круг пользователей. Я не программист, у меня нет специального образования, я просто занимаюсь организацией анимационных процессов и анимирую на игровых проектах. Эта программа результат программирования в свободное время. Я допускаю что в ней код «франкенштейна» и много ошибок с точки зрения профессиональных программистов. Однако она работает и может быть полезной.
Скачать программу можно здесь: https://eu-melnikov.github.io/flbs.html
Там же есть видео урок по использованию этой программы.