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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 27.02.2014, 01:41
Wolsh вне форума Посмотреть профиль Отправить личное сообщение для Wolsh Найти все сообщения от Wolsh
  № 11  
Ответить с цитированием
Wolsh
Нуб нубам
 
Аватар для Wolsh

модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
Цитата:
Пока же я просто экспериментирую.
В том то и дело, что экспериментируете Вы с взломом чужого спрайтшита, к которому у Вас нет ключа. Скачать дистрибутив Adobe Flash тоже не проблема. Но когда Вы начнете искать, как им воспользоваться без ключа, это станет проблемой. Еще проще пример: выйдите на улицу — машин просто толпы. Добрые люди решили поделиться. Правда, ключи почему то не оставили. Видимо, рассчитывают на Вашу смекалку?
В целом это не наезд даже. Я могу понять, что Вам захотелось поиграться, и что для коммерческого проекта Вы не сможете использовать чужой контент даже если захотите. Я вобщем-то говорил о другом: что Вам это все совершенно не нужно. Что если Вы сами будете делать себе спрайтшиты (не Вы так художник), то у Вас будет нужная инфа по границам кадров, и никакой "алгоритм" резки по прозрачностям Вам не понадобится. Он никогда не будет надежен на 100%.
Если просто хочется поиграться с нетривиальными методами битмапдаты, есть много всяких тем.
Например, буквицы. То есть написать класс (метод?), умеющий создавать картинку заданной буквы заданного шрифта, размера и т.п., на прозрачном фоне, но залитую либо цветом, либо градиентом, либо заданной растровой текстурой. И, естественно, обрезанной четко по размеру буквы. И чтобы Ё не становилось Е, а Й — И
__________________
Reality.getBounds(this);

Старый 27.02.2014, 04:14
Parez вне форума Посмотреть профиль Отправить личное сообщение для Parez Найти все сообщения от Parez
  № 12  
Ответить с цитированием
Parez

Регистрация: Nov 2010
Адрес: Ярославль
Сообщений: 249
Цитата:
Сообщение от Zebestov Посмотреть сообщение
Parez, не путай обвинения с обоснованными подозрениями.
Покажи мне ссылку на авторитетные сайты с бесплатными атласами с нерегулярной сеткой и без сопутствующего дескриптора.
Ты видел, что я написал? Я могу дать тебе ссылку на сайт с royalty free спрайтщитами и др. графикой. Тот же opengameart.org. Меня уже, если честно, немного напрягает такой подход. Вы здесь расследование что ли провести решили? Не понятно, почему я вообще должен вам что-то объяснять (как и вы, очевидно, не обязаны отвечать на мои вопросы на форуме). Я задал вопрос, который сам по себе не противоречит никаким законам или моралям. Почему я это спрашиваю, как мне кажется, касается только меня. Насколько я знаю, на подобных форумах ответы вроде "а зачем тебе это" считаются дурным тоном.
Заданный вопрос звучит вполне конкретно и я не затем его задавал, чтобы "слушать" нравоучения.
Спасибо.

Добавлено через 14 минут
Цитата:
Сообщение от Wolsh Посмотреть сообщение
В том то и дело, что экспериментируете Вы с взломом чужого спрайтшита, к которому у Вас нет ключа. Скачать дистрибутив Adobe Flash тоже не проблема. Но когда Вы начнете искать, как им воспользоваться без ключа, это станет проблемой. Еще проще пример: выйдите на улицу — машин просто толпы. Добрые люди решили поделиться. Правда, ключи почему то не оставили. Видимо, рассчитывают на Вашу смекалку?
В целом это не наезд даже. Я могу понять, что Вам захотелось поиграться, и что для коммерческого проекта Вы не сможете использовать чужой контент даже если захотите. Я вобщем-то говорил о другом: что Вам это все совершенно не нужно. Что если Вы сами будете делать себе спрайтшиты (не Вы так художник), то у Вас будет нужная инфа по границам кадров, и никакой "алгоритм" резки по прозрачностям Вам не понадобится. Он никогда не будет надежен на 100%.
Если просто хочется поиграться с нетривиальными методами битмапдаты, есть много всяких тем.
Например, буквицы. То есть написать класс (метод?), умеющий создавать картинку заданной буквы заданного шрифта, размера и т.п., на прозрачном фоне, но залитую либо цветом, либо градиентом, либо заданной растровой текстурой. И, естественно, обрезанной четко по размеру буквы. И чтобы Ё не становилось Е, а Й — И
Грубо говоря, вы правы. Мне это, возможно, не пригодится в реальности. В данном случае я действительно просто хочу "поиграться с нетривиальными методами битмапдаты". +Если уж говорить об использовании чужих спрайтщитов, я так же хочу посмотреть (чисто для того, чтобы порадовать глаз), как какие-нибудь из моих проектов в теории будут смотреться с нормальной графикой. Разумеется, не для коммерческого использования. А в том, чтобы использовать подобные изображения в личных целях, на сколько я знаю, нет ничего незаконного. Фактически, я их просто смотрю.
Создавая тему, я надеялся, что получится обсудить варианты создания подобного алгоритма с опытными флэшерами, имеющими дело с подобными вещами, но никак не обсуждать моральные аспекты использования чужого артворка в личных целях.

