Преобразование Flash-анимации в Cocos2D - PullRequest
1 голос
/ 29 октября 2011

Аннотация

Что мне требуется, так это метод, основанный на одноуровневой, но многослойной анимации Flash, для экспорта позиции и поворота каждого ключевого фрагмента ролика в каждого кадра в виде XML.

Код для чтения этой информации в формате cocos2d-ready сэкономит много времени, но не является необходимым, поскольку я знаю, как этого добиться.

Наши художники часто рисуют вектор с помощью Flash и имеют замечательную и впечатляющую анимацию. В прошлом мы использовали эту технику в наших играх, чтобы экспортировать отдельные анимации в виде последовательности png, вставить их в лист спрайтов и превратить их в CCAnimations.

Этот метод работает хорошо, и мы можем получить достаточно много искусства в 20 МБ сверх лимита загрузки по воздуху благодаря spritesheets и pvrtc. Однако, по мере того как мы растем, мы стремимся делать большие и лучшие игры, а это будет означать больше искусства!

То, чего я хотел бы достичь сейчас, - это уменьшение массы в объеме искусства за счет использования техники ключевых кадров для имитации поведения Flash, удаления повторяющихся произведений искусства.

т.е. Используя текущую технику, один персонаж будет принимать:

Последовательность шагов с 10 кадрами (скажем, разрешение 100 * 300, 30 тыс. Пикселей) будет иметь 10, полноразмерные люди в каждой позиции. (всего 1000 * 300 разрешение 300 тыс. пикселей для одной анимации )

Скажите 5 похожих анимаций на общую сумму 1,5 миллиона пикселей

Желаемый результат для того же персонажа:

1 правая нога: (40 * 30, 1200 пикселей)

1 левая нога: (40 * 30, 1200 пикселей)

1 торс (50 * 50, 2500 пикселей)

1 левая рука (40 * 30, 1200 пикселей)

1 правая рука (40 * 30, 1200 пикселей)

1 головка (30 * 30, 900 пикселей)

Всего (8200 пикселей) для всех анимаций

И XML-файл, объясняющий преобразование каждой части для каждого кадра.

Мои знания о Flash ограничены. Я экспортировал МНОГО искусства, так что это не проблема, но у меня нет большого опыта в ActionScript или в экспорте другой информации. Я заметил опцию Export Motion as XML, но она не предоставляет нужную мне информацию (она не обращается к дочерним элементам видеоклипов, чтобы получить их преобразование).

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

Ответы [ 3 ]

1 голос
/ 12 апреля 2012

Я так и не узнал о каких-либо существующих инструментах, и поэтому я немного изучил ActionScript и сам написал решение.

К сожалению, из-за корпоративных политик я не смогу поделиться своим кодом, но я опишу шаги, которые мне нужно было предпринять


ActionScript / Flash

  • Шаг через каждый кадр
  • Выведите детей на сцену в этом кадре и отметьте их преобразование
  • Пройдите через каждого из своих детей и отметьте их преобразование по отношению к их родителю.
  • Делайте это рекурсивно, пока у детей нет детей или пока вы не достигли объекта DrawingObject
  • Сохранить информацию как XML

Art

  • Экспортируйте каждый необходимый вам символ из библиотеки и добавляйте в список спрайтов. (Я сделал это с помощью JSFL)

Obj-C / Cocos2d

  • XML должен содержать набор фреймов со списком дочерних элементов для каждого фрейма и, рекурсивно, каждого из их дочерних элементов. Каждый дочерний узел содержит информацию о преобразовании.
  • Прочитайте этот XML, добавляя дочерние элементы в кадры анимации по мере их нахождения и дочерние элементы к их соответствующим родителям. Применить детские трансформации.

Надеюсь, это поможет кому-то еще.

0 голосов
/ 04 февраля 2014

Я написал свое собственное облегченное решение.

Простая библиотека для экспорта и анимации Flash-символов в iOS / cocos2d, с включенным примером.

Рабочий процесс:

  • Создайте свою анимацию во Flash как мувиклипы с анимированными слоями, содержащими графические символы.
  • Экспорт анимации в формате JSON + фреймы PNG с использованием прилагаемого сценария JSFL.
  • Преобразование PNG в листы спрайтовЯ использую собственные инструменты - http://www.codeandweb.com/texturepacker)
  • Включение файлов анимации JSON и листов спрайтов в комплект приложений.
  • Загрузка текстур, запуск сложных многослойных анимаций на спрайтах с помощью простых команд.

Проверьте это на github:

Это моя первая заявка на github, и мне интересно, насколько полезные люди находят ее, поэтому дайте мне знать.

0 голосов
/ 29 октября 2011

Полагаю, ваш вопрос касается части "уменьшение массы".Вам определенно стоит взглянуть на TexturePacker .С помощью TexturePacker вы можете создавать текстурные атласы, которые содержат только одно изображение из нескольких идентичных кадров анимации, сохраняя при этом возможность обращаться к этому кадру с его исходными именами файлов.

TexturePacker имеет экспортер cocos2d и flash и может импортировать изобычные форматы файлов.Если что-то не так, как вам нужно, вы можете связаться с автором, Andreas Löw.Он очень отзывчив и готов предоставить лучший инструмент для упаковки текстур.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...