IMS Creators Desktop 0.9.6: делаем файлы проекта проще и лаконичнее

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

Что изменилось?

Новый упрощённый формат файлов контента

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

С выходом обновления у пользователей появилась возможность выбора: в настройках проекта в параметре «Формат файла контента» можно оставить привычный вариант «Автономный (.ima.json)» либо выбрать новый «Упрощенный (.json)».

Упрощённый формат оставляет в файле только самое главное - непосредственно контент блоков, свойства и структуру. Такой файл удобно читать, удобно открывать в любом JSON-инструменте и удобно отслеживать изменения в системе контроля версий. Ничего не теряется: приложение хранит остальные служебные данные отдельно и восстанавливает их при открытии проекта. А если вернуться к автономному формату, полный набор метаданных вернётся на своё место.

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

Интеллектуальный импорт произвольных JSON-файлов

Совершенствуем процесс загрузки произвольных .json-файлов в проект тоже. Теперь IMS Creators понимает структуру файла: текстовые значения становятся текстовыми блоками, числа и булевы значения получают корректные типы, массивы превращаются в поля с множественными значениями, и все внутренние детали сохраняют свой порядок, автоматически получая нужные метки.

Новый блок Свойство: проектируйте структуру данных под свои задачи

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

Логика создания игрового объекта стала предельно лаконичной: новый объект формируется из базового набора (галерея, описание и локализация), а дополнительные свойства добавляются по мере необходимости простым нажатием кнопки «Добавить свойство». Каждый блок Свойство функционирует автономно — обладает собственным именем и типом, поддерживает локализацию, наследование в производных объектах и прямое использование в качестве переменной внутри диалогов

Данный подход идеально гармонирует с упрощённым JSON-форматом, поскольку спроектированная в редакторе структура отражается в файле проекта в виде прозрачных пар «имя: значение» без громоздких вложенных метаданных. При этом для ранее созданных объектов Игровой объект предусмотрен механизм обратной совместимости, обеспечивающий их беспрепятственную работу с новым шаблоном

Переход на Markdown в описаниях объектов

Описание новых Игровых объектов и объекта Игровой механики теперь стало markdown-блоком. Раньше это было поле с форматированием через другой редактор - удобно внутри приложения, но тяжело для разбора за его пределами. Markdown сохраняет всё те же возможности оформления - заголовки, списки, таблицы, жирный текст, ссылки - но при этом контент хранится в простом, универсально читаемом синтаксисе.

Это важнее, чем может показаться: данные геймдизайна всё чаще потребляются движками, инструментами импорта и AI-ассистентами. Все они читают markdown нативно, без дополнительных парсеров и слоёв конвертации. Что вы написали в редакторе, то они и увидят в файле.

Заодно из меню создания ассета исчез старый WYSIWYG-элемент "Text" - теперь там остался только "Текст (.md)". А если нужен свободно форматируемый документ с любым набором блоков - диалоги, диаграммы, свойства, что угодно - для этого существует новый "Пустой элемент": создаёте его и наполняете нужными блоками.

Палитра блоков стала организованной

В списках добавления блоков появились группы: диалог, диаграмма, граф и редактор уровней собраны в один раздел. Устаревшие блоки "Форматированный текст" и Text Grid помечены как deprecated - рекомендуем переходить на современные блоки, и в новых проектах они не занимают первые позиции.

Блок "Список элементов"

В дизайн-документе всегда есть место, где нужно связать группу родственных элементов: персонажей квеста, врагов на уровне, предметы в сундуке. Прежняя схема, предполагавшая создание свойств с типом «Выбор элемента» и включением множественного выбора, отличалась избыточной сложностью.

Новый блок Список элементов отображает группу связанных ассетов в виде наглядных визуальных карточек с иконками и наименованиями, при этом привязка осуществляется как через стандартное диалоговое окно, так и простым перетаскиванием (drag-and-drop), а сортировка регулируется интуитивным перемещением элементов. Настройки блока позволяют задавать фильтрацию по типам и специальным условиям, а сам список экспортируется в системы диалогов в качестве переменной типа «массив ассетов», доступной для итераций, подсчетов и алгоритмической обработки.

Кроме того, функционал свойства «Выбор элемента» (включая единичные ссылки) был расширен за счет внедрения двухуровневой фильтрации. Если параметр Тип ограничивает выбор рамками заданного шаблона, то новое выражение-фильтр Условие осуществляет более глубокую селекцию на основе внутренних свойств самих объектов — к примеру, позволяя отфильтровать противников по их фракционной принадлежности

Блок "Комментарий"

Поскольку над дизайн-документами обычно работает вся команда, возникает необходимость в ремарках, рабочих TODO-заметках и примечаниях для коллег, которые не должны становиться частью основного контента.

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

Прочие изменения

Редактор уровней больше не теряет начальный вид в демонстрационных проектах - холст теперь сам центрируется после изменения размеров.

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

Небольшие изображения - например, спрайты в стиле пиксель-арт - теперь отображаются в галереях с фильтром текстуры "nearest", сохраняющий чёткость графики при масштабировании

Обновлён интерфейс редакторов структур и перечислений.

В блоке «Галерея» теперь можно назначать подписи к изображениям.

Для элементов Markdown теперь тоже можно изменять иконку.

Функция выделения нескольких блоков, копирования и вставки.

Сохраняется директория, в которой был создан последний проект.

Возможность отключения облачной синхронизации.

Индикатор обновления приложения теперь отображает прогресс.

Исправлена ошибка "Type is not set", появлявшаяся при редактировании производного блока.

Исправлена неполадка, препятствовавшая сохранению пользовательских иконок ассетов.

Диалоги теперь берут цвета переменных из единого источника, поэтому их стили всегда соответствуют теме приложения.

Создавайте, Структурируйте, Автоматизируйте вместе с IMS Creators!