![]() |
|
||||||||||
|
|||||
|
Регистрация: Dec 2013
Сообщений: 14
|
Здравствуйте уважаемые Флэшеры. Вы наверное уже не раз видели в сети видео, на котором вставлено своё лицо за место головы у участника видео, есть даже платные онлайн сервисы по подстановке своего лица в видео, механизм подстановки лица в принципе понятен, вот только интересует вопрос, как сделать маски в Видео во Флэш, а конкретно когда например какие-нибудь части тела перекрывают лицо, оно должно частично закрываться. Уже голову сломал, как это можно сделать, один из моих вариантов, это помещал на первый слой видео, на второй слой вставляемую голову, на третий слой опять тоже самое видео и на четвёртом слое на нужных кадрах обрисовывал участки, которые должны в последствии быть масками для видео, по лучается своеобразный бутерброд, но ничего путного из этого не вышло, звук двоится, вставленная голова то появится, то исчезнет, короче ерунда полная. Скачал аналог такого видео в SWF, чтобы декомпиллировать его и попытаться понять принцип, но чего-то ни в какую не вдуплить. Надеюсь объяснил понятно свой вопрос, подскажите пожалуйста, кто понимает, как можно сделать такие маски.
|
|
|||||
|
а зачем маска-то?
Вы просто вырежьте контурно новое лицо и вставьте его на новый слой |
|
|||||
|
Регистрация: Dec 2013
Сообщений: 14
|
С лицом понятно, это я уже сделал, а маски нужны для того, чтобы когда какой-нибудь объект, например рука перекрывает видимость лица рука находилась-бы поверх головы, если не использовать маску руки не будет видно, она так и будет прекрываться вырезанным лицом.
|
|
|||||
|
Регистрация: Dec 2013
Сообщений: 14
|
Как в этом примере, руки танцора в зависимости от ракурса перекрывают видимость лица
|
|
|||||
|
Но опять же, вам нужна маска для лица (которое выше видео), а не маска для видео.
Добавлено через 2 часа 13 минут Но так как стандартная маска работает как : показать те пиксели объекта там где есть пиксели маски, то вам будет не удобно рисовать такую маску. Чтобы создать эффект противоположной маски: скрыть те пиксели объекта на которые попадают пиксели маски, вам не нужно применять маску. А для маскируемого объекта (лица) назначить blemdMode = layer, а для объекта (который будет вырезать) из лица области blendMode = subtract. |
|
|||||
|
Регистрация: Dec 2013
Сообщений: 14
|
А как это сделать, вот у меня три слоя, на первом "Видео", на втором - "Подставляемая Голова", а на третьем отмеченные участки, на которых надо сделать голову не видимой? И еще вопрос, если подставляемую голову я сделал клипом для удобства работы, так как в последствии хочу анимировать рот на ней скрываемые пиксели будут вычитаться?
|
|
|||||
|
Набросал исходник (cs5), посмотрите. Там вместо видео, просто картинка.
Обратите внимание на присвоенные имена объектам (на панели properties при выделенном объекте на сцене). И две строчки кода в первом кадре основной сцены. p.s. я ошибся в сообщении выше, вместо subtract нужно erase. |
|
|||||
|
Регистрация: Dec 2013
Сообщений: 14
|
Спасибо за наглядный пример, принцип понятен, а в случае с использованием видео, там же будет много участков разной формы, которые надо скрыть, как быть в этом случае, создавать разные ролики маски и присваивать каждому своё уникальное имя, а потом прописывать для него код?
|
|
|||||
|
Чтобы не прописывать много имён для разных масок, то просто поместите все маски в контейнер (мувиклип, спрайт) и задайте имя только этому контейнеру, а маскам уже не нужно. И тогда присвойте нужный blendMode только этому контейнеру и всё его содержимое будет работать как одно целое.
|
|
|||||
|
Регистрация: Dec 2013
Сообщений: 14
|
Спасибо за ответ, даже не думал про общий контейнер, а тут всё так просто и гениально, последую вашему совету, очень помогли.
|
![]() |
![]() |
Часовой пояс GMT +4, время: 23:44. |
|
|
« Предыдущая тема | Следующая тема » |
|
|