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

Переменные и условия

Макрос, который принимает значение, считает и ветвится. И признаки того, что задача переросла макросы.

Как сделать макрос, который принимает значение, считает и ветвится.

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

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

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

Переменные превращают макрос из списка команд в маленькую программу.

Вид Команды Где живут
Переменные шоу SetVar, AddVar, ListVar В шоу-файле, общие для всех пользователей
Пользовательские SetUserVar, AddUserVar, ListUserVar У конкретного пользователя

Задать и использовать

командная строка
> SetVar $cue = 5
> Goto Cue $cue
 

Знак $ подставляет значение. AddVar $cue = 1 прибавляет единицу — так получается «следующее кью» с собственным счётчиком.

Посмотреть текущие значения: ListVar, ListUserVar.

Условия

If $mode = 1
   Go Executor 1
EndIf

Блок выполняется, только если условие истинно. Вложенность поддерживается.

Зачем это на шоу

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

AddVar $ep = 1
Goto Cue $ep Executor 3

Второй по частоте случай — режим шоу. $mode хранит репетицию, прогон или спектакль, и макросы ведут себя по-разному:

If $mode = 0
   Assign Cmd Disable Executor 1
EndIf

Строка макроса умеет и спросить значение у оператора — отсюда макросы вида «введи номер кью, я туда перейду и включу подсветку».

Именование

$akt, $pesnya, $rezhim вместо $a, $b. Имя переменной — единственное место, где записан её смысл.

Появилось в 3.7 · в вашей версии этого нет

Переменная $HOSTHARDWARE и функция gma.gethardwaretype() появились в 3.7 и отвечают GMA2 или GMA3 — по тому, на каком железе запущена консоль.

Когда пора на плагин

Переменные хранят числа и строки, арифметика ограничена сложением через AddVar, отладка — выводом в Command Line Feedback.

Больше двух-трёх условий, цикл, вычисления сложнее сложения, работа со списками объектов — задача переросла макросы, см. плагины на Lua.

Переменные превращают макрос из списка команд в маленькую программу.

Два вида переменных

Вид Команды Где живут
Переменные шоу SetVar, AddVar, ListVar В шоу-файле, общие для всех пользователей
Пользовательские SetUserVar, AddUserVar, ListUserVar У конкретного пользователя

Задать и использовать

командная строка
> SetVar $cue = 5
> Goto Cue $cue
 

Знак $ подставляет значение переменной.

командная строка
> AddVar $cue = 1
> Goto Cue $cue
 

Прибавляет единицу — получается «следующее кью» с собственным счётчиком.

Посмотреть значения

командная строка
> ListVar
> ListUserVar
 

Условия

If $mode = 1
   Go Executor 1
EndIf

Блок выполняется, только если условие истинно. Вложенность поддерживается, но глубокие конструкции лучше выносить в плагин.

Практические сценарии

Счётчик повторов. Макрос, который каждый раз запускает следующий эпизод:

AddVar $ep = 1
Goto Cue $ep Executor 3

Режим шоу. Переменная $mode хранит текущий режим (репетиция / прогон / спектакль), а макросы ведут себя по-разному:

If $mode = 0
   Assign Cmd Disable Executor 1
EndIf

Параметризованный макрос. Одна и та же логика для разных групп:

SetVar $gr = 3
Group $gr
Highlight

Меняя одну строку, вы меняете поведение всего макроса.

Переменные и ввод пользователя

В редакторе макроса строка может запрашивать значение у оператора. Так делают макросы вида «введи номер кью — я туда перейду и включу подсветку».

Появилось в 3.7 · в вашей версии этого нет

Переменная $HOSTHARDWARE и функция gma.gethardwaretype() появились в 3.7 и отвечают GMA2 или GMA3 — по тому, на каком железе запущена консоль.

Ограничения

  • Переменные хранят числа и строки, без сложных структур.
  • Арифметика простая: сложение через AddVar, остальное — через плагины.
  • Отладка ограничена выводом в Command Line Feedback.
Именование

Давайте переменным осмысленные имена: $akt, $pesnya, $rezhim, а не $a, $b. Через месяц вы будете читать свой макрос как чужой.

Когда пора переходить на плагин

Если в макросе появились:

  • больше двух-трёх условий;
  • необходимость в цикле;
  • вычисления сложнее сложения;
  • работа со списками объектов —

задача переросла макросы. См. плагины на Lua.

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