Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 26.05.2012, 14:08
AleXXX вне форума Посмотреть профиль Отправить личное сообщение для AleXXX Найти все сообщения от AleXXX
  № 1  
Ответить с цитированием
AleXXX

Регистрация: May 2012
Сообщений: 38
По умолчанию Анимация и коррекция цвета

Приветствую всех участников форума. Нужна помощь вот в каком вопросе.

Есть несколько картинок, образующих анимацию движения какого-нибудь юнита. Каждая картинка - это фон определенного цвета в RGB (#00FFFF), собственно сам юнит на этом фоне. Задача: перемещать этого юнита по сцене.

Сейчас сдел так:
1) в Flash CS скомпилил покадровый swf
2) в FleX через Embed портирую этот swf в основной проект и работаю с ним как MovieClip: перемещаю,вращаю и т.п.
3) А тут собственно незадача: нужно фон этого MovieClip'а сделать прозрачным, чтобы юнит остался юнитом, а его фон #FF00FFFF преобразовался в #00 xx xx xx (ARGB), и как следствие под ним отображался ландшафт сцены. Т.е. заменить цвет строго определенный цвет (RGB) #FF00FFFF на прозрачный #00xxxxxx (ARGB) А так получается, что перемешается квадрат с вписанным юнитом.

Предполагаю через MovieClip.transform это можно как-то решить, если я конечно прав.
Кто-то советует программно выдергивать из MovieClip Bitmap'ы и использовать threshold(), однако опыт программирования в др. языках мне подсказывает: "не для того MovieClip был сделан чтобы его потом потрошить". Возможно я вообще не правильно выбрал концепцию храния ресурсов в swf-ках. В общем посоветуйте подход.

PS. Вариант изменить цвет фона на прозрачный в исходных картинках, тоже не лучший вариант.

Старый 26.05.2012, 16:24
expl вне форума Посмотреть профиль Отправить личное сообщение для expl Найти все сообщения от expl
  № 2  
Ответить с цитированием
expl

блогер
Регистрация: Feb 2006
Сообщений: 1,474
Записей в блоге: 3
Дешёвого (по ресурсам) способа отфильтровать определённый цвет в альфу я не знаю (ColorMatrixFilter, ColorTransform такого не сделают в общем случае, а шейдеры и treshold - не дешёвые).

Нормальное решение:
- у вас должны где-то лежать исходные PNG-шки - перегнать их чем-нибудь в PNG-шки с прозрачностью
- повторно вставить во fla - если имена не меняли - то Вас спросят "Заменить ли картинки?" - говорите "да" и тогда по всем мувикам лазить не придётся.

А теперь способы перегона:
- Photoshop, говорят поддерживает автоматизацию
- батник или скрипт, использующий консольный бесплатный графически редактор imagemagic
- скрипт на любом языке, поддерживающим работу с графикой
- в конце концов, AIR-приложение на том же AS3 с использованием этого treshold
- сам обычно для предобработки графики использую связку haXe+neko+nme - граблей там куча, с альфой по-нормальному только попиксельно удаётся работать - но проще встроить в скрипт сборки, чем для AIR.
- засучить рукава и перегнать вручную каким-нибудь Paint.NET

Впринципе, шейдером можно сделать, может у вас хороший запас производительности и fps не сильно просядет. Но не факт, что разобраться с шейдерами будет много быстрее написания скрипта по перегону. Если только художники вам принципиально каждый раз шлют без альфы и очень лениво каждый раз импортить их творчество во fla.


Последний раз редактировалось expl; 26.05.2012 в 17:03.
Старый 26.05.2012, 16:31
strangedk вне форума Посмотреть профиль Отправить личное сообщение для strangedk Найти все сообщения от strangedk
  № 3  
Ответить с цитированием
strangedk
 
Аватар для strangedk

Регистрация: Oct 2010
Адрес: Харьков
Сообщений: 616
Записей в блоге: 1
Отправить сообщение для strangedk с помощью ICQ Отправить сообщение для strangedk с помощью Skype™
Цитата:
Сообщение от AleXXX Посмотреть сообщение
PS. Вариант изменить цвет фона на прозрачный в исходных картинках, тоже не лучший вариант.
Вообще-то это самый правильный вариант. Зачем ставить костыли, если изначально накосячил дизайнер?

Я понимаю что моё замечание может быть бесполезно, но о чем вы думали когда делали секвенцию картинок?
__________________
adobe AS3 manual

Старый 26.05.2012, 16:58
AleXXX вне форума Посмотреть профиль Отправить личное сообщение для AleXXX Найти все сообщения от AleXXX
  № 4  
Ответить с цитированием
AleXXX

Регистрация: May 2012
Сообщений: 38
Цитата:
Сообщение от strangedk Посмотреть сообщение
Вообще-то это самый правильный вариант. Зачем ставить костыли, если изначально накосячил дизайнер?

Я понимаю что моё замечание может быть бесполезно, но о чем вы думали когда делали секвенцию картинок?
Да никто не накосячил, просто эти картинки вообще ресурсы игры под DirectX. Что-то увлек флеш, вот учусь. Кстати на них помимо фона есть есть еще обозначенные цветом: тень, аура(контур в несколько пикселей для спецэффектов). И под DirectX с этим проблем никаких, вот я подумал может нечто подобное и в Flash возможно.

Старый 26.05.2012, 17:21
expl вне форума Посмотреть профиль Отправить личное сообщение для expl Найти все сообщения от expl
  № 5  
Ответить с цитированием
expl

блогер
Регистрация: Feb 2006
Сообщений: 1,474
Записей в блоге: 3
Не, для флеша такой путь стандартным не является. Там мало что на OpenGL/DirectX похоже, скорее вообще ничего.

Создать новую тему Ответ Часовой пояс GMT +4, время: 02:55.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


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


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