К содержанию
fohbook/ grandMA2

Плагины на Lua

Lua внутри консоли: циклы, вычисления и чтение состояния шоу. Нужен там, где есть повторение с изменением.

Когда макросов не хватает: программный доступ к объектам шоу и как начать, если вы не программист.

Тот же текст, другими словами:

Как объяснил бы коллега за пультом: коротко и по делу.

Версия ПО вашего пульта:1 место в статье новее вашей версии
Быстрый выбор:

Плагин — программа на языке Lua, выполняющаяся внутри консоли. Он умеет то, чего не умеет макрос: циклы, вычисления, чтение состояния шоу.

Если задача решается макросом — решайте макросом. Плагин берут, когда есть повторение с изменением: создать сотню объектов по шаблону, разложить приборы по лейауту вычислением, проверить шоу на пустые кью и приборы без группы, сгенерировать набор пресетов, затянуть данные из внешнего файла.

Основы

командная строка
> Lua "gma.echo('привет')"
 

Строка выполняется сразу, результат — в Command Line Feedback.

Изменилось в 3.1 · в вашей версии работает иначе

С 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 · в вашей версии работает иначе

С 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 и в профильных сообществах.

Если вы не программист

Не обязательно писать самому. Полезно уметь:

  • прочитать чужой плагин и понять, что он делает;
  • поправить в нём числа (диапазоны, номера пулов);
  • запустить и понять сообщение об ошибке.

Этого достаточно, чтобы пользоваться чужой работой.

рядом по смыслу