Цель проекта - разработать программу для просмотра и редактирования файлов, отвечающих за визуализацию объектов на экране в играх компании Supercell.
Система состоит из следующих блоков:
- Импорт файлов
- Просмотр объектов
- Редактирование объектов
- Экспорт изображений, видео
- Экспорт файлов графики
В этот блок входит открытие файла, загрузка всех его внутренних объектов. Все объекты добавляются в таблицу-список.
Программа должна отображать объект и информацию о нём при нажатии на него в таблице объектов, а также передвигаться по сцене, приближать или отдалять объект на сцене.
В структуре файлов есть следующие объекты:
- Shape (Фигура)
- MovieClip (объект анимации)
- TextField (Текстовое поле)
- SWFTexture (Текстура)
Вместе с просмотром фигуры должна быть возможность указать сетку, по которой она растягивается, это необходимо для просмотра так называемых "9-slice" фигур, также допускается редактирование этой сетки путём растягивания объекта по крайним/угловым точкам, но только в режиме просмотра.
Информация об этом объекте минимальная.
Должно отрисовывать покадрово либо всю анимацию, либо её части по "Ключам" - именам кадров, в зависимости от типа выборки кадров.
Информация об этом объекте состоит из:
- Таблицы/списка детей
- Таблицы/списка кадров
- Таблицы детей кадра
- Тип выборки кадров
- Количества кадров в секунду
Должна быть возможность поменять текст для предпросмотра, так как зачастую истодный текст поля пуст.
Информация об объекте:
- Шрифт
- Размер шрифта
- Исходный текст
- Поддерживает ли несколько строк
- Свойства текста (жирный, курсив)
Подгружается вся текстура на сцену. Информация об объекте содержит только размеры холста и формат пикселей.
Редактирование подразумевает создание новых и редактирование существующих объектов. Функционал данного блока включает в себя:
- Создать новый объект любого поддерживаемого типа
- Настройка свойств объекта, то бишь выбор какой это будет тег, в зависимости от того, какую информацию будет содержать объект, шрифт текстового поля, размер текста, количество FPS анимации и тому подобные.
- Добавление "детей" объекта созданием нового элемента таблицы кнопкой или перетаскиванием объекта из общего списка объектов в область "Детей" объекта или на сцену, удаление существующих
- Создание новых кадров, удаление существующих
- Изменение меша по точкам, их свободное передвижение
- Импорт текстур
- Самостоятельный выбор области текстуры, являющейся текстурой объекта
Должна быть возможность включить и выключить режим редактирования, эдакий "Безопасный режим", поддерживаемый только просмотр файла.
Программе нужно получить буфер изображения OpenGL один или более раз, зависимо от ситуации, и сохранить его в:
- PNG файл если это экспорт кадра или объекта, который не поддерживает анимацию.
- MP4/AVI или какой-либо другой видео-формат для объекта, который поддерживает анимацию
Экспортироваться должны как текстуры, так и файла информации. Должна быть возможность выбора свойств файла, отдельно ли экспортируются эти файлы или мержатся в один, есть ли текстура с высоким расширением и тому подобные свойства. Также выбрать версию экспортироваемого файла для применения нужного вида сжатия.