Старый 27.02.2014, 09:11
Wolsh вне форума Посмотреть профиль Отправить личное сообщение для Wolsh Найти все сообщения от Wolsh
  № 13  
Ответить с цитированием
Wolsh
Нуб нубам
 
Аватар для Wolsh

модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
Мне тоже жаль, что Вы так и не поняли.
— Скажите мне, опытные люди, как выпить молоко молотком?
— О____________о Чаво???
— Вот только не надо! Ежу же понятно, молоток и молоко! Как?
— Да никак. Ну, то есть, можно конечно разбить бутылку и потом слизывать, но это будет очень долго и опасно. Лучше вот, трубочку возьмите.
— Эх вы! Я то надеялся поговорить со знающими людьми о правильном алгоритме питья молока молотком, а вы!

Вы поставили бессмысленную задачу. "Опытные флэшеры" сказали Вам, что она бессмысленная. Спрайтшиты придумали не для того, чтобы устраивать себе геморрой в рантайме. Вы ответили, что это такая игра, научиться делать что-нибудь бессмысленное. Силин Вам подыграл даже.
Удачи.
__________________
Reality.getBounds(this);

Старый 27.02.2014, 14:47
Инспектор_Котик вне форума Посмотреть профиль Отправить личное сообщение для Инспектор_Котик Найти все сообщения от Инспектор_Котик
  № 14  
Ответить с цитированием
Инспектор_Котик
 
Аватар для Инспектор_Котик

Регистрация: Oct 2013
Адрес: (5, 5, 5)
Сообщений: 18
Цитата:
Сообщение от Zebestov Посмотреть сообщение
Parez, не путай обвинения с обоснованными подозрениями.
Покажи мне ссылку на авторитетные сайты с бесплатными атласами с нерегулярной сеткой и без сопутствующего дескриптора.
я скачивал отсюда http://www.spriters-resource.com/ правда там иногда кривые попадаются.

Старый 27.02.2014, 14:56
Zebestov вне форума Посмотреть профиль Отправить личное сообщение для Zebestov Посетить домашнюю страницу Zebestov Найти все сообщения от Zebestov
  № 15  
Ответить с цитированием
Zebestov
Lorem ipsum
 
Аватар для Zebestov

модератор форума
Регистрация: May 2001
Адрес: Одесса
Сообщений: 4,869
Записей в блоге: 4
Ресурс, предоставляющий лишь графику, надерганную из разных игр. Я спрашивал не о подобных помойках.
__________________
Поймай яблоко 2!

Старый 27.02.2014, 15:11
Инспектор_Котик вне форума Посмотреть профиль Отправить личное сообщение для Инспектор_Котик Найти все сообщения от Инспектор_Котик
  № 16  
Ответить с цитированием
Инспектор_Котик
 
Аватар для Инспектор_Котик

Регистрация: Oct 2013
Адрес: (5, 5, 5)
Сообщений: 18
А чем подобные помойки плохи для тренировок? Мне кажется для пробы пера вполне себе полигон для испытаний.

Старый 27.02.2014, 15:19
Zebestov вне форума Посмотреть профиль Отправить личное сообщение для Zebestov Посетить домашнюю страницу Zebestov Найти все сообщения от Zebestov
  № 17  
Ответить с цитированием
Zebestov
Lorem ipsum
 
Аватар для Zebestov

модератор форума
Регистрация: May 2001
Адрес: Одесса
Сообщений: 4,869
Записей в блоге: 4
Wolsh выше описал всю "ценность" этих тренировок.
__________________
Поймай яблоко 2!

Старый 27.02.2014, 15:28
silin вне форума Посмотреть профиль Посетить домашнюю страницу silin Найти все сообщения от silin
  № 18  
Ответить с цитированием
silin
 
Аватар для silin

