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

Вернуться   Форум Flasher.ru > Flash > API приложений и сред

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

Регистрация: Nov 2009
Адрес: СПб
Сообщений: 2,236
По умолчанию Запечь перса с одеждой в вектор текстур и потом проиграть как мувиклип

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

Что-то у меня получается не особенно красиво - либо просто положить три мувиклипа в контейнер и при каждом обновлении все три переставлять на следующий кадр, либо запечь кадры мувиклипов послойно в вектор рендертекстур, но над вектором рендертекстур мувиклип не создать, поэтому все равно переставлять кадры ручками. Например, присваивая текстуру из вектора имаджу.

Возможности запечь слои в вектор текстур и потом скормить его мувиклипу я что-то не нашел. Или что-то есть?


Последний раз редактировалось mikhailk; 06.10.2015 в 16:47.
Старый 06.10.2015, 19:02
ALeXVoz вне форума Посмотреть профиль Отправить личное сообщение для ALeXVoz Посетить домашнюю страницу ALeXVoz Найти все сообщения от ALeXVoz
  № 2  
Ответить с цитированием
ALeXVoz
 
Аватар для ALeXVoz

Регистрация: Nov 2008
Адрес: Ukraine, Kyiv
Сообщений: 94
Отправить сообщение для ALeXVoz с помощью Skype™
Используйте DragonBones.
По началу немного сложно разобраться, приходится посидеть, помучатся но за то потом очень упрощает жизнь, полный контроль над персонажем.

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

Регистрация: Jun 2012
Адрес: Новосибирск
Сообщений: 6,644
Записей в блоге: 4
Цитата:
Сообщение от ALeXVoz Посмотреть сообщение
Используйте DragonBones.
По началу немного сложно разобраться, приходится посидеть, помучатся но за то потом очень упрощает жизнь, полный контроль над персонажем.
Ничего там сложного. Я думаю он и сам знает про эту штуку. Но его не всегда можно использовать. Бывает такая сложная анимация, что дракон никак не подойдет.

Как вариант можно сделать хранение битмапок (я даже стандартный ассет менеджер расширил, чтобы он не убивал те картинки, которые мне нужны) А потом просто стандартным BitmapDraw все в одну запекать и делать текстуру, которую и кормить мувиклипу. Думаю это всяко лучше костыля, который у тебя получился

Старый 07.10.2015, 14:54
mikhailk вне форума Посмотреть профиль Отправить личное сообщение для mikhailk Найти все сообщения от mikhailk
  № 4  
Ответить с цитированием
mikhailk
 
Аватар для mikhailk

Регистрация: Nov 2009
Адрес: СПб
Сообщений: 2,236
Цитата:
Как вариант можно сделать хранение битмапок (я даже стандартный ассет менеджер расширил, чтобы он не убивал те картинки, которые мне нужны) А потом просто стандартным BitmapDraw все в одну запекать и делать текстуру, которую и кормить мувиклипу. Думаю это всяко лучше костыля, который у тебя получился
Я чего-то туплю. А как из стандартного ассетменеджера вытащить битмапу для конкретной текстуры?

Старый 07.10.2015, 19:24
caseyryan вне форума Посмотреть профиль Отправить личное сообщение для caseyryan Найти все сообщения от caseyryan
  № 5  
Ответить с цитированием
caseyryan
 
Аватар для caseyryan

Регистрация: Jun 2012
Адрес: Новосибирск
Сообщений: 6,644
Записей в блоге: 4
Цитата:
Сообщение от mikhailk Посмотреть сообщение
Я чего-то туплю. А как из стандартного ассетменеджера вытащить битмапу для конкретной текстуры?
Из стандартного никак, его надо модифицировать, чтобы он не уничтожал нужные.
Собственно во вложении мой модифицированный


Там есть массив
Код AS3:
private var _bitmapsToStore:Array/*String*/ = [];
На 148 строке
Просто добавь туда названия картинок, для которых нужно сохранить битмап данные, естественно без расширения.
Короче говоря если сделаешь так
Код AS3:
private var _bitmapsToStore:Array/*String*/ = ["some_image"];
И загрузишь картинку some_image.png

То потом можешь у ассет менеджера получить ее через
Код AS3:
getBitmap("some_image");
Я уже писал на форуме старлинга, что нужно сделать такой функционал из коробки, Даниэль согласился, но хз когда сделает. Так что пока костыльный способ
Вложения
Тип файла: zip AssetManager.zip (12.2 Кб, 30 просмотров)

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

Регистрация: Nov 2009
Адрес: СПб
Сообщений: 2,236
Ок, попробую.
Да, действительно странно, что в коробке такого нет.

Добавлено через 1 час 57 минут
Кстати, случайно нашел еще вот такое решение:
http://blog.eago.ws/2015/01/05/starl...apdata-saving/

Старый 20.11.2015, 12:39
mikhailk вне форума Посмотреть профиль Отправить личное сообщение для mikhailk Найти все сообщения от mikhailk
  № 7  
Ответить с цитированием
mikhailk
 
Аватар для mikhailk

Регистрация: Nov 2009
Адрес: СПб
Сообщений: 2,236
Цитата:
То потом можешь у ассет менеджера получить ее через
Код AS3:
getBitmap("some_image");
Расширил функцию для того, чтобы можно было получать так же изображения из атласа. В сеттере сохраняемых битмап для ассетменеджера указываем не имя текстуры, а имя атласа. При получении битмапа через функцию getBitmap вторым параметром указываем имя атласа.

Код AS3:
public function getBitmap( textureName : String, atlasName : String = null ) : Bitmap
{
	// case of simple texture
	if ( !atlasName )
	{
		return mBitmaps[textureName];
	}
 
	// case of texture in atlas
	var textureAtlas : TextureAtlas = getTextureAtlas( atlasName );
	var textureRegion : Rectangle = textureAtlas.getRegion( textureName );
	var textureFrame : Rectangle = textureAtlas.getFrame( textureName );
 
	if ( textureFrame )
	{
		var textureWidth : uint = textureFrame.width;
		var textureHeight : uint = textureFrame.height;
		var regionLeft : uint = -textureFrame.x;
		var regionTop : uint = -textureFrame.y;
		var regionWidth : uint = textureRegion.width;
		var regionHeight : uint = textureRegion.height;
	}
	else
	{
		textureWidth = textureRegion.width;
		textureHeight = textureRegion.height;
		regionLeft = 0;
		regionTop = 0;
		regionWidth = textureRegion.width;
		regionHeight = textureRegion.height;
	}
 
	var bitmapData : BitmapData = new BitmapData( textureWidth, textureHeight, true, 0x00000000 );
	var pixels : ByteArray = ( mBitmaps[atlasName] as Bitmap ).bitmapData.getPixels( textureRegion );
	pixels.position = 0;
	bitmapData.setPixels( new Rectangle( regionLeft, regionTop, regionWidth, regionHeight ), pixels );
	return new Bitmap( bitmapData );
}

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

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

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


 


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


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