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