О структуре
Структура, как и весь пакет, представляет собой иерархическую модель вложенных групп и шаблонов использующих язык JSON (JavaScript Object Notation).
Сначала мы разберем развёрнутый пример создания структуры, а далее пройдемся по её основным частям:
- Группы - Контейнеры для шаблонов или иных групп.
- Шаблоны - Описание элементов шаблона и самого файла.
- Элементы - Детали конкретного элемента шаблона (композиции / секвенции или аудио-файла / пресета).
Для создания структуры пакета нам потребуются все эти части (работа с группами, шаблонами и элементами) - дабы создать единую связку с файлами предварительного просмотра, кодом пакета и шаблонами (или же аудио-файлами, пресетами).
Тезис: Процесс написания структуры пакета - это описание деталей файла шаблона и его элементов в вид кода (с правилами которое требует расширение).
Ниже мы разберемся как писать структуру и соединять её с файловой системой.
Пример создания структуры
note
Данный пример будет для After Effects, но также подойдет для иных программ, у которых есть композиции / секвенции (шаблоны).
Для примера: представим, что у нас имеется уже сохраненный шаблон для After Effects (.AEP формат - Minimal.aep), в котором 6 композиций с именами (Minimal 1 ...Minimal 6).
Теперь возникают вопросы:
- Как перенести его в структуру пакета?
- Каким образом указать файлы предварительного просмотра для каждого элемента (композиции)?
- Куда поместить файл шаблона?
На эти вопросы мы и попытаемся получить ответы ниже.
Создадим вот такую структуру нашего шаблона (на основе наших композиций и их имён):
warning
Названия групп, шаблонов и элементов допустимо писать только на латинице без спец.символов (!@#$%^&*+=~`'"\|/)
Описание структуры (код)
Шаблон с названием Minimal (подразумевается файл формата .AEP - но не указывается), внутри которого блок preview (благодаря которому группа стала шаблоном), и перечисление наших элементов (композиций).
Для файлов предварительного просмотра:
Учитывая текущую структуру: ваши файлы предварительного просмотра (внутри папки Atom Preview Assets) должны находится в дополнительной папке Minimal (используется имя шаблона для папки, однако это можно изменить благодаря параметрам настройки группы элементов, а именно параметр custom_folder ).
У вас должны быть файлы двух типов (GIF/PNG) для каждого элемента, с именами идентификаторов (ML_1 ...ML_6) которые указаны в структуре (однако вместо имен идентификаторов можно использовать имена элементов, но для этого нужно добавить специальную настройку для группы элементов, а именно параметр preview_name_instead_id).
Для файла шаблона:
Ваш файл шаблона (.AEP) - должен иметь название Minimal.aep и находится внутри папки Atom After Effects.
Несмотря на название Minimal в структуре, вы можете использовать файл шаблон с иным названием (смотрите подробнее в настройках группы элементов, а именно параметр aep_file_name).
Рассмотрим визуальный пример расположения файлов для написанной структуры:
Данный пример полностью работоспособен, и вы можете проверить свой пакет в тестовом режиме прямо сейчас (помните, что код структуры это только часть кода - пакет это все части кода в одном файле).
Чтобы окончательно проверить работу структуры - попробуйте применить любой элемент, если это будет успешно, то расположение файла шаблона верно (а так как мы видим файлы предварительного просмотра - значит и их расположение верно).
Усложняем структуру
Давайте добавим в наш пакет еще один шаблон для After Effects (файл шаблона: Typo.aep) в котором на этот раз 4 композиции с именами (Stomp 1 ...Stomp 4).
На этот раз мы поместим наш шаблон (в структуре пакета), в дополнительную группу Typography.
Описание структуры (код):
Шаблон с названием Stomp (отличается от фактического Typo.aep) который находится в дополнительной группе Typography, внутри шаблона так же идёт блок preview, и на этот мы используем настройки группы элементов для шаблона (через запятую после блока
preview
).
Настройки групп элементов позволяют изменять параметры для целой группы элементов (после блока preview), и в нашем случае мы меняем следующее:
- preview_name_instead_id - позволяет использовать имена элементов вместо ID для файлов предварительного просмотра.
- custom_folder - позволяет использовать папку с иным названием для файлов предварительного просмотра (как вы помните, имя папки должно соответствовать иерархии указанной в структуре).
- aep_file_name - позволяет использовать другое имя файла шаблона вместо указанного в структуре (по умолчанию указанное название в структуре - должно так же являться файлом шаблона).
Для файлов предварительного просмотра:
Теперь наши файлы предварительного просмотра (для шаблона Stomp, шаблон Minimal мы не трогали) должны быть сначала в папке Typography, внутри которой папка с названием нашего шаблона Stomp.
Однако, как вы помните: выше мы использовали специальный параметр для настройки групп элементов (custom_folder), благодаря которому сменили название папки для файлов предварительного просмотра с Stomp на MySpace (без этого параметра мы бы использовали папку Stomp по умолчанию).
А также всё благодаря тем же настройка группы элементов (preview_name_instead_id) теперь нам нужно использовать имена элементов вместо их идентификационных значений: тоесть теперь, вместо (STM_1 ...STM_4) нам нужно использовать имена (Stomp 1 ...Stomp 4) для файлов (GIF/PNG).
Для файла шаблона:
Мы условились, что название файла шаблона изначально как Typo.aep, однако в структуре указано Stomp - а значит расширение будет искать шаблон с названием Stomp.aep (теперь уже внутри дополнительной папки Typography).
Однако благодаря специальным настройка группы элементов (aep_file_name), мы вновь изменили это и указали иное название нежели в структуре - теперь будет использован файл Typo.aep (несмотря на структуру в которой шаблон указан как Stomp).
Таким образом, добавилась папка Typography (внутри которой должен быть файл шаблона), иное название шаблона для файла, и собственное название в структуре (которое будет указано в меню расширения).
Рассмотрим визуальный пример расположения файлов для написанной структуры (включая прошлый код для Minimal):
В тестовом режиме расширения это будет выглядеть вот так:
note
Если вы захотите добавить еще групп внутри группы и поместить туда свои шаблоны / файлы предварительного просмотра - вам вновь придется создать папки для добавленных групп (соблюдая иерархию вложенности) по аналогии что есть выше.
Полный код проанализированной структуры
В нашем примере мы использовали только блок structure, однако весь пакет состоит из двух основных блоков - settings и structure (смотрите подробнее в создании файла пакета).
А потому вот полный код нашего примера (включая часть settings и открывающийся блок {}).
Далее вы найдете полную информацию по работе с группами, шаблонами и их элементами в структуре пакета.