Морфинг для анимации перекладкой
В программе 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
Свидетельство о публикации №221051200478