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

Плагины на Lua

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

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

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

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

Основы

командная строка
> Lua "gma.echo('hello')"
 

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

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

С 3.1 плагины пишутся на Lua 5.3: реализация языка в консоли переписана заново.

Функция Что делает
gma.cmd(строка) Выполнить команду Command Line
gma.echo(строка) Вывести сообщение в фидбек
gma.feedback(строка) То же, в другое окно
gma.sleep(секунды) Пауза
gma.show.getvar / setvar Переменные шоу
gma.gui.confirm(строка) Диалог подтверждения
gma.gui.textinput(...) Запрос текста у пользователя

Двадцать групп по одному Fixture:

return function()
  for i = 1, 20 do
    gma.cmd("Fixture " .. i)
    gma.cmd("Store Group " .. (100 + i))
    gma.cmd('Label Group ' .. (100 + i) .. ' "Fix ' .. i .. '"')
  end
  gma.cmd("Clear")
  gma.echo("Done: 20 groups created")
end

Где хранятся плагины

В Pool плагинов; редактор открывается по Edit Plugin 1. Код пишут прямо в консоли или копируют файлом в папку плагинов шоу.

командная строка
> ReloadPlugins
> ListPluginLibrary
 

ReloadPlugins перечитывает файлы после правки во внешнем редакторе.

Как не потерять шоу

Пишите во внешнем редакторе, а не в консольном: подсветка и автодополнение экономят время, ReloadPlugins подхватит изменения.

Прежде чем выполнять команды, выведите их через gma.echo и убедитесь, что строки складываются правильно.

Плагин работает через тот же Programmer, что и вы, поэтому Clear в конце обязателен.

Так делать нельзя

gma.cmd("Delete ...") в цикле с ошибкой в диапазоне удалит больше, чем задумано. Сохраняйтесь перед первым запуском нового плагина и тестируйте на копии.

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

Писать самому необязательно. Сообщество и MA публикуют плагины для типовых задач — генерация Layout, проверка шоу, массовое переименование; их стоит искать на форуме MA Lighting и в профильных сообществах.

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

Нашли в статье ошибку, устаревшее или непонятное место?

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