блогер
Регистрация: Mar 2003
Адрес: Моск. обл.
Сообщений: 5,269
Записей в блоге: 6
а вот та же задачка, но для картинок с пересекающимися ректанглами
как бы еще более бессмысленное дело в контексте спрайтшитов, но пусть тоже будет раз уж
Код AS3:
package
{
	import flash.display.*;
	import flash.geom.*;
 
	public class Main extends Sprite
	{
		[Embed(source="test.png")]
		public static const test_png:Class;
 
		public function Main():void
		{
 
			stage.scaleMode = StageScaleMode.NO_SCALE;
			stage.align = StageAlign.TOP_LEFT;
 
			var bmd:BitmapData = Bitmap(new test_png()).bitmapData;
			addChild(new Bitmap(bmd));
 
 
			//разбиваем
			var arr:Array = splitBitmapByAlpha(bmd);
 
			// смотрим
			var tX:Number = bmd.width + 10;
			graphics.lineStyle(0, 0xC0C0C0);
			for (var i:int = 0; i < arr.length; i++)
			{
				var fragm:Bitmap = new Bitmap(arr[i]);
				addChild(fragm);
				fragm.x = tX;
				fragm.y = 10;
 
				tX += fragm.width + 10;
				graphics.drawRect(fragm.x, fragm.y, fragm.width, fragm.height);
			}
 
		}
 
		public static function splitBitmapByAlpha(bmd:BitmapData):Array /*BitmapData*/
		{
 
			var res:Array = [];
			var w:int = bmd.width;
			var h:int = bmd.height;
			var k:int = 0;
			var p0:Point = new Point();
 
			// карта непрозрачности
			var map:BitmapData = bmd.clone();
			map.threshold(map, map.rect, p0, ">", 0, 0xFF000000, 0xFF000000);
 
 
			// пока битмап не пустой
			while (map.getColorBoundsRect(0xFF000000, 0x0, false).width)
			{
				// ищем следующую непрозрачную точку
				while (!map.getPixel32(k % w, k / w)) k++;
 
				// заливаем красным
				map.floodFill(k % w, k / w, 0xFFFF0000);
				// берем что залилось как маску
				var mask:BitmapData = new BitmapData(w, h, true, 0x0);
				mask.copyChannel(map, map.rect, p0, BitmapDataChannel.RED, BitmapDataChannel.ALPHA);
				// фрагмент
				var fragmRect:Rectangle = mask.getColorBoundsRect(0xFF000000, 0x0, false);
				var fragmBmd:BitmapData = new BitmapData(fragmRect.width, fragmRect.height, true, 0x0);
				// вынимаем  по маске из основного
				fragmBmd.copyPixels(bmd, fragmRect, p0, mask , fragmRect.topLeft);
				// удаляем  отработанный кусок
				map.threshold(mask, mask.rect, p0, "==", 0xFF000000, 0x0, 0xFF000000);
				mask.dispose();
				res.push(fragmBmd);
 
			}
 
			map.dispose();
			return res;
		}
 
	}
 
}
upd. небольшая оптимизация (нет нужды искать на каждой итерации по всей карте, а можно продолжать от предыдущей)
alphaSplit.swf   (29.9 Кб)
Вложения
Тип файла: swf alphaSplit.swf (29.9 Кб, 154 просмотров)


Последний раз редактировалось silin; 27.02.2014 в 21:41.
Старый 27.02.2014, 16:04
Wolsh вне форума Посмотреть профиль Отправить личное сообщение для Wolsh Найти все сообщения от Wolsh
  № 19  
Ответить с цитированием
Wolsh
Нуб нубам
 
Аватар для Wolsh

модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
Мощно!
__________________
Reality.getBounds(this);

Старый 27.02.2014, 20:35
Hauts вне форума Посмотреть профиль Отправить личное сообщение для Hauts Посетить домашнюю страницу Hauts Найти все сообщения от Hauts
  № 20  
Ответить с цитированием
Hauts
 
Аватар для Hauts

блогер
Регистрация: Feb 2008
Адрес: Россия, Новосибирск, Академгородок
Сообщений: 2,112
Записей в блоге: 1
Отправить сообщение для Hauts с помощью ICQ Отправить сообщение для Hauts с помощью Skype™
Завидую столь крутым алгоритмическим навыкам Силина. Не знаю зачем, но сохраню себе.
__________________
hauts.ru

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

Теги
alpha , decomposition , spritesheet , разделение изображения , спрайтщит
Опции темы
Опции просмотра

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

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


 


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


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