Плагины на Lua
Lua внутри консоли: циклы, вычисления и чтение состояния шоу. Нужен там, где есть повторение с изменением.
Когда макросов не хватает: программный доступ к объектам шоу и как начать, если вы не программист.
Как объяснил бы коллега за пультом: коротко и по делу.
Плагин — программа на языке Lua, выполняющаяся внутри консоли. Он умеет то, чего не умеет макрос: циклы, вычисления, чтение состояния шоу.
Если задача решается макросом — решайте макросом. Плагин берут, когда есть повторение с изменением: создать сотню объектов по шаблону, разложить приборы по лейауту вычислением, проверить шоу на пустые кью и приборы без группы, сгенерировать набор пресетов, затянуть данные из внешнего файла.
Основы
> Lua "gma.echo('привет')"
Строка выполняется сразу, результат — в Command Line Feedback.
С 3.1 плагины пишутся на Lua 5.3: реализация языка в консоли переписана заново.
| Функция | Что делает |
|---|---|
gma.cmd(строка) |
Выполнить команду командной строки |
gma.echo(строка) |
Вывести сообщение в фидбек |
gma.feedback(строка) |
То же, в другое окно |
gma.sleep(секунды) |
Пауза |
gma.show.getvar / setvar |
Переменные шоу |
gma.gui.confirm(строка) |
Диалог подтверждения |
gma.gui.textinput(...) |
Запрос текста у пользователя |
Двадцать групп по одному прибору:
return function()
for i = 1, 20 do
gma.cmd("Fixture " .. i)
gma.cmd("Store Group " .. (100 + i))
gma.cmd('Label Group ' .. (100 + i) .. ' "Прибор ' .. i .. '"')
end
gma.cmd("Clear")
gma.echo("Готово: создано 20 групп")
end
Где живут плагины
В пуле плагинов; редактор открывается по Edit Plugin 1. Код пишут прямо
в консоли или подкладывают файлом в папку плагинов шоу.
> ReloadPlugins > ListPluginLibrary
ReloadPlugins перечитывает файлы после правки во внешнем редакторе.
Как не потерять шоу
Пишите во внешнем редакторе, а не в консольном: подсветка и автодополнение
экономят время, ReloadPlugins подхватит изменения.
Прежде чем выполнять команды, выведите их через gma.echo и убедитесь, что
строки складываются правильно.
Плагин работает через тот же программер, что и вы, поэтому Clear в конце
обязателен.
gma.cmd("Delete ...") в цикле — самый быстрый способ потерять шоу.
Сохраняйтесь перед первым запуском нового плагина и тестируйте на копии.
Если вы не программист
Писать самому необязательно. Сообщество и MA публикуют плагины для типовых задач — генерация лейаутов, проверка шоу, массовое переименование; искать на форуме MA Lighting и в профильных сообществах.
Полезно уметь три вещи: прочитать чужой плагин и понять, что он делает, поправить в нём числа — диапазоны и номера пулов, — запустить и разобрать сообщение об ошибке.
Плагин — программа на языке Lua, выполняющаяся внутри консоли. Он умеет то, чего не умеет макрос: циклы, вычисления, чтение состояния шоу.
Когда это нужно
- Создать сотню объектов по шаблону.
- Разложить приборы по лейауту вычислением, а не руками.
- Проверить шоу на ошибки: пустые кью, приборы без группы, дубликаты.
- Сгенерировать сложный набор пресетов или эффектов.
- Импортировать данные из внешнего файла.
Если задача решается макросом — решайте макросом. Плагин нужен там, где есть повторение с изменением.
Основы
> Lua "gma.echo('привет')"
Строка выполняется сразу, результат — в Command Line Feedback.
С 3.1 плагины пишутся на Lua 5.3: реализация языка в консоли переписана заново.
Основные функции API:
| Функция | Что делает |
|---|---|
gma.cmd(строка) |
Выполнить команду командной строки |
gma.echo(строка) |
Вывести сообщение в фидбек |
gma.feedback(строка) |
То же, в другое окно |
gma.sleep(секунды) |
Пауза |
gma.show.getvar / setvar |
Переменные шоу |
gma.gui.confirm(строка) |
Диалог подтверждения |
gma.gui.textinput(...) |
Запрос текста у пользователя |
Простой пример
Создать двадцать групп по одному прибору:
return function()
for i = 1, 20 do
gma.cmd("Fixture " .. i)
gma.cmd("Store Group " .. (100 + i))
gma.cmd('Label Group ' .. (100 + i) .. ' "Прибор ' .. i .. '"')
end
gma.cmd("Clear")
gma.echo("Готово: создано 20 групп")
end
Где живут плагины
Пул плагинов. Редактор открывается по Edit Plugin 1. Код можно писать прямо в
консоли или подкладывать файлом в папку плагинов шоу.
> ReloadPlugins > ListPluginLibrary
ReloadPlugins перечитывает файлы после правки во внешнем редакторе — удобно,
если пишете код на компьютере.
Практические советы
Пишите в файл, а не в консольном редакторе. Внешний редактор с подсветкой
и автодополнением экономит время; ReloadPlugins подхватит изменения.
Начинайте с echo. Прежде чем выполнять команды, выведите их в фидбек и убедитесь, что строки формируются правильно.
Не забывайте Clear. Плагин работает через тот же программер, что и вы.
Делайте бэкап перед запуском. Плагин, который создаёт объекты в цикле, может за секунду перезаписать половину шоу.
gma.cmd("Delete ...") в цикле — самый быстрый способ потерять шоу. Всегда
сохраняйтесь перед первым запуском нового плагина и тестируйте на копии.
Готовые плагины
Сообщество и MA публикуют плагины для типовых задач: генерация лейаутов, проверка шоу, массовое переименование. Ищите на форуме MA Lighting и в профильных сообществах.
Если вы не программист
Не обязательно писать самому. Полезно уметь:
- прочитать чужой плагин и понять, что он делает;
- поправить в нём числа (диапазоны, номера пулов);
- запустить и понять сообщение об ошибке.
Этого достаточно, чтобы пользоваться чужой работой.