Бесплатная программа FotoMorph служит для создания анимации из фотографий. Из добавленных в программу фотографий будет создан анимированный ролик, в котором фотографии визуально будут плавно трансформироваться, из одного изображения в другое.
Такая технология называется морфингом. Морфингом (трансформацией) в компьютерной анимации называют плавное превращение одного визуального объекта в другой. Подобная анимация широко используется в графике, телевидении и кино.
Вы можете создать анимированные фотографии, в виде анимированных роликов или отдельных изображений, а затем сохранить их на своем компьютере, при помощи программы FotoMorph. Пройдя несколько шагов, вы сможете создать анимацию из нескольких изображений, перемещая, деформируя или превращая добавленные в программу изображения.
Бесплатная программа FotoMorph имеет простой, дружественный интерфейс. Программа имеет поддержку русского языка. Вы не будете испытывать трудностей, необходимо будет только позаботиться о поиске изображений для своего творчества.
В программе FotoMorph поддерживаются следующие входные форматы:
- JPEG, JPG, PNG, GIF, TIF,TIFF, BMP.
После создания анимации из фотографий, проект или отдельные изображения можно будет сохранить:
- как изображения в форматах JPEG, PNG, GIF, BMP;
- анимация в формате GIF, анимированный ролик в формате AVI, флеш анимация в формате SWF, как веб-страница (SWF + HTML).
Программу FotoMorph можно скачать с официального сайта производителя, норвежской компании Digital Photo Software.
FotoMorph скачать
Далее программу необходимо будет установить на ваш компьютер. Во время установки FotoMorph, откажитесь от предложений об установке посторонних программ на ваш компьютер.
После завершения установки программы на компьютер, будет открыто окно программы FotoMorph на английском языке.
Русификация FotoMorph
Программа FotoMorph поддерживает нескольких языковых пакетов, в том числе, имеется поддержка русского языка. Для включения русского языка нажмите на изображение глобуса в правом верхнем углу окна программы. Затем из открывшегося списка выберите русский язык.
После этого интерфейс программы FotoMorph переключится на русский язык.
Портретная анимация: новый медиа-продукт для event`ов
Понравилась статья?! Расскажи друзьям — им полезно, нам приятно
Поделиться
Что такое морфинг?
Портретная анимация или морфинг — это узкое направление анимационной компьютерной графики, в котором используется эффект плавной трансформации одного портрета в другой.
Помните старый клип Майкла Джексона, в котором десятки людей превращались друг в друга?
Это и есть портретная анимация. Вернее, ее прототип. Клип был снят в 1991 году и стоил четыре миллиона долларов, значительная часть которых была потрачена на ту самую анимацию. За 20 лет технологии выросли и подешевели. Теперь это доступно и для event-рынка.
В чем смысл этой анимации?
Портретная анимация — забавное развлечение. Фотография любого человека с помощью специальных технологий превращается в фотографию известной личности. Причем в процессе превращения используются незаметные эффекты, что обеспечивает поразительное (часто обманчивое) сходство обычного человека и знаменитости.
Как использовать морфинг в event-сфере?
Морфинг подойдет для любых развлекательных и имиджевых корпоративных мероприятий. Заранее подбирается несколько значимых в компании персон, и на глазах у изумленной публики они превращаются в звезд шоу-бизнеса, известных киноактеров, знаменитых персонажей. Все анимации соединяются в один короткий динамичный ролик, который показывается на вечеринке и становится гвоздем программы.
Лофт#3 – 10 новых залов, вместимостью от 20 до 800 гостей Шоу дронов под ключ! Скидка 15% новым клиентам Event.ru рекомендует — лучшие площадки! Digital-навигации для деловых мероприятий Мультимедийное сопровождение мероприятий полного цикла 3 белоснежных шатра на берегу в 1 км от МКАД! Event.ru рекомендует — надежные подрядчики! Известия Banket Hall — 4 автономных зала в 2-х минутах от метро Тверская Event.ru рекомендует — креативные event-агентства MF Group Техническое обеспечение и организация событий Event.ru рекомендует — топовые артисты! Все самое популярное каждый день в телеграме! Один день — один пост!
Как сюда попасть?
Все объявления/ Скрыть объявления
Посмотрите пример использования морфинга на мероприятиях от студии Евгения Дубина, на сегодняшний день это единственная студия, которая предлагает подобные услуги для мероприятий в России.
Момент изумления случается с каждой портретной анимацией, потому что профессиональные моушн-дизайнеры учитывают не только сам процесс превращения, но и драматургию контента, то есть принцип подбора пар «обычный человек — звезда». Важно, чтобы у лиц одной пары были сходные черты. Вовсе не обязательно, чтобы лица были похожими. Дизайнеры учитывают такие нюансы как форма прически, овал лица, глубина посадки глаз, форма улыбки и прочее. Именно поэтому и получается wow-эффект: не увидев саму анимацию, невозможно представить, что этот человек так сильно похож на звезду.
Кроме того, технология позволяет превращать не только в известных персон, но и одних сотрудников компании в других, например, маркетолога в бухгалтера, технического директора в начальника hr-отдела и так далее.
Как долго готовятся такие проекты?
Профессиональный морфинг отличается от любительского, и по-настоящему качественный продукт для event`ов могут изготовить только в студии.
Современные возможности хороших компьютеров позволяют просчитывать необходимые эффекты в течение нескольких часов. Гораздо больше времени уйдет на согласование контента и драматургии. Средний проект (10-15 трансформаций) у профессиональной студии займет около недели.
Портретная анимация пришла к нам с запада, где уже успела завоевать невероятную популярность, а значит есть вероятность, что и на российском рынке эта услуга скоро будет в тренде.
Понравилась статья?! Расскажи друзьям — им полезно, нам приятно
Поделиться
Анимация фотографий в FotoMorph
Главное окно программы FotoMorph откроется во вкладке «Проекты». Можно заметить, что интерфейс программы FotoMorph очень похож интерфейс программы FotoMix, при помощи которой можно будет создать фотомонтаж и коллаж. У этих программ один производитель.
Для ознакомления с возможностями программы, можно будет нажать на кнопку «Образец проекта». Здесь можно посмотреть на последовательность операций при сохранении двух фотографий в одну, используя разные варианты для сохранения анимации.
Теперь перейдем непосредственно к процессу создания анимации изображений в FotoMorph.
Для запуска процесса создания анимированного изображения нажмите на кнопку «Новый проект». В контекстном меню необходимо будет выбрать тип последовательности:
- Последовательность морфинга.
- Последовательность деформации.
- Последовательность лица.
- Последовательность переходов.
В зависимости от выбранного типа последовательности будет создано итоговое анимационное изображение.
После выбора последовательности будет открыто окно, с выбранной последовательностью будущих изменений. На этом примере, я выбрал вариант «Последовательность морфинга».
Далее нужно будет перейти во вкладку «Рисунки» для добавления фотографий. Сначала в это окно необходимо будет добавить начальное изображение, а потом конечное изображение.
Для этого нажмите в левой колонке на кнопку «Открыть», для того чтобы добавить в окно программы FotoMorph нужное изображение. Внизу расположена область «Совпадение», сюда будут выводиться совмещенное изображение.
С помощью рамки красного цвета вы можете выделить область на изображении, которую необходимо будет подвергнуть редактированию. Рядом с изображением находится вертикальная шкала. Передвигая ползунок по шкале, вы можете увеличивать или уменьшать изображение для просмотра.
С добавленными изображениями во вкладке «Рисунки» можно будет выполнить следующие действия:
- изменить размер;
- зеркальное отображение;
- вращать;
- исказить;
Так как изображения (начальное и конечное) могут не совпадать по своим размерам, то в этом случае, вы можете изменить размер требуемой фотографии при помощи программы FotoMorph, при помощи другого графического редактора, или просто сделать скриншот с той области на соответствующем изображении, которое вы хотите добавить в окно программы FotoMorph.
Я выбрал первые попавшиеся мне фотографии, которые, по моему мнению, более-менее подходили друг к другу. Поэтому не судите меня строго за получившийся результат. Вы можете подойти к выбору изображений более тщательнее, чем я.
Для придания большей схожести, я немного обрезал вторую фотографию, затем нажал на кнопку «Вращать», для того, чтобы немного повернуть данное изображение.
После настройки и завершения выбора областей для преобразования фотографий, перейдите во вкладку «Проверка».
Во вкладке «Проверка» вам нужно будет добавить ключевые точки (метки) на изображения, для придания большей схожести. Это делается для того, чтобы переход из одного изображения в другое, в анимированном изображении, был более естественным. Чем больше будет таких ключевых точек, тем более похожей будет итоговая трансформация.
Здесь можно будет настроить демонстрацию анимированного изображения: время задержки (в начале, в середине, в конце), время продолжительности ролика.
Вам также может быть интересно:
- FotoMix — фотомонтаж и коллаж
- 10 сервисов оптимизации изображений онлайн
В завершающей части анимационного ролика, можно будет снова вернуться к начальному изображению. Для этого следует активировать пункт «Вернуться».
С помощью встроенного плеера вы можете просмотреть на результат своих действий.
Далее перейдите во вкладку «Анимация».
На итоговый ролик можно будет сделать цифровую рамку, выбрав для этого соответствующий цвет. В анимацию, при необходимости, можно будет добавить фон, анимированный текст.
За результатом своих действий можно будет следить при помощи плеера, который расположен в нижней части окна программы.
В этой вкладке можно будет включить фон для анимированного ролика. Если вы выберите фон, то в этом случае, вы можете выбрать цвет, прозрачность, маску фона. По-своему желанию, опытным путем, можно будет определиться с необходимыми настройками.
После завершения всех настроек, только что созданную анимацию можно будет сохранить на свой компьютер.
Морфинг изображений, живые режимы!
ePoi.Ru с гордостью заявляет, что является не только первым в мире производителем, который реализовал функционал отслеживания скорости вращения в реквизите с автокоррекцией растяжения режимов на лету в пиксельном реквизите, но и реализует в жизнь давно витавшую в воздухе идею живых изображений! Скоро на этой странице появится полная информация, пока публикуем несколько ознакомительных строк. п.с. опережая вопрос, когда будет релиз? Релиз функционала намечен на 2020 год. Можем сразу ответить, что приобретая пиксель пои нашего производства уже сейчас, вы не лишитесь данной разработки до её официального выхода, данный функционал получат абсолютно все пользователи нашей продукции Pixel Poi 2.0 Smart Engine 32 и 64, как старые так и новые, реквизит легко обновляем до нового функционала.
Итак в рамках расширения функционала пиксельной продукции от ePoi.Ru анонсируем морфинг изображений!
Общая информация:
Морфинг (англ. morphing, трансформация) — технология в компьютерной анимации, визуальный эффект, создающий впечатление плавной трансформации одного объекта в другой
Технология:
Для создания эффекта используются как минимум два изображения, на которых художник задаёт точки перехода, которые помогают выполнить преобразование изображения, при этом значения цвета точек и их положения плавно изменяются от начального к конечному. Оставшиеся точки следуют за отмеченным не нарушая целостность картинки.
Морфинг — это способ анимации:
Морфинг также часто используется для создания анимации, когда не стоит задача добиться эффекта превращения одного объекта в другой, а требуется лишь выстроить промежуточные состояния между двумя (и более) ключевыми положениями анимируемого объекта.
Режиссер Джеймс Кэмерон впервые в истории кино использовал компьютерный спецэффект под названием «morphing», который на короткое время появился в его картине «Бездна», но получил широкое применение в фильме «Терминатор-2», где терминатор Т-1000 в исполнении Роберта Патрика многократно плавно преображается, принимая облик различных людей.
По материалу: WikiPedia
Что же будет реализовано в пиксельной продукции от ePoi.Ru ?
Простыми словами наши идеологи, инженеры и технологи добились следующего:
Возможность изменение картинки в зависимости от скорости вращения или от времени. Для морфинг режимов в зависимости от скорости вращения можно настраивать чувствительность — это значит что вы можете создать картинку, которая будет изменяться мгновенно, или будет меняться просто от темпа вращения.
Например:
1. Артист выходит с якобы выключенным реквизитом, при начале любого движения реквизит начинает плавно и медленно «разгораться» становясь все ярче и ярче при более быстрых движениях, а при остановке в конце выступления реквизит плавно затухает.
2. Медленная трансформация картинки по времени для иллюстрации «дня и ночи».
3. Потрясающие фотографии группы элементов «цветы», где цвет лепестков плавно меняется от центра к краю.
4. Шоу программа с резко меняющимся темпом музыки — где в медленные моменты идет изображение например «цветов», а в быстрые моменты — «кинжалов».
Так же что не маловажно, морфинг режимы являются именно режимами, из них можно строить и составлять целые шоу-программы, так же как и с обычными режимами — картинками.
Сохранение анимации в FotoMorph
В FotoMorph можно будет сохранить весь проект, выбрав для этого соответствующий формат, или сохранить на свой компьютер определенные кадры из проекта.
Выбранные отдельные кадры можно будет отправить на печать или сохранить на компьютер в следующих форматах:
- JPEG, PNG, GIF, BMP.
Для сохранения всего проекта, во вкладке «Анимация» нужно будет нажать на кнопку «Экспорт анимации».
После этого откроется окно «Экспорт анимации», в котором необходимо будет выбрать формат для сохранения анимированного ролика. Здесь же можно будет выбрать его качество.
Для экспорта всего проекта доступны следующие варианты сохранения анимированных изображений:
- Последовательность изображений.
- Флеш ролик (SWF).
- Веб страница (SWF + HTML).
- GIF анимация.
- AVI ролик.
При выборе варианта «Последовательность изображений», на компьютер будут сохранены все отдельные (их может быть очень много) последовательные изображения в формате JPEG.
После выбора формата экспорта, нажмите на кнопку «ОК», а затем дождитесь завершения процесса преобразования.
При сохранении проекта в формате «AVI ролик», вы можете сохранить данное видео без сжатия, или выбрать программу для сжатия видео. Сначала выберите программу для сжатия, а затем нажмите на кнопку «Настроить…».
В открывшемся окне, вы можете настроить параметры кодирования, если вас не устраивают настройки, сделанные по умолчанию.
После завершения сохранения проекта, вы можете открыть папку, в которой был сохранен ролик, и посмотреть только что созданную анимацию.
Вы можете посмотреть на анимацию в формате GIF, созданную мной из двух разных фотографий.
Анимация мимики по принципу «Blended Morph»
Об авторе:
Зовут меня Поклонов Максим, родился живу и тружусь в городе-герое Усть-Каменогорске, том, что в Казахстане. Графикой занимаюсь где-то года с 99, естественно персонажкой занялся много позже, пройдя множество трудностей и поборов кучу глюков, наработал кладезь ценного материала, коим спешу поделиться с вами.
Введение
Привет, друзья. Это снова я, и я хочу порадовать вас, очередным уроком. Я расскажу о довольно мало известном, но весьма интересном приеме анимации мимики при помощи морфинга. В этом уроке я буду использовать уже известного персонажа для мульт заставок игры Air Xonix, изготовленного мной для компании Axysoft. Правда, для демонстрации возможностей данного приема анимации, лицо персонажа пришлось немного модифицировать.
Идея данного способа, скрипты и некоторые специальные наработки были почерпнуты мной в четвертом DVD Пола Нила (Paul Neale) «Facial Rigging Techniques». Эта идея была полностью переработана и настроена под меня, так что на DVD Пола Нила все будет по другому. В этом уроке я покажу только сам способ анимации, ну а если вам этого будет мало, и вы захотите научиться сохранять мимические позы, или научиться делать костную анимацию на профессиональном уровне, и так далее, то ищите DVD Пола Нила (Paul Neale) «Facial Rigging Techniques», он будет для вас невероятно полезен.
Любая анимация мимики, это не просто, поэтому приготовьтесь к большому и очень сложному уроку. Наберитесь терпения и будьте крайне внимательны. Поехали.
Сразу определимся со сторонами лево-право. Все что касается лица персонажа, надо понимать с его точки зрения, то есть, что для него лево, то для нас право. Все что не касается непосредственно модели, следует рассматривать с нашей позиции, то есть где лево — там лево, и где право, там соответственно право.
Подготовка модели к анимации
По мере написания урока мне пришлось столкнуться с одной досадной ошибкой. Когда я полностью настроил правую половину лица персонажа, и принялся копировать и зеркалить морф-цели, то выяснилось, что модель содержит скрытые ошибки, не склеенные точки, и даже Pivot немного смещен. В результате мне не удалось правильно отзеркалить цели. И мне пришлось править модель и все начинать по новой. Чтобы избежать подобной ошибки, в самом начале давайте подготовим модель. Для начала преобразуйте ее в Editable Poly (если она таковой не является). Первым делом надо склеить разлепленные точки, их может быть не видно во вьюпорте, но они могут доставить массу неожиданных сюрпризов. Для этого войдите в подобъект «Vertex», выделите все точки модели и примените к ним операцию «Weld». Ее можно вызвать как в панели инструментов Editable Poly, так и Quad Menu (на мышке).
Обратите внимание, что операция «Weld» вызывается нажатием не на саму надпись, а на изображение окошка, рядом с ней. Это дает нам возможность настроить параметры в окошке с настройками.
Включите во вьюпорте отображение сетки, и внимательно смотрите, какие точки склеиваются при увеличении параметра Weld Threshold. Этот параметр должен быть минимальным, чтобы склеить только незаметные для глаза точки. В секции Numbers of Vertices можно видеть, что даже при минимальном значении параметра Weld Threshold количество точек стало существенно меньше. После того как точки склеены, визуально проверяем модель, и исправляем все ошибочки, если найдем.
Затем нужно обнулить Pivot. Для этого выделяем модель головы, заходим в панель Hierarchy, выравниваем Pivot по центру модели (Center to Object) и сбрасываем трансформации вращения (Align to World).
После этого, применяем к модели модификатор Symmetry, делаем Reset XForm (это в панели Utilites) и конвертируем в Editable Poly. Последние операции с Pivot, я заменяю скриптом «Collapse Selected To Poly At Origin» из бесплатного пакета TIM Scripts. Для этого я помещаю модель центром в нулевую точку и применяю скрипт. Он сбрасывает все скрытые трансформации и преобразует модель в чистенький и готовый к анимации Editable Poly и помечает Pivot в кулевую точку, за один клик.
Кости и скин
Способ то конечно морфинговый, да не совсем. Челюсть будет управляться костью. Поэтому начнем работу с создания костей и скина. Вот и делаем. Создаем кости для шеи, головы и челюсти. Челюстную кость линкуем к кости головы. Сустав между шейной и головной костью должен находиться примерно в месте последнего шейного позвонка. Сустав челюсти должен быть в районе уха. В моем случае, сустав челюсти расположен прямо в месте шейного позвонка.
Теперь применяем модификатор «Skin» и скиним нижнюю челюсть. Помещаем в скин три кости, шейную головную и челюстную. Включаем «Edit Envelopes». Чтобы была возможность работать с точками, в настройках модификатора включаем галку «Vertices». Выбираем енвелоп головы и выделяем все точки. Устанавливаем вес точек на 100%, то есть 1.
Чтобы удобнее было работать с нижней челюстью, сделайте анимацию кадров на 5, это позволит открывать челюсть, не выходя из редактирования енвелопов. Теперь выбираем енвелоп челюсти и выделяем точки, которые будем ему назначать. Это удобнее делать выделением типа Lasso. Грубо выделяем точки района нижней челючти. Так же выделяем точки полости рта внизу и устанавливаем вес =1. Теперь точки нижней челюсти назначены на кость.
При выделении мы захватили точки верхней губы, нужно исключить их из выделения. Для этого выделяем точку посередине верхней губы и увеличиваем область выделения кнопкой Grow. Устанавливаем вес на 0 и точки возвращаются под влияние головной кости.
(Копка Grow, как и ряд других нововведений, появилась в скине сравнительно недавно, и в более ранних версиях макса ее не было. Чтобы, все же иметь возможность увеличивать и уменьшать выделение точек в скине, можно воспользоваться скриптами из пакета TIM Scripts, в нем есть эти инструменты).
А теперь самое интересное. Просто включаем инструмент «Paint Weights» и смягчаем вес точек вокруг рта. (Обратите внимание, галка «Paint Blend Weights» под кнопкой «Paint Weights» должна быть включена).
С косметическими процедурами закончили, теперь, нужно проделать то же самое в полости рта.
После этакого «лифтинга» наш «пациент» выглядит уже намного лучше. Если есть необходимость, можно поднастроить некоторые точки индивидуально. Не забудьте удалить ключевые кадры с кости, когда мы привяжем ее к управляющему объекту, они будут только мешать. Все, с челюстью закончили.
Управляющий объект
Для управления мимикой будем использовать некую внешнюю контрольную панель состоящую из отдельных управляющих объектов. Управляющий объект представляет собой сплайновые объекты, прямоугольник с кругом внутри.
Перемещения круга ограничены стенками прямоугольника. Сделано это при помощи скрипт контроллеров на позиции круга. Управляющий объект, (я буду называть его «Контрол») взят как есть, с DVD Пола Нила (Paul Neale) «Facial Rigging Techniques». Мы не будем строить его, а просто воспользуемся готовым скриптом Пола:
rec=Rectangle length:10 width:10 name:(uniqueName «FaceControl») wireColor:[0,0,200] displayRenderMesh:false cir=circle radius:1 name:(uniqueName «FaceControlHandle») wireColor:[200,0,0] displayRenderMesh:false cir.parent=rec setTransformLockFlags cir #{3..9} conName=text text:»Control» size:2 wireColor:[0,150,0] pos:[0,5.5,0] alignment:2 displayRenderMesh:false conName.parent=rec addModifier conName (meshSelect()) setTransformLockFlags conName #{1..9} rec.rotation.x_rotation=90 listCon=cir.pos.controller=position_list() scCon=listCon.available.controller=position_script() def=attributes clamp ( parameters clampP ( l type:#float w type:#float x type:#float y type:#float ) ) custAttributes.add scCon def scCon.l.controller=rec.length.controller=bezier_float() scCon.l=10 scCon.w.controller=rec.width.controller=bezier_float() scCon.w=10 scCon.x.controller=listCon[1].x_position.controller=bezier_float() scCon.y.controller=listCon[1].y_position.controller=bezier_float() script=» x=0 y=0 w=this.w/2 l=this.l/2 if this.x>w then (x=-this.x+w;this.x=w) if this.x<-w then (x=-this.x-w;this.x=-w) if this.y>l then (y=-this.y+l;this.y=l) if this.y<-l then (y=-this.y-l;this.y=-l) [x, y, 0] » scCon.script=script
Запустив этот скрипт, вы как раз получите готовый контрол, который будет создан в нулевой точке координат.
Обнуление контроллера челюстной кости
Привязку будем осуществлять через Wire Parameters. Но перед тем как делать привязку, кость нужно сначала подготовить. Дело в том, что при привязке кость может получить существенное смещение (кто пользовался Wire Parameters, поймет, о чем я). Для этого мы применим хитрый прием, и условно назовем его обнуление контролера. Не знаю, получится ли у меня объяснить, но смещение кости при привязке на контрол через Wire Parameters будет происходить потому, что кость, в данное время, имеет свое собственное, определенное значение ориентации, при привязке на контрол, это значение стирается, и кости просто передается новое значение которое дает контрол. Чтобы при привязке смещения не происходило нужно применить List контроллер. List контроллер позволяет добавить в список несколько контроллеров, и каждый последующий контроллер в списке будет потомком по отношению к предыдущему. Получается самая что ни на есть обычная иерархия прямо как у костей. Соответственно на первом контроллере у нас останется текущее положение кости, второй контроллер, по отношению к первому будет иметь нулевые координаты, как потомок, к этому контроллеру мы и будем привязываться. То есть текущее значение ориентации кости у нас ни куда не стирается, а остается на первом в списке контроллере, а влияние контрола будет распространяться только на второй контроллер, и значение первого контроллера будет суммироваться со значением контроллера потомка и таким образом мы избегаем непредсказуемой перемены значения при привязке кости на контрол.
Если не понятно, не страшно, перейдем к практике и просто сделаем все то же самое по шагам. Итак, выделяем челюстную кость, и открываем Curve Editor и на Rotation челюстной кости делаем «Assign Controller» и назначаем контроллер Rotation List.
Так у нас получилось, что на Rotation челюстной кости, назначен List Контроллер. Первым и единственным в списке идет контроллер Euler XYZ. Чтобы добавить в список еще один контроллер, выделяем параметр «Available» и назначаем на него еще один Euler XYZ.
Таким образом у нас в списке получилось два контроллера Euler XYZ. Теперь давайте зайдем в панель Motion и для удобства дадим имена этим контроллерам. Первый назовем Zero, а второй Animation.
Если посмотреть ниже, то можно увидеть как раз то, что я пытался объяснить сначала, то есть родительский контролер (Zero) по оси Z имеет значение -101,79, а потомок (Animation), равен 0.
Теперь, если активировать контроллер Animation и задать на него анимацию, то она просто добавится к той, что «зашита» на первом контроллере. (Кстати таким образом можно делать анимацию для различных объектов как бы по слоям, то есть каждый контроллер в списке может иметь абсолютно свой набор ключей анимации).
Ну все, оставляем активным контроллер Animation и переходим непосредственно к привязке.
Привязка челюстной кости к контролу Наша задача, теперь заключается в том, чтобы заставить челюстную кость перемещаться под влиянием контрола. При перемещении контрола вверх-вниз, то есть по локальному Y, кость должна вращаться по ее локальному Z. Вот и выделяем контрол, заходим в Wire Parameters и находим там параметр позиции контрола по Y.
И привязываем этот параметр к Z вращению кости, вот того самого второго контроллера-потомка «Animation».
При прямой привязке, кость реагирует на перемещения контрола слишком интенсивно, поэтому привязку осуществляем через понижающий множитель, то есть умножаем параметр Y_Position на 0.1
Теперь не закрывая этого окна привязываем X_Position контрола к Y_Rotation кости с тем же множителем.
Нижняя челюсть готова.
Создание и привязка морф-целей для губ
Теперь можно смело приступать к созданию морф-целей. На данном этапе нам нужно создать четыре цели, для управления губами правой половины лица. Для этого просто копируем голову, удаляем с нее все модификаторы. Понадобятся цели с губами «в трубочку», с сильно растянутыми губами, губами выгнутыми вниз и губами выгнутыми вверх.
Первые цели готовы, можно приступать непосредственно к морфингу. Итак, добавляем модификатор Morpher. Но Morpher должен быть ниже модификатора Skin в стеке, то есть, добавляем его сразу после Editable Poly. И тут же заводим туда первые морф-цели.
Дам маленький совет, при настройке морф-целей, нужно постоянно перегружать их в морфере, чтобы увидеть изменения. Чтобы миновать это неудобство, включите галку Automatically Reload Targets. Таким образом в риалтайме вы сможете видеть на модели все изменения производимые с морф-целью.
Сразу же копируем и располагаем контролы возле модели и даем им удобные названия.
Немножко поясню, как работает контрол. В дефолтном положении контрол находится в нулевой точке по локальной оси. Если его смещать вверх, (по Y) то он уйдет в положительную сторону, если вниз, то в отрицательную. Так же, если смещать контрол вправо (по X), он уйдет в полюс, влево, в минус. Соответственно у нас есть четыре морф-цели, которые будут привязываться ко всем трансформациям контрола.
Первым делом привяжем ту цель, которая сводит губы «в трубочку». Выделяем контрол для правой половины губ и идем в Wire Paramrters и находим параметр X позиции.
Тащим связь на модель и привязываемся к первой морф-цели.
Влияние контрола получается очень слабым, поэтому параметр X_Position подключаем через множитель. В данном случае этот множитель 20. В принципе могу объяснить почему. Дело в том, что при создании контрола, его размеры указаны так, что сам управляющий объект – круг, можно смещать на 5 единиц от центра в каждую сторону. Пределы работы морф-цели от 0 до 100, оттуда и этот множитель, то есть 5 единиц умножть на множитель 20, получаем как раз 100 единиц на управление морф-целью.
Не закрывая этого окна привязываем остальные цели. На этот же X_Position привяжем цель которая растягивает губы. То же самое, только учтем, что в этом случае контрол смещается в минус, соответственно знак меняется на отрицательный.
Теперь, точно так же привязываем цель с губами согнутыми вниз. Привязку делаем по оси Y в отрицательную сторону.
И цель с губами вверх, в положительную сторону.
С губами закончили, должно получиться что-то вроде этого.
Создание и привязка морф-целей для глаз
Дальше, проделываем, то же самое, что и в прошлый раз. Копируем модель головы, и создаем морф-цели для глаз. Поясню, как работают морфы для глаз. Как работает морфинг? Он перемещает точки модели из положения одной цели, в положение другой цели, но перемещение происходит по прямой линии, это значит, если сделать две цели на открытый глаз и на закрытый, и сделать морфинг, то веко пройдет сквозь глазное яблоко.
Но нам-то нужно чтобы веко закрывалось по окружности, ну или по крайней мере, чтобы оно огибало выпуклый глаз персонажа. Специально для этого сделаем, морф-цель, полузакрытого века, на самой выпуклой точке. А теперь перечислю какие морфы понадобятся (на картинке с низу вверх): полузакрытое веко (для огибания глазного яблока), закрытое веко, сильно открытое веко, закрытое нижнее веко, сильно открытое нижнее веко и еще две дополнительные цели – смещение век вправо и смещение век влево. Эти две дополнительные цели позволят сделать анимацию глаз более живой, используя движение контрола в стороны.
Назначаем цели морферу и начинаем привязывать их к контролу правого глаза. Тут, пожалуйста повнимательнее, из-за огибания веком глаза нам придется поработать с целью полузакрытого века. По ходу повествования, я обращу на это внимание. Итак выделяем глазной контрол и идем в Wire Paramers.
Так же, как и в прошлые разы, привязываем Y_Position контрола к первой цели, с полузакрытым веком.
Эту цель пропишем позже, а пока просто устанавливаем ее на 100% и пишем Y_Position=100
И связываем остальные цели. На Y_Position вторую цель с закрытым веком.
На Y_Position третью цель с сильно открытым веком.
Вот сейчас внимание, займемся первой целью, с полузакрытым веком. Если сейчас подвигать контрол по Y, то видно, что морфинг работает не правильно. Это потому, что мы установили первую морф-цель (с полузакрытым веком) на 100% и она добавляется к остальным целям. Вот и займемся ею. Вернемся к первой цели и пропишем туда вместо «Y_Position=100» такое выраженьице «if Y_Position >= 0 then (100-Y_Position*20) else (100+Y_Position*20)»
Выраженьице это значит, что если положение контрола по Y больше или равно 0, то значение, которое будет передано на морф цель будет 100% минус положение контрола (от 0 до 5) помноженное на коэфициент 20, иначе (если контрол уйдет вниз), к 100% прибавится значение положения контрола (отрицательное естественно, а значит оно отнимется от 100) помноженное на 20. Например при контроле задранном вверх первая цель будет убрана на 0, а выражение можно понять так: «100%-(5*20)» то есть 0. Или же при контроле опущенном вниз первая цель будет так же убрана на 0, а выражение можно понять так: «100%+(-5*20)» то есть опять же 0. Теперь наши цели будут работать правильно, и глаз будет закрываться корректно, не проходя сквозь глазное яблоко.
Все, заводим остальные цели. Нижнее веко, при опускании контрола, поднимается (коэффициент я поставил не 20, а 15, чтобы веко не поднималось слишком сильно):
Нижнее веко сильно открывается (опускается) при поднятии контрола вверх:
Движение век вправо, при движении контрола вправо (в плюс по X)
Движение век влево при движении контрола влево (в минус по X)
Веки готовы.
Создание и привязка морф-целей для бровей
Ну а теперь самый последний и самый сложный этап работы. Брови. Принцип работы бровей будет немного другой, потому что привязка будет не к одной оси, а к двум, поэтому сначала рассмотрим как это работает. При поднятии контрола вверх, поднимается центральная часть брови, при движении поднятого конторла в лево, центральная часть брови опускается, но поднимается левый край брови. При движении поднятого конрола вправо, так же опускаются центр и левый край брови, но поднимается правый край. То же, и при опущенном контроле. Так же, если подвигать в стороны контрол находящийся в нулевой точке, то есть в центре, бровь будет смещаться влево-вправо.
Таким образом, достигается очень гибкое управление бровью.
Теперь рассмотрим один из узлов более детально. Для примера возьмем цель, которая поднимает центр века вверх. Суть данного приема в следующем: при движении контрола (из нулевой точки) вверх, добавляется морф-цель с поднятой серединой века. Но при движении поднятого контрола в стороны, вес этой цели сходит на ноль. Следовательно, каждая морф-цель века реагирует как на положение контрола по Y, так и по X. Для того, чтобы реализовать привязку к двум осям, вместо одной, нам нужно будет немного изменить контроллеры управляющие каждой целью. Сейчас начнем это делать и походу, я поясню, что конкретно нам дает смена контроллера.
Но сначала, надо сделать сами морфы. Нам нужны следующие цели: (с низу вверх) поднятый центр брови, поднятый носовой край брови, поднятый височный край брови, опущенный центр брови, опущенный носовой край брови, опущенный височный край брови, бровь смещенная к носу, бровь смещенная к виску.
Теперь добавляем эти цели в Morpher. Постарайтесь сделать последовательность как у меня, целей много, можно легко запутаться в них. Можно править контроллеры. Как я уже говорил, нам нужно сделать управление одной целью, зависимой от двух параметров, X_Position и Y_Position контрола. Сейчас пока начнем делать, а там я растолкую, что к чему. Итак, выделяем модель головы и идем в Curve Editor и находим там наш Morpher. Выделите все цели бровей, кроме двух последних (бровь влево и бровь вправо) и назначьте им контроллер Float List.
Рассмотрим, что это дает. Как видно на рисунке ниже, у нас в списке есть контроллер Bezier Float. Однако есть и еще один параметр Weight: Bezier Float. Что накое Bezier Float, надеюсь понятно, это собственно контроллер который будет управлять добавлением морф-цели, а вот Weight: Bezier Float ничто иное как вес контроллера в списке. То есть даже если морф-цель в контроллере выведена на 100%, то с помощью веса все равно можно свести ее на нет.
Если все понятно, то поехали делать связи. (Если не понятно, то все равно поехали, по ходу прояснится). Итак, закрываем Curve Editor, выделяем контрол для правой брови, идем в Were Parameters и проделываем все как в прошлые разы, только привязываем Y_position контрола к Bezier Float первой бровной цели (поднятая середина брови).
Привязываем Y_Position к контроллеру Float Wire через множитель, как обычно 20.
А теперь, новый прием, внимание! Тут же, X_Position контрола, привязываем к весу контроллера морф-цели Weight: Float Wire. Выражение для управления весом пмшем: «if X_Position <=0 then (1+(X_Position*.2)) else (1-(X_Position*.2))» Это выражение означает, что если контрол по X (по горизронтали) ушел в минусовую сторону, то значение которому будет равен вес контроллера будет 1 (это вес контроллера от 0 до 1) плюс положение контрола по X (может быть от 0 до -5) которое помножено на понижающий коэффициент 0.2, иначе, если контрол ушел в плюс, то значение будет 1 (максимальное значение веса) минус положение контрола по X (возможно от 0 до 5) пониженное через множитель на 0.2 Например если контрол поднять вверх, и сдвинуть его влево (в минус), то морф-цель будет равняться 100%, но вес всего контроллера дудет равен 0, и значит и влияние морф-цели будет равно 0, а выражение следует понимать как «1+(-5*0.2)» в итоге 0. Или если контрол поднять вверх и сдвинуть вправо (в плюс), то морф-цель выведется на 100%, но вес, так же будет 0, а выражение можно понять как «1-(5*0.2)» в итоге опять же 0.
Таким образом, мы привязали управление морф-целью к двум параметрам, к положению контрола по Y и по X.
Выражения для краев бровей, будут немного отличаться, потому, что нам нужно, чтобы край брови поднимался, только при движении контрола в какую-то одну сторону. Поэтому, не закрывая окна привязываем следующую цель, с поднятым краем брови со стороны носа. Выбираем обратно Y_Position, и вяжем его на Float Wire следующей цели с множителем 20.
И так же переходим к X_Position и так же, вяжем его на Weight: Float Wire. Только выражение пишем: «if X_Position <=0 then X_Position=0 else X_Position*.2» Надеюсь, к этому времени вы уже стали великими программерами и выражения больше «разжевывать» не придется.
И опять переходим обратно к Y_Position и вяжем его с Float Wire следующей цели (поднятый височный край брови) с множителем 20.
И опять вяжем X_Position на Weight: Float Wire и выражение пишем: «if X_Position <=0 then -X_Position*0.2 else X_Position=0»
С поднятиями брови закончили.
Опускание брови делается точно так же. Я пошагово объясню что делать но уже обойдемся без картинок.
Итак, разворачиваем в списке следующую цель, опускание центра брови, выбираем Y_Position и вяжем его к Float Wire. Выражение пишем: «-Y_Position*20» Открываем Weihgts и вяжем X_Position на Weight: Float Wire. Выражение пишем: «if X_Position <=0 then (1+(X_Position*.2)) else (1-(X_Position*.2))»
Цель опускание носового края брови. Выбираем Y_Position и вяжем его к Float Wire. Выражение пишем: «-Y_Position*20» Открываем Weihgts и вяжем X_Position на Weight: Float Wire. Выражение пишем: «if X_Position <=0 then X_Position=0 else X_Position*0.2»
Цель опускание височного края брови. Выбираем Y_Position и вяжем его к Float Wire. Выражение пишем: «-Y_Position*20» Открываем Weihgts и вяжем X_Position на Weight: Float Wire. Выражение пишем: «if X_Position <=0 then -X_Position*.2 else X_Position=0»
Готово.
Привязываем оставшиеся две цели. Они смещают бровь влево-вправо. Тут все просто:
Цель смещение брови к носу. Выбираем X_Position и вяжем его к цели. Выражение пишем: «Y_Position*20»
Цель смещение брови к виску. Выбираем X_Position и вяжем его к цели. Выражение пишем: «-Y_Position*20»
Тут можно так же, как и на предыдущих целях, сделать, чтобы от движения по Y, влияние двух последних целей угасало, Но мне это показалось лишним, и я этого делать не стал.
Ура, половину победили! Теперь займемся второй половиной.
Зеркальное копирование морф целей Ну, что ж, самое трудное позади. Половина лица у нас готова и правильно работает. Осталось сделать все то же самое на другую половину. Для начала нужно подготовить морф-цели, для левой половины лица, но тут есть одно «но». Дело в том, что если просто отзеркалить модель, то ничего не изменится, потому, что точки модели так же зеркалятся, сохраняя значение на позиции. То есть все точки имеют то же имя, и ту же позицию только в зеркальном отображении. Поэтому обычное зеркальное копирование тут не получится. Вот для этого мы и подготавливали модель в самом начале урока.
Для зеркального копирования морф целей, возьмем еще один скрипт Пола Нила:
rightAr=#() leftAr=#() centerAr=#() tempAr=#() fn getMirrorData threshold:0.05= ( rightAr=#() leftAr=#() centerAr=#() tempAr=#() baseObj=$.baseObject vertSel=(polyOp.getVertSelection baseObj)as array for i = 1 to vertSel.count do ( pos=polyOp.getVert baseObj vertSel
if pos.x < -threshold then ( append rightAr vertSel ) if pos.x < threshold and pos.x > -threshold then ( append centerAr vertSel ) if pos.x > threshold then ( append tempAr vertSel ) ) for i in rightAr do ( pos=polyOp.getVert baseObj i found=false for c = 1 to tempAr.count do ( cPos=(polyOp.getVert baseObj tempAr[c])*[-1,1,1] dist=distance cPos pos if dist< threshold then ( append leftAr tempAr[c] deleteItem tempAr c found=true exit ) ) if found==false then append leftAr undefined ) #(rightAr.count,leftAr.count,centerAr.count) ) fn mirrorMorph symmetry:false= ( for i = 1 to rightAr.count do ( if leftAr!=undefined do ( Rpos=polyOp.getVert $ rightAr if symmetry==false then Lpos=polyOp.getVert $ leftAr polyOp.setVert $ leftAr (((Rpos-$.pos)*[-1,1,1])+$.pos) if symmetry==false then polyOp.setVert $ rightAr (((Lpos-$.pos)*[-1,1,1])+$.pos) ) ) if symmetry==false then ( for i = 1 to centerAr.count do ( Cpos=polyOp.getVert $ centerAr polyOp.setVert $ centerAr (((Cpos-$.pos)*[-1,1,1])+$.pos) ) )else ( for i = 1 to centerAr.count do ( Cpos=polyOp.getVert $ centerAr polyOp.setVert $ centerAr (((Cpos-$.pos)*[0,1,1])+$.pos) ) ) )
Суть работы скрипта в следующем: сначала мы показываем ему нашу модель (которая должна быть симметричной), и он запоминает ее. Причем запоминает он ее не просто всю, а делит ее пополам (относительно Pivot, примерно как модификатор Symmetry), находит и запоминает противоположные (зеркальные) точки. Для поиска зеркальных точек в самом начале скрипта имеется параметр «threshold:0.01». 0.01 означает, что модель должна быть практически идеально симметричной, в противном случае можно немного увеличить threshold. Потом мы берем любую морф-цель, копируем (обычным способом) и применяем скрипт. Скрипт на основе данных об исходной модели, зеркально перекидывает данные о положении точек с левой половины на правую, а с правой на левую. Таким образом, точки модели остаются в том же порядке, по позиция их зеркально меняется. Вот и получается, что цели зеркалятся корректно.
Теперь объясню, как пользоваться.
- 1. Сохраните этот скрипт как «PEN_mirrorVerts.ms» (на самом деле имя не имеет значения). Потом запустите его, через MaxScript->Run Script. 2. Выделите модель головы, перейдите в стеке модификаторов в самое начало к Editable Poly (модель обязательно должна быть в Editable Poly) и перейдите на уровень Vertex. Выделите точки модели (точки не обязательно выделять все, главное, чтобы были выделены точки затронутые морфингом). В данном случае лучше выделить все точки. 3. Откройте MaxScript Listener, (MaxScript-> MaxScript Listener, по умолчанию F11) и напишите в нем команду которая запускает функцию запоминающую модель: «getMirrorData()» (без кавычек), нажмите ввод. Выделенные точки модели будут запомнены. Если все верно, то Listener покажет что-то типа этого: «#(384, 384, 78)». Это значит, что 384 точек справа соответствует 384 точкам слева, и 78 точек по центру. Выйдете из подобъекта Vertex. 4. Теперь возьмите любую морф-цель. Скопируйте ее и разместите рядышком. Она (цель для отзеркаливания) должна выть выделена. Идем в Listener и пишем «mirrorMorph()»(без кавычек), ввод. Оп, модель отзеркалилась! 5. Если что-то пошло не так и скрипт не сработал, значит либо что-то не так с моделью, либо модель не очень симметричная. Попробуйте запустить скрипт немного увеличив параметр threshold и проделайте все сначала.
Теперь два слова о том, как я пользуюсь этим скриптом. Я сохранил скрипт с именем «PEN_mirrorVerts.ms» и разместил его в 3dsmax root/scripts/startup, написал макроскрипт под названием «PEN_mirrorVerts.mcr»:
macroScript GetMirrorData buttontext:»GetMirrorData» category:»Morph Mirror Targets» internalCategory:»Morph Mirror Targets» tooltip:»GetMirrorData» ( getMirrorData() ) macroScript MirrorMorph buttontext:»MirrorMorph» category:»Morph Mirror Targets» internalCategory:»Morph Mirror Targets» tooltip:»MirrorMorph» ( mirrorMorph() )
и разместил его в 3dsmax root/UI/MacroScripts. После чего добавил его себе в Quad Menu.
И теперь, этот инструмент у меня теперь всегда наготове, не надо ничего запускать и ничего писать.
Зеркальное копирования морф-целей Но вернемся к нашим «зайцам». Выделите модель головы, войдите в подобъект Vertex и выделите все точки. Откройте Listener и напишите в нем getMirrorData(), нажмите ввод.
Теперь скопируйте морф-цель (можете скопировать сразу все морф-цели), и выделяя их по очереди пишем в Listener mirrorMorph(), нажимаем ввод.
Таким образом нужно подготовить все морф-цели.
Настройка второй половины лица Когда все зеркальные цели готовы и удобным образом названы (!), добавляем их по порядку в Morpher и начинаем привязывать. Делается это точно так же как и при настройке первой половины. Поэтому растолковывать тут больше ничего не буду. Просто дам параметры для всех остальных целей.
Губы (контрол для левой половины губ) X_Position –> цель с губами «в трубочку», выражение: -X_Position*20 X_Position –> цель с губами растянутыми в сторону, выражение: X_Position*20 Y_Position –> цель с губами выгнутыми вниз, выражение: -Y_Position*20 Y_Position –> цель с губами выгнутыми вверх, выражение: Y_Position*20
Глаз (контрол для левого глаза) Y_Position –> цель с полузакрытым верхним веком, выражение: if Y_Position >= 0 then (100-Y_Position*20) else (100+Y_Position*20) Y_Position –> цель с закрытым верхним веком, выражение: -Y_Position *20 Y_Position –> цель с открытым верхним веком, выражение: Y_Position *20 Y_Position –> цель с закрытым нижним веком, выражение: -Y_Position *15 Y_Position –> цель с открытым нижним веком, выражение: Y_Position *20 X_Position –> цель с веком смещенным в сторону носа, выражение: -X_Position *20 X_Position –> цель с веком смещенным в сторону виска, выражение: X_Position *20
Бровь (контрол для левой брови) Не забываем назначать List контроллеры. Y_Position –> цель с поднятым центром брови, выражение: Y_Position *20 X_Position –> цель с поднятым центром брови, выражение: if X_Position <=0 then (1+(X_Position*.2)) else (1-(X_Position*.2)) Y_Position –> цель с поднятым краем брови со стороны носа, выражение: Y_Position *20 X_Position –> цель с поднятым краем брови со стороны носа, выражение: if X_Position <=0 then -X_Position*.2 else X_Position=0 Y_Position –> цель с поднятым краем брови со стороны виска, выражение: Y_Position *20 X_Position –> цель с поднятым краем брови со стороны виска, выражение: if X_Position <=0 then X_Position=0 else X_Position*.2
Y_Position –> цель с опущенным центром брови, выражение: -Y_Position *20 X_Position –> цель с опущенным центром брови, выражение: if X_Position <=0 then (1+(X_Position*.2)) else (1-(X_Position*.2)) Y_Position –> цель с опущенным краем брови со стороны носа, выражение: -Y_Position *20 X_Position –> цель с опущенным краем брови со стороны носа, выражение: if X_Position <=0 then -X_Position*.2 else X_Position=0 Y_Position –> цель с опущенным краем брови со стороны виска, выражение: -Y_Position *20 X_Position –> цель с опущенным краем брови со стороны виска, выражение: if X_Position <=0 then X_Position=0 else X_Position*.2
X_Position –> цель с бровью смещенной в сторону носа, выражение: -X_Position *20 X_Position –> цель с бровью смещенной в сторону виска, выражение: X_Position*20
Ну вот, наше лицо полностью готово готово! Не забывайте, что вы можете добавлять сюда какие угодно цели, на свое усмотрение, «губы в дудку» и другие специальные цели для реализации фонемных особенностей, морщины и даже язык, можно сделать подобным образом. Так что, тут вам все карты, как говорится.
Если после этого урока у вас не пропало желание работать в 3dsmax, то могу вас поздравить, в ваших жилах течет крепкий бульон! Удачных работ и профессионального роста вам. Пока!
Морфинг с Adobe Premiere Pro
Закажи видео для фейсбук, инстаграм или просто для себя и друзей
Простейший видео клип с эффектом морфинга. Некий человек, занимающийся поиском камней (камни не простые) попросил меня научить его делать слайд шоу из фотографий, на которых изображены камни. Его вдохновила одна работа которую он увидел в интернете. Конечно это могут быть не только камни, в первую очередь это лица людей и любые другие предметы. Сделать морфинг из серии фотографий с помощью компьютерных программ дело не сложное, но в данном случае нужно было сделать современный широкоформатный видео клип, а тут нужны некоторые тонкости, о которых я расскажу в уроке и предоставлю некоторые программы, которые я использовал, они будут в архиве, ссылка внизу статьи. Сам видео клип вы тоже увидите тут.
На этом уроке мы не будем вдаваться в подробности цветокоррекции и предварительной обработке самих фотографий, это отдельный вопрос. Я представляю самый простейший прием морфинга доступный каждому пользователю компьютера. Что касается динамического видео морфинга с использованием плагина RE:Flex к Adobe After Effects то отдельный разговор, подробный урок мы можем провести индивидуально в зависимости от уровня знаний каждого отдельного человека.
Мы пойдем в этой работе самым легким и доступным для всех путем используя для конечного видео монтажа программу Adobe Premiere, хотя сразу скажу, что монтажную программу можно использовать любую, по своим функциям они мало чем отличаются друг от друга. Для начала разберемся что из себя представляет морфинг.
Морфинг, это технология в компьютерной анимации, визуальный эффект, создающий впечатление плавной трансформации одного объекта в другой. Используется в игровом и телевизионном кино, в телевизионной рекламе. Для создания эффекта используются как минимум два изображения, на которых художник задаёт в зависимости от использующегося программного обеспечения опорные фигуры или ключевые точки.
Связаться с администратором сайта, посмотреть некоторые работы можно через социальные сети фейсбук, инстаграм
Технология морфинга видео в целом мало отличается от морфинга статичных изображений за тем исключением, что художнику приходится корректировать расположение маркеров по времени. В обычной видео монтажной программе сделать такой эффект невозможно, исключением являются программы видео композитинга к примеру, Adobe After Effects в которой эффект морфинга осуществляется с помощью наложения динамических слоев.
В заключении хочу напомнить, что мы делаем подобные уроки ко всем сложным программам индивидуально, так что обращайтесь или через электронную почту или оставьте свой комментарий с указанным вашим адресом, мы сами с вами свяжемся. Подписаться на видео канал тут
Посмотреть сам клип с камнями
Морфинг в программной среде After Effects
Под морфингом понимают постепенный переход от одной картинки к другой на основе применения главных точек объектов, представленных на обоих анимированных изображениях. В данном случае мы будем работать с фильтром Reshape, чтобы выполнить процедуру морфинга. Простейший морфинг насчитывает всего три этапа, выполняемые одновременно. Оригинальное изображение деформируется до тех пор, пока полностью не приобретает внешний вид финального графического объекта. В свою очередь, итоговое изображение тоже проходит через все эти изменения только в обратном направлении. В процессе деформации слоев характеристики их прозрачности постоянно меняются. Если конструктор намерен получить видеозапись для морфинга, очень важно, чтобы используемый фон был однотипным. Идеальным вариантом может стать синяя или зеленая цветовая гамма, что существенно упростит кеинг. Также изображение должно находиться отдельно от фона. Дело в том, что морфинг видоизменяет картинку вместе со всеми её фоновыми объектами. Лучшего результата можно добиться только в том случае, когда пользователь берет за основу похожие источники. Морфинг одного человека в другого всегда будет выглядеть наилучшим образом, если они оба будут находиться в похожих позах и положениях по отношению к фотографу. В противном случае результат уж точно вас не порадует. Да, всё это звучит довольно сложно и запутано, поэтому лучше детальнее разобраться с помощью примера. Сделаем морфинг человека в овцу. Чтобы процесс обработки не доставил нам массу дополнительных хлопот, я подобрал парочку исходников с похожими характеристиками и размерами. В процессе кеинга мне удалось добиться максимально выгодного расположения объектов, поэтому теперь они занимают одинаковые территории. Инструмент time-remapping позволил мне с максимально возможной точностью скоординировать их поворот голов. Теперь можно приступать к делу! Уменьшить исходники до нужных размеров можно с помощью рендеринга альфа канала и видео. Для применения полученных объектов на практике необходимо сформировать совершенно новую композицию из нескольких файлов. В данном случае речь идет о Jock-Image.mov и Jock-Alpha.mov. Важно, чтобы второй файл занимал самое верхнее положение на рабочем экране. При этом первый слой документа Jock-Image.mov нуждается в присвоении параметра luma track matte. Другие рабочие файлы тоже нуждаются в аналогичных изменениях. Специалисты рекомендуют применить рендеринг к этим композициям на основе uncompressed Quicktimes. Теперь и файлы должны называться совсем по-другому Jock-Source.mov и Sheep-Source.mov.
После завершения выполнения всех подготовительных операций мы сможем сформировать обновленную композицию, которая содержит параметры аналогичные исходным документам и длится всего 6 секунд. Ей необходимо дать имя «Reshape-Morph project» и дополнить двумя обработанными файлами.
Слой Jock необходимо сразу же расположить в самом низу в районе точки под названием frame 0. Тогда слой Sheep необходимо перевести наверх, чтобы его отображение стартовало с третьей секунды. Эффект будет применен как раз между третьей и четвертой секундой. Выделив Jock, нам нужно закрепиться на третьей секунде и применить комбинацию клавиш Ctrl+Shift +D. Затем поработать придется с Sheep уже с зафиксированной четвертой секундой на основе применения вышеупомянутой комбинации клавиш. Должно получиться два отрезка длиной в одну секунду, которые перекрывают друг друга. Именно такое пересечение мы и должны использовать для применения эффекта. Правильное выполнение всех указаний должно привести к результату как на картинке.
Однако это был только первый шаг на пути к созданию качественного морфинга. Теперь вокруг объекта нужно сформировать специальную маску. Необходимо отключить видимость слоя с овцой и перейти на отображение слоя с человеком именно на третьей секунде.
Если на таймлайне пользователь выберет слой с человеком и нажмет на «i», выполнится автоматический переход в точку перехода под названием in-point. Далее нужно перейти к активации инструмента под названием pen tool и изобразить маску вокруг заданного слоя, позаботившись о её закрытии. Проще всего выполнять такую работу на сером фоне, поэтому можно воспользоваться нажатием зеленой клавиши в нижней части экрана для включения зеленого канала и увеличить масштабы отображения рабочего окошка.
Мы знаем, что слою отведено время продолжительностью в одну секунду, поэтому это время можно использовать для нанесения анимирующего эффекта на маску. Выделив слой с человеком, следует нажать кнопку «m», поработать над свитком управления масками и использовать часики, содержащие надпись Mask Path. Применение маски необходимо нам для формирования четкой формы головы, но не для обрезания фона. Для этого в обязательном порядке нужно применить параметр «none», который не позволит нам избавиться от нужных элементов по ошибке. Также необходимо задать маске имя «Jock shape».
Далее выделяем слой, кликаем на «о» и занимаем позицию у точки выхода. Мы можем применить инструмент selection tool, чтобы переместить точки маски в точном соответствии с контурами головы. Особых движений у объекта не наблюдалось, поэтому выполнить это задание можно без дополнительных трудностей. Главный кадр автоматически займет своё место благодаря функциональным возможностям программного средства.
Во время просмотра видео мы сможем оценить движение созданной маски. Теперь остается провести аналогичные манипуляции со слоем, содержащим изображение овцы. Необходимо создать закрытую маску и придать ей эффект анимации. Как именно это делается, вам уже известно.
Однако в данном случае создать маску, которая будет идеально соответствовать передвижениям овцы, можно с использованием большего количества главных кадров, а не двух, как в прошлый раз. Даем ей имя «Sheep Shape» и не забываем о параметре «none».
Теперь каждый объект располагает своей собственной маской, способной повторить анимированные движения. Продолжаем работать над морфингом. Необходимо выполнить процедуру копирования маски одного слоя с перенесением в другой слой. В результате подобных манипуляций каждый слой должен получить две маски. Скопированные объекты лучше переименовать и присвоить им параметр «none».
Рабочее окно должно содержать контуры сформированных масок.
Делаем слой с овцой видимым, а к слою с изображением человека применяем функцию Reshape. Прежде всего, изменению подлежит параметр под названием «source mask». Здесь будет располагаться стартовая точка, определяющая часть изображения подлежащего морфингу.
На слое с овцой меняем параметр «destination mask». Нам нужны абсолютно все объекты, содержащиеся в маске под названием Jock Shape. Что же касается слоя с человеком, то его деформации будут происходить в строгом соответствии с параметрами маски Sheep Shape. Параметру границы необходимо присвоить значение «none», что действие команды Reshape было немного ограниченным. В данном случае такие манипуляции не нужны, так как видео-элементы отделены от фона. Однако когда такие условия не выполняются, применение эффекта границы обязательно, чтобы избежать его влияния на задний фон. Анимация морфинга находится под контролем параметра «percent». С ним всегда можно немного поэкспериментировать, чтобы добиться потрясающих результатов.
В любом случае значение в размере ста процентов нас не устраивает, но четких рекомендаций по поводу назначения я давать не буду. Для максимальной реалистичности перехода необходимо позаботиться о том, чтобы свойства слоев с овцой и человеком были одинаковыми, а также указать детальные характеристики общих для них параметров. Для выполнения такой процедуры мы применим точки соответствия. Это позволит нам определиться с общими точками. Настройки по умолчанию предусматривают использование одной пары таких точек совпадения, но для благоприятных результатов нужно применить не меньше двадцати пар.
В данном случае особое значение имеет не аккуратность маски, а точность расположения точек соответствия. Выполнять их добавление лучше всего вручную и очень медленно. Однако пара дельных советов поможет вам существенно облегчить такую работу.
Прежде всего, через окно управления эффектами выключается функция Reshape. Его включение вовсе необязательно для изменения настроек. Кроме того, нужно позаботиться о том, чтобы слой стал видимым.
Далее включаем в работу параметр маски Lock и присваиваем ей Hide locked masks.
Векторы совпадения отображены черным цветом, поэтому композиция должна приобрести более наглядный серый цвет. Это сделать довольно просто на основе комбинации Ctrl + Shift + B. Далее воспользоваться особенностями эффекта Reshape стоит через управленческое окно. Мы заранее отключили эффект, поэтому композиционные окна представлены двумя разноцветными контурам: красный — первый объект и желтый – итоговый вариант. Квадратные элементы, представленные вдоль контуров, являются нашими точками соответствия. Что же касается связующей линии, то она представляет собой направление морфинга.
Чтобы добавить такие точки, необходимо зафиксировать кнопку Alt и нажать мышкой по заданной точке контура. Если все манипуляции были выполнены корректно, на экране отобразится новая пара нужных точек. С помощью этой же функции может происходить удаление ненужных элементов. Для переноса точки в другое место нужно перетащить заданный квадратик с помощью мышки.
Теперь нужно проставить точки соответствия, связывающие нос человека с подбородком овечки. Достаточно просто следовать указаниям на рисунке.
Если вы не хотите, чтобы картинка получилась смазанной, нужно устранить все пересекающиеся точки. Внешний вид итогового изображения полностью зависит от расположения точек соответствия. В частности речь идет о черных линиях, которые связывают точки двух объектов. Малейшая ошибка может очень сильно подпортить конечный результат. Квадратная форма отображаемых точек показывает, что программное средство ААЕ применяет linear interpolation с целью придания ключам эффекта анимации.
Для плавности изображения всегда можно применить Метод интерполяции с присвоением значения «smooth». Для того чтобы это сделать, можно навести мышку на заданную точку и использовать «Шифт». Тогда при нажатии на точку можно будет увидеть, как квадрат превратится в кружок, как свидетельство применения интерполяции.
Пользователь может менять различные точки по своему желанию. После завершения такого этапа работы можно сделать слой видимым для просмотра перехода.
После этого необходимо будет подключить эффект Reshape и задать ему 100 пунктов по параметру Percent. Оценив результат, вы можете хорошенько подкорректировать точки. Так можно устранить то, что вам не нравится, чтобы получить желаемый результат.
Для старта процедуры изменения точек соответствия нужно определиться с параметрами эффектов типа Reshape в специальном управленческом окне.
Необходимо установить главные кадры для рабочего параметра под названием Percent: на третьей секунде – 0 процентов, на моменте 3:24 – 100 процентов. В результате главные кадры используют анимацию для того, чтобы превратить человека в овцу.
Производить переход и настройку точек соответствия нужно до тех пор, пока результат не станет таким, как вам нужно. Далее нужно сделать то же самое со слоем, на котором изображена овца. Если вам повезет, можно просто копировать уже созданный эффект с предыдущего слоя, но всё далеко всегда происходит, как следует. Конечно же, не все точки могут быть перенесены с требуемой точностью. Как следствие, работу нужно будет начать заново. Займемся применением эффекта Reshape и настройкой соответствующих параметров. Source shape получит новое название Sheep Shape, параметр Пункта назначения станет Jock Shape, а значение функции boundary mask должно стать «none».
Важно, чтобы все условия были выполнены с требуемой точностью, ведь слой с овцой изначально будет иметь форму аналогичную слою с человеком, пока окончательно не приобретет свой оригинальный облик. Когда слой Jock постепенно переходит от 0 к 100 процентам, слой Sheep выполняет обратную процедуру. Нам необходимо полностью повторить цикл рабочих процедур. Установим точки соответствия по контуру с использованием кнопки ALT и мышки. Комбинация клавиши «Шифт» и мышки поможет изменить показатели интерполяции на более плавные. После этого останется равномерно распределить рабочие точки. Делаем слой и эффект видимыми, а потом корректируем результаты по своему усмотрению.
После завершения работы нужно убедиться в том, чтобы вы были довольны результатом, и проставить главные кадры для эффекта.
Далее займемся приданием прозрачности рабочим слоям. Чтобы ускорить выполнение этого задания нужно применить рендеринг обоих переходов через отдельные файлы. Дальнейшую работу нужно было продолжить уже с заданными элементами.
С момента 3:00 до 3:24 морфу должен быть присвоен параметр work area. Сначала необходимо отключить видимость слоя с овечкой и уделить немного внимания именно тем слоям, которые содержат изображение человека. После этого отключим видимость Jock, чтобы выполнить рендеринг слоя с овцой. Настройки рендера обязательно должны содержать функцию work area only. В данном случае файлы получили такие названия: Jock morph component.mov и Sheep morph component.mov.
Далее импортируем все файлы в проект. Между двумя имеющимися файлами морфинга нужно сформировать основу для качественного и плавного перехода. Через Project window мы можем выделить созданную композицию и создать её копию. Присваиваем имя «Reshape — Morph Transition».
Теперь композицию можно открыть и устранить из неё видеофрагмент, располагающийся внутри. Именно он ранее был подвержен эффекту Reshape. Два обработанных файла можно вставить в композицию, затем перейти к точке третьей секунды и обрезать их для заполнения пустоты. Слой с овцой располагается выше слоя с человеком. Фактически мы занимаемся не изменением композиции, а попросту заменяем рабочие фрагменты результатами рендеринга.
Переход может быть оформлен на основе практически любого эффекта, который придется вам по вкусу. Пример был выполнен с использованием «gradient wipe». Для этого на выделенном слое с овцой необходимо запустить работу функции Sheep morph component. Также лучше присвоить 50 процентов активности параметру «transition softness».
Устанавливаем главные параметры свойства Transition complete в размере 100% (3:00) и 0% (3:24).
Для просмотра итогового результата используем RAM preview и устраняем все неполадки. Настройки можно производить до тех пор, пока объект не станет таким, как вам нужно. Конвертирование главных кадров может быть выполнено с использованием «easy ease» или вручную.
Работа, которую мы с вами проделали только что представляет собой простейший вариант эффекта, но программное средство ААЕ может предоставить своим пользователям куда более интересные результаты. В примере мы создали две маски для слоев с овцой и человеком, которые позволяли охватить тело и голову в виде единого целого.
Для создания идеального морфа этот урок можно использовать в качестве основы. Однако тело лучше всего разбить на несколько определенных зон. Можно создавать отдельные зоны для глаз, носа, губ и не только. Мы точно также можем сформировать вокруг них специальные маски с применением анимации и параметра Reshape. Так мы добьемся плавного перехода между глазами и носом человека и овечки или любого другого элемента тела. Настройка скорости перехода выполняется с использованием параметров Percent.
Наберитесь терпения и продолжайте экспериментировать!