Plugin на Lua
Полноценный язык внутри пульта. Нужен там, где Macro не хватает условий и циклов; большинство задач решается без него.
Plugin — программа на Lua, выполняющаяся внутри пульта. В отличие от Macro, это полноценный язык: переменные, условия, циклы, работа с Object шоу.
Версия Lua — 5.4.6.
Ядро Lua обновлено до 5.5.0. Plugin, хранящийся в Showfile в виде скомпилированного байткода, на новом ядре не запустится: его нужно пересобрать из исходника. Plugin, хранящиеся текстом, переносятся как есть.
Когда это оправдано
Пакетная обработка: переименовать сотню Object по правилу, раздать адреса, построить группы из Patch.
Проверки перед шоу: пройтись по шоу и сообщить о том, что забыто.
Диалоги с оператором: спросить параметр и выполнить действие с ним.
Интеграции: обмен данными с внешними системами.
Что нужно понимать
Plugin работает с деревом Object, поэтому знание структуры данных важнее знания синтаксиса Lua: язык можно освоить за вечер.
Редактор
В редакторе Plugin есть номера строк, показ табуляции, библиотека шаблонов кода, панель документации API и подсветка синтаксических ошибок.
Панель API — то, с чего стоит начинать: она отвечает на вопрос «как называется функция, которая мне нужна», быстрее любого поиска.
HasActivePlayback() объявлена устаревшей и будет убрана. Вместо неё
IsRunningPlayback() с той же сигнатурой. Функция пока работает,
но на каждом запуске пишет предупреждение в Message Center.
Где брать
- сообщество: форумы MA и репозитории с открытым кодом;
- собственные, написанные под конкретное шоу;
- шаблоны, которые проще переписать, чем изучать с нуля.
Чужой Plugin — это чужой код, выполняющийся на вашем пульте с полными правами. Читайте, что он делает, и проверяйте на копии шоу, а не на боевом файле за час до концерта.
Plugin против Macro
| Признак | Macro | Plugin |
|---|---|---|
| Логика | Последовательность | Полноценная программа |
| Условия и циклы | Нет | Да |
| Порог входа | Минуты | Часы |
| Отладка | Простая | Нужен опыт |
| Риск | Ограниченный | Выше |
Большинство задач автоматизируются Macro. Plugin нужны там, где вы делаете одно и то же над десятками Object и делаете это регулярно.
С чего начать
> Plugin 1
- Написать Plugin, который выводит сообщение, — убедиться, что цепочка работает.
- Научиться читать Object шоу и печатать их имена.
- Сделать первый полезный: например, отчёт по Patch.
Дальше станет видно, что стоит автоматизировать: это становится очевидным на третьем шоу подряд с одинаковой рутиной.
Нашли в статье ошибку, устаревшее или непонятное место?