Полгода назад проект Krita провел кампанию на Kickstarter по сбору средств на создание новой версии графического редактора. Среди основных целей на новую версию (Krita 3.0) были возможность создавать анимированные ролики и работать с 10k изображениями. И вот сегодня была опубликована первая бета-версия обещанного функционала!

Что же представляет собой новая версия? Для пользователя Крита почти не изменилась. Это все тот же редактор, с тем же широким набором кистей. Добавились лишь три новые панели: Animation, Timeline и Onion Skins. Эти три панели позволяют полностью управлять процессом анимационных роликов: управлять порядком кадров, скоростью проигрывания и луковичными слоями. Кроме анимационного интерфейса добавлен новый режим «Instant Preview» (прошлое рабочее название «Level of Detail Mode»). Этот режим позволяет рисовать на огромных изображениях «будто бы» в реальном времени.

Изменения кажутся незначительными, однако у них есть и обратная сторона. Krita 2.9 Animation Edition имеет практически новое, переработанное ядро, которое позволяет иметь несколько копий одного и того же изображения и работать с ними параллельно. В режиме работы с анимацией Крита использует эти копии для эффективного хранения и просчета отдельных кадров, а в режиме «Instant Preview» параллельно с самим изображением Крита хранит его уменьшенную копию, масштаб которой зависит от текущего зума. При рисовании Крита сначала просчитывает его уменьшенную копию, показывает ее пользователю, а затем, когда тот станет бездействовать (думать, или выбирать новую крутую кисточку), Крита уже начнет просчитывать оригинальное изображение в фоновом режиме. Подробнее об этом процессе можно почитать в этой статье на Хабре.

Здесь стоит заметить, что это первая публичная версия «анимационной» Криты, и некоторые вещи в ней могут быть еще не реализованы. Например, отсутствует сохранение анимации в привычные сжатые форматы видео. Вместо этого Крита позволяет экспортировать кадры в последовательность обычных изображений, которые потом можно свести в нужный формат в любом композере. Конечно, это ограничение временное.

Итак, Krita 2.9 Animation Edition Beta, встречайте качайте!

Пакеты для Ubuntu:
Доступны в репозитариях Krita Lime:
sudo add-apt-repository ppa:dimula73/krita
sudo apt-get update
sudo apt-get install krita-animation-testing krita-animation-testing-dbg


Ссылки:


