Морфинг для анимации перекладкой

   Морфинг применяемый для создания промежуточных кадров, может облегчить не только анимацию векторных фигур, но и анимацию перекладкой, с использованием растровых изображений.
   В программе DM_Paint элементы растра включены в общую векторную графику в форме особых элементов - Паттернов.

   Паттерны это небольшие кусочки изображения, загружаемые в программу, как обычный рисунок большого размера. Рисунок этот (лист) разлинован на отдельные области, и в каждом векторном элементе «Паттерн» имеется ссылка на ту область, которую он использует.
   Давайте посмотрим на то, как отображается в числах, то изображение человека, которое вы видите на иллюстрации –

X  просмотр массива G  31-кр.Безье  36,38-Фигура  16-Паттерн   Nстрок= 17
 ____ 13-Прям-к  14-Круг  22-Прямая  25-Веер  26-Мног-к  27-Полилиния ___

        1>     16  364  113  2  39  1000  0  13  27968  5050  3  # 11
        2>     16  364  114  1 -48  1000 -300  10  27968  5050  3  # 10
        3>     16  333  122 -3  40  867  1300  11  27968  5050  1  # 12
        4>     16  389  119  3  40  880 -2900  11  27968  5050  3  # 13
        5>     16  348  193  1  34  1048  1000  14  27968  5050  3  # 14
        6>     16  372  195 -1  34  1029 -1800  14  27968  5050  1  # 15
        7>     16  416  167  4  50  827 -2000  12  27968  5050  3  # 13
        8>     16  322  173 -4  50  894  1600  12  27968  5050  1  # 12
        9>     16  334  269  2  39  967  800  15  27968  5050  3  # 14
        10>     16  394  267 -2  39  1000  0  15  27968  5050  1  # 15
        11>     38  349  63  12  4  0  0  0  6329  31710  1  # 10
   12      0  349  63  351  63  362  61  360  62  6329 -19
   13      0  378  62  360  62  376  62  365  60  6329 -19
   14      0  354  69  357  70  357  70  357  70  6329 -19
   15      0  369  69  371  70  370  71  370  71  6329 -19
        16>     31  357  83  17  9  0  0  0  8798  31710  1  # 10
   17      0  357  83  361  80  370  81  371  83  8798  31710

  Строки с 1-й по 10-ю это Паттерны. Логотип паттерна – 16 стоит в первых позициях этих строк.
  Титульная строка 11 описывает фигуру Безье с логотипом 38. Следом идут четыре дополнительных строки. Это кривые Безье, и изображают они черты лица – брови и глаза.
  Строка 16 с логотипом 31 описывает одиночную кривую Безье, которой изображена верхняя губа. Координаты точек этой кривой находятся в следующей строке.
  Паттерн на строке 1 имеет в поз.7 число 13. Это ссылка на первую строку и третий столбец (начиная с нулевого) листа с полями паттернов. Поле 13 на иллюстрации загораживается головой персонажа. Там изображена верхняя часть туловища.
  Голова находится на поле 10. Паттерн на строке 2, имеет ссылку на это поле. Он также включён в группу #10 – последняя позиция строки.
В эту же группу включены черты лица и верхняя губа. Поэтому, выставив сиреневый ластик, мы можем передвигать эти элементы вместе с головой.

  В разные иерархические группы включены и другие паттерны.
  На строке 7 находится левая рука персонажа, а на строке 8 – его правая рука. Обе строки ссылаются на одно и то же поле 12, однако Паттерн стр.8 зеркально отражён слева-вправо – цифра 1 поз.10 говорит об этом.
  А вот паттерн стр.7 не отражён – он имеет в поз.10 цифру 3. И это становится ясно, если мы сравним поле 12 с изображением левой руки персонажа – левая рука персонажа только чуть повёрнута, ровно на 20.00 градусов против часовой стрелки.
  Откуда такая точность? – спросите вы.
  А посмотрите на поз.5 пятой строки – там стоит число -2000. Это угол поворота, увеличенный в 100 раз.
  А в поз.6 мы видим число 827. Это масштаб, увеличенный в 1000 раз. То есть, говоря попросту, рука немного уменьшена в размере – она изображена в масштабе 0.872:1.

     МОРФИНГ ДЛЯ ПАТТЕРНОВ
 
  Поскольку суть морфинга состоит в постепенном изменении чисел, входящих в описание того или иного элемента векторной графики, то давайте посмотрим – какие числа в строке Паттерна можно изменять достаточно плавным образом. Возьмём за пример эту строку –

7>     16  416  167  4  50  827 -2000  12  27968  5050  3  # 13

