|
|
« Предыдущая тема | Следующая тема » |
Опции темы | Опции просмотра |
|
|
|||||
Регистрация: Nov 2009
Адрес: СПб
Сообщений: 2,236
|
Можно ли сделать несколько "блуждающих" масок?
Есть некий контейнер, в котором достаточно много анимированных объектов. Есть необходимость накрыть все это непрозрачным слоем, например, синим с морскими волнами, и к некоторым объектам привязать "градиентные дыры" (дыры со смазанными краями за счет градиента по альфе) в этом слое. При этом объекты могут двигаться и дыры должны ползать над ними. При этом дыры могут пересекаться и это должно выглядеть естественно.
Есть какое-нибудь решение на этот счет? ЗЫ. Попытка решить в лоб (маска в виде мувиклипа, внутри которого расположены двигающиеся мувики-круги с градиентом по альфе + cacheAsBitmap для контейнера и маски) успеха не принесла. |
|
|||||
Нуб нубам
модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
|
Что именно не получилось? Что не так с этим методом "в лоб"?
__________________
Reality.getBounds(this); |
|
|||||
Регистрация: Nov 2009
Адрес: СПб
Сообщений: 2,236
|
слетает градиент с маски (круг становится резким), пропадают отдельные картинки...
там в контейнере уж больно много всего намешано в принципе, если так, как я описал, должно работать, то я буду копать в этом направлении но если оно работать все равно не будет, то не хотелось бы тратить время |
|
|||||
Регистрация: Nov 2008
Сообщений: 528
|
К сожалению, известный трюк с градиентной маской - это именно хак. В некоторых случаях он не работает (неправильно считается альфа, просвечивают или мерцают случайные куски).
|
|
|||||
Нуб нубам
модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
|
Цитата:
mikhailk, просто не совсем понятно, насколько сложна задача визуально. Ну, то есть, одно дело - силуэты со слегка размытыми краями, другое дело "круги с градиентом". Если сами по себе круги с градиентом дают артефакты при наложении друг на друга, то они, безусловно, будут и на маскируемом объекте. А легкое размытие краев можно получить, к примеру, если в контейнере-маске будут плавать резкие силуэты, но на сам контейнер повесить блюр. Однако опять же, если рыбки или что там у вас, пересекутся, в месте пересечения размытия на верхней "рыбке" не будет)) Вобщем тут технологию надо по задаче подбирать.
__________________
Reality.getBounds(this); |
|
|||||
Регистрация: Nov 2008
Сообщений: 528
|
Нет, хак - вот это.
Цитата:
А вот если вы расскажете (или ссылку дадите), как сделать градиентную маску через режимы наложения - я вам скажу "спасибо". По-моему, это было здесь, на flasher-е: кто-то описывал идею - но у меня не получилось её повторить. |
|
|||||
Нуб нубам
модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
|
http://flasher.ru/forum/showthread.php?t=141485
То есть маска и маскируемый помещаются в один контейнер, этому контейнеру ставится BlendMode.LAYER, а маске - BlendMode.ALPHA или BlendMode.ERASE в зависимости от задачи, плюс кеширование в битмап, если маска – векторный шейп.
__________________
Reality.getBounds(this); |
|
|||||
Регистрация: Nov 2009
Адрес: СПб
Сообщений: 2,236
|
Цитата:
На локации, которая сама по себе собрана из различных объектов, в том числе анимированных, размещены активные объекты (в примере - персонажи), которые двигаются по локации. С каждым из них связана своя область видимости, которая как раз и реализована как маска. Соответственно, маски тоже двигаются, вместе с персонажами. |
|
|||||
Регистрация: Nov 2008
Сообщений: 528
|
Wolsh, здорово . Не нужно будет искать, если вдруг понадобится. Спасибо .
|
|
|||||
Нуб нубам
модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
|
Двигаем дырки мышкой.
__________________
Reality.getBounds(this); |
Часовой пояс GMT +4, время: 17:09. |
|
« Предыдущая тема | Следующая тема » |
|
|