Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   Проблема с маской и заливкой (http://www.flasher.ru/forum/showthread.php?t=116727)

hludens 09.10.2008 15:54

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

Проблему решил масками и вручную отрисованными прямоугольниками нужного мне цвета.

-Полупрозрачное изображение с тенями и бликами
-Маска волос
-пустой мувик в который програмно рисуем квадрат цвета волос
-маска кожи
-пустой мувик
и.т.д.

Все было хорошо и успешно работало пока не начал анимировать.
Как только в маске появились кейфреймы заливка немедленно исчезла...
т.е. Как только анимация маски доходит до кейфрейма (или выполняет переход gotoAndPlay) изображение исчезает!
Разумеется можно в каждом кадре перерисовывать этти прямоугольники но масок и прямоугольников много и менятся они будут в каждом кадре, такое решение крайне ресурсоемко...

Вопрос. (а вернее несколько)
1.Можно как либо избавится от этой проблемы? Возможно я в чем то ошибся при настройках?

2.Можно ли каким либо другим образом управлять цветом этих прямоугольников? Желательно менее затратный чем фильтры :)

chingachgoog 09.10.2008 15:59

Цитата:

Сообщение от hludens (Сообщение 769086)
Как только в маске появились кейфреймы заливка немедленно исчезла...

А можно простейший пример привести? Ну там квадрат и круглая маска? :) Когда "немедленно исчезает заливка"?

Wolsh 09.10.2008 16:09

Да есть такая проблема, не раз сталкивался. Но поскольку я не аниматор и анимации у меня очень короткие и несложные, решал проблему просто - анимация маски - отдельный клип, маскируемая анимация - второй клип. Маску располагаем сверху и делаем маской. Смысл в том, чтоб именно собрать анимацию в один клип и ЕГО сделать маской, а не двигать саму маску, используя кейфреймы. Все кейфреймы должны остаться ВНУТРИ клипа-маски. Там где маска назначена маской, должен быть только один кейфрейм - первый.
Признаю, что для длинных и сложных анимаций такой подход очень заморочен. Но если уже все готово и совмещено по кадрам, переделать очень просто - скопировать фреймы слоя с анимацией маски и вставить их в новый символ.
Удачи.

hludens 09.10.2008 16:14

Вложений: 1
2 Wolsh
Сам только что нашел аналогичное решение. Но количество слоев и анимаций делает его крайне э... замороченным :(
просто мысль о последующеем редактировании приводит в уныние...

Может кто то додумается до еще какого либо способа?
Это пример...
http://www.flasher.ru/forum/attachme...1&d=1223550823

chingachgoog 09.10.2008 19:51

В примере нет никакой проблемы с маской: замените програмное рисование обычным и убедитесь.
В примере типичный конфликт ручной и программной анимации - только недавно разбирали.

hludens 10.10.2008 11:39

2 chingachgoog
э... как бы помягче сказать, вы видимо невнимательно прочли первое сообщение.
Замена програмного рисования ручным невозможно, поскольку выбор цвета осуществляется в ходе работы программы...
В этом то и состоит проблемма! А то что маска вполне успешно работает с созданными вручную объектами мне известно :)

Собственно в моем первом сообщении есть вопрос по поводу другого варианта управления цветом - может вы предложите что либо?

Wolsh 10.10.2008 12:55

Да без проблем. Класс Color и его метод setRGB(). Правда считается depricated)))

chingachgoog 10.10.2008 13:25

Цитата:

Сообщение от hludens (Сообщение 769255)
2 chingachgoog
э... как бы помягче сказать, вы видимо невнимательно прочли первое сообщение.

Я даже усугублю: я внимательно прочел название темы и потому повторяю: никакой проблемы с маской и заливкой нет, а есть совсем другая проблема (см. выше).

hludens 10.10.2008 16:12

2 Wolsh
А можно какой либо пример?
А впрочем уже сам разобрался!
var my_color:Color = new Color(my_mc);
my_color.setRGB(0xFF0000);
Вот что значит точный пинок в заданном направлении! Спасибо!
Решается половина проблем, обойдусь тогда и без масок!

2 chingachgoog
ну с таким уточнением согласен :) Название темы действительно дал недостаточно точно. стоило уточнить что заливка програмная.
Можно конечно было как название дисертации завернуть, типа "Некоторые аспекты применения анимированных масок применительно к програмным заливкам в среде Адоб Флешь 8.0"... или даже похитрее...

dimarik 11.10.2008 15:44

hludens wrore:
> Вопрос. (а вернее несколько)
> 1.Можно как либо избавится от этой проблемы? Возможно я в чем то ошибся при настройках?


ColorMatrixFilter Class

> 2.Можно ли каким либо другим образом управлять цветом этих прямоугольников? Желательно менее затратный чем фильтры

Способ с масками более затратный.


Часовой пояс GMT +4, время: 20:22.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.