Комментарии (10)


  1. Berdanka
    25.11.2015 11:42

    Попробовал анимацию, всё очень хорошо, но не хватает гибкого управления скоростью воспроизведения. Например, кривой фпс по времени.
    И при «пробежке» мышью по кадрам с помощью таймлайна — видны подлагивания при прогрузке.
    Если второе скорее всего исправят, то без первого выйдет мертворожденный функционал. Попробую зарепортить свою идею.


    1. dkazakov-dev
      25.11.2015 11:50
      +3

      Кривую ФПС от времени сделать можно. Я, правда, если честно, нигде такой штуки не видел. Есть примеры? Обычно бывают только инструменты «растягивания» кадров. Их мы обязательно сделаем, сейчас только нужно понять, в каком виде они нужны :) На данный момент растяжение отдельного кадра доступно через Alt+перетаскование.

      А про подлгагивания, проверьте, чтобы у вас был включен openGL.


      1. Berdanka
        25.11.2015 12:33

        Я занимаюсь анимированием мешей с 2D спрайтами в Юнити и там это совершенно естественный функционал, когда ты добавляешь динамики в анимацию регулируя кривую безье, которая показывает зависимость скорости изменения самых разных элементов от времени.
        Это так же работает и для покадровой анимации. Например, мы рисуем персонажа, наносящего горизонтальный рубящий удар мечом. В процессе отрисовки кадров сложно передать «паузу», в которой броня врага принимает от меча кинетическую энергию. Так же сложно передать резкое ускорение его тела после этой паузы. Это гораздо проще и естественнее сделать на этапе сведения, когда все кадры готовы и занимают свои места.
        Пример с ударом — только частный случай. Есть много других ситуаций, где придется редактировать динамику скорости вывода кадров.
        К сожалению у меня не найдется графических примеров в данный момент. Добавлю их когда вернусь с работы.

        Сама кривая отлично приживется в таймлайне, где ее можно будет скроллить вместе с кадрами.


        1. dkazakov-dev
          25.11.2015 14:34

          Присылайте, посмотрю. Идея очень хорошая!


          1. Berdanka
            25.11.2015 16:02

            Нарисовал наброски одной тушки, пинающей другую тушку:
            В этом случае фпс фиксирован, 0.1с на фрейм:
            image
            А уже в случае ниже пришлось обратиться к редактору, который может менять скорость воспроизведения по времени.
            Начинается с 0.3 секунд на кадр и плавно ускоряется до 0.1 секунды до момента удара (имитируя разгон вращающейся тушки вокруг оси), затем у оставшихся кадров 0.2 секунды на кадр:
            image
            Мне кажется, что константное пфс в анимации отдает мертвечиной.


            1. dkazakov-dev
              25.11.2015 16:52

              А как GUI выглядит можно скрин? Или ссылку на мануал? И как такие картинки с неровным FPS потом экспортируются? Или он в итоге линеаризуется к наименьшему общему делителю?


              1. Berdanka
                25.11.2015 17:29

                Использовался Фотошоп:
                image
                Он проставляет скорость вывода отдельно каждому кадру. Это жутко неудобно и заточено, видимо, под экспорт видео и гифок.
                Хотелось бы видеть нечто, похожее на кривые из Юнити:
                image
                Этот метод хорош всем.
                Тем, что дает полную свободу управления FPS'ом, а так же тем, что его можно использовать и для других переменных слоя — таких, как прозрачность, цветность, наклон, что угодно.
                Кривые Безье вообще хороши, вершины могут быть любыми, например острыми, передавая резкий импульс увеличения или уменьшения переменной после прохождения изгиба:
                image

                Касательно вопроса с экспортом:
                Скорее всего придется вставить пустые кадры (не пустые, а копии соседних кадров), чтобы привести значение FPS к одному — для всей анимации.
                Не надо вычислять его, пусть оно явно спрашивается с пользователя в окне «Animation»>«Frame Rate», как есть уже сейчас.

                И лучше выровнять FPS не на стадии экспорта, когда пользователь ничего не видит, а по нажатию кнопки «Выровнять ФПС». Тогда кривая скорости выравнивается в ровную прямую, Таймлайн разбавляется новыми заглушками, которые пользователь может перерисовать, чтобы получить более плавную анимацию (если Вы обратите нимание, в моем предыдущем посте во 2м примере есть в самом начале обрывистый эффект нехватки ФПС. Вот там было бы идеально навтыкать дополнительных кадров для разглаживания анимации).

                Мне интересно узнать, надо ли писать сообщение с реквестом фичи в баг-трекер? Или мои надежды обречены?
                Спрашивайте, если что-то плохо объяснил. С радостью отвечу.


                1. dkazakov-dev
                  26.11.2015 10:27

                  Я добавил ссылку на ваш коммент сюда: phabricator.kde.org/T1105

                  Если сможете нарисовать концепт GUI для Криты и прикрепить туда же, то будет совсем здорово. Тогда реализовать будет намного проще. А так, как нибудь позже займусь.


  1. bestxp
    25.11.2015 16:05

    думал попробовать под Linux интересная ошибка

    Essential application components could not be found. This might be an installation issue. Try restarting, running kbuildsycoca4.exe or reinstalling.

    Или у вас она на Linux под wine запускается и устанавливаетсья?


    1. dkazakov-dev
      25.11.2015 16:43
      +1

      Мне кажется, вы не тот пакет установили. Это сообщение было в Крите времен 2.8, а потом его убрали. Появлялось оно, когда были проблемы с установкой и нужно было перезапустить kbuildsycoca4. А так как проблема возникала обычно под виндой, то и .exe приписали. Wine'а никакого конечно же нет :)

      В общем, нужно поставить нормальный пакет (если Ubuntu) или собрать из исходников, если не-ubuntu.