Как сделать анимацию летящей птицы

Дмитрий Маштаков
   Нарисованные акварелью кадры с помощью простых компьютерных программ легко оживить, перевести их на прозрачный фон, скомпоновать подходящим образом и сделать из них заготовку для будущего мультфильма.
   Я использовал для этого программу mspaint (так называемый "старый" Паинт), и свою собственную программу MA_Paint.
      Нарисованные на бумаге кадры нужно сфотографировать или отсканировать (последнее лучше), полученные снимки считать программой mspaint и средствами этой программы должным образом ориентировать на поверхности рисунка.  После чего кадры запоминаются, как рисунки рис1 - рис9 формата bmp.

    Размах крыла птицы оказался значительным, поэтому, открыв программу MA_Paint, переведём её в полноэкранный режим. Кликнем по кнопке блокировка рисования, а на кнопке Градация выставим цифру 0. Тем самым мы установим минимальное значение порога отсечения для белого цвета.
    После этого, нажав кнопку Load, считываем первый рисунок.
    Кликаем его по диагональным углам белого поля, нажимаем кнопку "У" и ждём. После отработки команды почти белый фон, окружающий нарисованную птицу станет совершенно белым, то есть имеющим цвет (255,255,255). И в этом легко убедиться, кликнув по любой точке белого поля.
    Нажимаем кнопку Save и запоминаем рисунок.
    Также поступаем и с остальными восьмью рисунками.

    Посмотрим на полученные результаты.  Видим, что птица широко машет своими крыльями, и потому разместить её на рисунке нужно в правильном месте, чтобы крылья не выходили за рамки рисунка.
    В верхнем положении крылья находятся на рисунке номер 3. Сделаем с этого рисунка копию и откроем её в программе mspaint.  Заметим, что наш рисунок стал большим, птица на белом фоне находится в его центре, а по краям имеются поля серого цвета, которые нам совсем не чему. Поэтому скопируем птицу в буфер, а поле рисунка почистим, окрасив его в совершенно белый цвет.
     Теперь считаем птицу из буфера и расположим её в верхней части рисунка, но с сантиметровым зазором между поднятыми крыльями и краем окна. Возьмём зелёный цвет и нарисуем им реперную точку - маленький кружочек на кончике клюва птицы. После чего всё изображение птицы (кроме этой точки) удалим.
      Результат запомним как рисунок рис10.bmp. Реперную точку этого рисунка мы будем использовать для совмещения изображений на рисунках. Делается это так.

   Открываем рис1.bmp в программе mspaint, обводим птичку рамочкой и запоминаем в буфере.
   Открываем рис10. Извлекаем птичку из буфера и накладываем её изображение кончиком клюва на реперную точку.
   Запоминаем результат как рис1.bmp. И поступаем так же со всеми другими рисунками.

   Теперь у нас есть ряд рисунков, готовых для запоминания в качестве кадров анимации. Переходим в программу MA_Paint, последовательно считываем рисунки и нажимая розовую кнопочку запоминаем их в буфере кадров анимации. После чего выставляем на кнопке Градиент цифру 0 (наиболее быстрый режим чередования кадров) и просматриваем кадры в циклическом режиме (маленькая буква "р" левее от буфера на самом краю окна).
    Результат получается довольно забавный - птичка трепещет и плещет крылами, но кончик клюва у неё остаётся на месте, будто кто её за этот клюв держит.
    Так птички не летают. Туловище птиц, и клюв вместе с туловищем, поднимается и опускается в полёте, в соответствии с той фазой, в которой находятся машущие крылья.
    Конечно, можно было с самого начала не привязываться к реперному указателю точно, а сдвигать птичку выше или ниже него. Однако такая установка "на глаз" не гарантирует должной плавности перемещения, кроме того, в дальнейшем, её трудно будет исправлять. И поэтому мы применим для сдвига птички предусмотренные редактором технические средства.
   
    Установим чисто белый активный цвет и, кликнув по окружающему кнопку полю, переведём этот цвет в цвет фона.  Затем обозначим кликами по диагонали зону буфера "д" и активируем буфер, кликнув по кнопке "д" на краю окна. Активированный буфер связан с горячей клавишей "д" на клавиатуре компьютера, потому он так и называется, но мы будем пользоваться не этой клавишей, а серым лайком (полосочкой) находящимся над буфером кадров анимации.
    Клик по этому лайку сдвигает изображение на два пикселя в направлении вектора "V", а  сам вектор можно установить, направив его в любую сторону.
    Мы собираемся сдвигать изображение птички вверх, поэтому кликаем последовательно на рисунке две точки, указывая тем самым направление, а затем кликаем розовый лайк с буквой "v". Установленное значение вектора мы можем видеть в окошечке в левом верхнем углу окна программы.
   
    Теперь нам нужно распланировать величины сдвига птички, сообразуясь с фазами движения крыльев в её полёте. Делаем это так, как показано на иллюстрации. Сама птичка показана на иллюстрации в меньшем масштабе (30% от её действительной величины), поэтому для такой маленькой птички все значения сдвига нужно было бы уменьшить втрое.
     Короче говоря, нажимаем кнопочку ">" и двигаемся по кадрам анимации. Получив изображение очередного кадра, сдвигаем его столько раз, сколько запланировали, а затем запоминаем этот кадр.

Результат можно посмотреть вот здесь - http://yadi.sk/i/moErLPreHKlvQw
Движение летящей птицы получилась вполне естественным.
__________
26.11.2019


ДОПОЛНЕНИЕ

  Технические приёмы, используемые при создании анимации, могут быть различными. Например, если летящая птица по размерам небольшая, и кадры для неё найдены в интернете, то проще всего выбеливать все кадры сразу, расположив их в правой части рисунка. А затем поочерёдно переносить изображения на реперную точку в левой части рисунка.

  Изображения, копируемые из интернета обычно серые, недостаточно чёрные. Решить проблему окрашивания контуров фигуры в любой цвет с одновременным выбеливанием рисунка поможет опция # кнопки У. Об этой опции читайте в разделе <<Анимация>>. А если обратиться к разделу <<Кнопка для того чтобы>> и выбрать там пункт «Уширить точки данного цвета», то линии контура можно сделать более широкими.
__________
28.11.2019

скачать этот текст в формате Ворд можно тут - http://yadi.sk/i/oGO5ZPvrMCPacQ