416 и 167 – XY координаты опорной точки паттерна. Меняя эти координаты, Паттерн можно передвигать.
827 и -2000 – масштаб изображения  и угол поворота вокруг опорной точки. Опорная точка при изменении масштаба находится на месте.
27968 – активный цвет. Цвет «ножки» паттерна. Ножка видна во время работы по перемещению паттерна. Это число мы менять не будем.
5050 – это не одно число, а пара чисел. Каждое число пары может меняться  от 0 до 99-ти. Числа отвечают за изгиб паттерна по направлениям X и Y. Эти числа можно менять в процессе морфинга достаточно плавно. 
  Итак, мы имеем 6 независимо изменяемых чисел для морфинга Паттерна.

    ПОВОРОТЫ А НЕ СМЕЩЕНИЯ

  Расположение и, одновременно, ориентация всех графических фигур, за исключением Паттерна, в программе DM_Paint задаётся просто – через координаты точек Безье или точек контура. Для Паттерна его ориентация задаётся через угол поворота относительно положения изображения на растровом образце. И эта особенность существенно расширяет возможности морфинга для изображений, состоящих из паттернов.
  В самом деле – представьте себе, что вы сделали изображение руки, ломаной линией очертив её контур. А потом, повернув руку на 180 градусов, получили второе её изображение и провели морфинг между двумя этими изображениями. В процессе морфинга точки одного изображения будут двигаться к точкам другого, а контур фигуры будет постепенно стягиваться к точке поворота и затем, схлопнувшись в точку, контур будет также постепенно расширяться с другой стороны.
  А почему так происходит?
  А потому, что описанный процесс связан со смещением множества точек, но никак не с поворотом этого множества. Поэтому как бы повороты на небольшие углы с помощью морфинга возможны, но это будут не настоящие повороты – они всегда будут сопровождаться некоторым сокращением длины поворачиваемого объекта, или его уплощением.

  С Патерном совсем другое дело – внутри его титульной строки угол поворота указан явно, и можно удачно использовать это обстоятельство, чтобы в ходе морфинга действительно поворачивать руку.
  На полях 11 и 12 иллюстрации показаны положения плеча и предплечья с кистью, и эти положения соответствуют углу ноль градусов. Насколько далеко можно поворачивать эти объекты?
  На минус 180 (по часовой стрелке) и на плюс 180 градусов (в противоположном направлении).

     КАК ЭТО ДЕЛАЕТСЯ ПРАКТИЧЕСКИ

  Фигуру человека я заимствовал из своих прошлых опытов - http://youtu.be/hULXwSqkYl8  Записал графику с человеком в файл «человекО» и поместил этот файл в отдельную папку.
  Потом, повернув руки персонажа вверх, на одном рисунке – до уровня головы, на другом – чуть повыше, записал результаты в файлы «человекА» и «человекФ». Оба файла запомнил в той же папке. Теперь всё было готово к морфингу.

  Загрузил «человекА» в программу и, кликнув по строке меню «СОХРАНИТЬ»,
поместил графику в оперативный буфер (файл AGv). Затем загрузил исходный рисунок - «человекО».
  Нажимая «Пробел» на верхнем регистре, получил в текстовом поле опцию «morf», подпечатал к ней число 6 (число результирующих файлов не считая начального) и получив надпись «morf6», нажал клавишу «I» на верхнем регистре. В папке появилось семь новых файлов –
человекО00, человекО01, человекО02 … человекО06.
  Полученные 7 картинок показаны на иллюстрации в верхнем ряду. Поскольку в файле «человекА» поднятая вверх рука стр.7 повернулась на -173 градуса, не перейдя отметку -180, то движение кисти при морфинге идёт против часовой стрелки.
  И совершенно не то движение получается для «человекФ» - здесь указанный угол оказывается равным 161 градус. Это значение положительно, и потому кисть руки идёт по часовой стрелке. И это движение хорошо видно во втором ряду на иллюстрации. 

     КАК СОЗДАТЬ РЯД РАЗНООБРАЗНЫХ ДВИЖЕНИЙ
 
  Некая неприятность состоит в том, что файлы для картинок второго ряда получают точно такие же названия, что и для первого. А хотелось бы как-то разъединить их по названиям, чтобы потом показать в анимации последовательно, создав ряд разнообразных движений.
  И программа позволяет это сделать.

  Получив первый ряд картинок и кликнув по букве «G» на строке меню, мы собираем графику в файл-архив «GчеловекО». О работе с Архивом см.тут - http://proza.ru/2021/04/17/1069
  Затем, открыв кликом по «G» то же окно и работая в нём, переименовываем архив в «Gчеловек_№1», выбираем этот файл и открываем его. В результате, рядом с прежними файлами графики мы получаем ряд файлов с другими названиями, а именно –
  Человек_100, человек_101, человек_102  … человек_106

  Вот теперь можно проводить морфинг между изображениями О и Ф.
  Получая картинки второго ряда, поступаем с ними точно так же – собираем в архив и переименовываем архив в «Gчеловек_№2». Открыв этот архив, получаем –
  Человек_200, человек_201, человек_202  … человек_206

  Третий ряд картинок делаем морфнгом от А к Ф.
  Когда все ряды предполагаемых для анимации картинок готовы, то собираем их в общий файл-архив «Gчеловек_». Анимацию просматриваем, открывая этот файл в режиме показа. Для повторения просмотра нажимаем клавишу «Y» на верхнем регистре.
 Просмотр в режиме рисования и с опцией «An1G» на текстовом поле записывает картинки, извлекаемые из архива, на кадры анимации (начиная с выделенного кадра). На полученном мультфильме персонаж будет двигаться значительно быстрее.
  Тогда вы увидите, движения нашего персонажа получаются очень динамичными и разнообразными. Особенно, если запустить все три ряда в цикле и в быстром темпе. И пусть персонаж плещет своими руками как белый лебедь. ))
Вы увидите, что движения этого «лебедя» будут очень плавными.

Вывод. Использование морфинга при создании анимационного фильма способом перекладки растровых фрагментов оказывается весьма эффективным средством. Морфинг создаёт плавность перемещения и существенно облегчает труд аниматора.

__________
12.05.2021

видео по теме статьи см.тут - http://youtu.be/pjZz1t98tUo


Рецензии