Кнопка в макросе DaVinci Resolve: как добавить и настроить

Кнопка в макросе — зачем она вообще нужна? Кнопка умеет запускать любую команду операционной системы, а значит с её помощью можно сделать многое. Практическая история: кнопка открывает веб-страницу — сайт или, например, видео на YouTube с инструкцией. Особенно пригодится тем, кто собирает макросы не только для себя, но и делится ими с другими.
Кнопка умеет не только открывать ссылку — она может запустить скрипт, вызвать fuse (свой инструмент на Lua) или вообще любую команду операционной системы.
Кнопка добавляется так же, как надпись или выпадающий список, — прямо внутри Resolve, без стороннего редактора. Но чтобы кнопка одинаково работала и на Windows, и на Mac, код придётся немного подправить руками. Заодно тем же кодом можно переместить кнопку в любое место на панели.
Что нужно заранее:
- Ты на странице Fusion.
- Дорабатываешь готовый инструмент/эффект — или собираешь свой с нуля.
- На выходе получится GroupOperator или MacroOperator (макрос).
- Готовый макрос одинаково работает на страницах Fusion, Edit и Cut.
Добавляем кнопку через интерфейс
- Выдели узел, на который хочешь добавить кнопку.
- Правый клик → Edit Controls.
- В поле Type Name впиши название кнопки.
- Type оставь как есть — Number.
- Выбери страницу (Page), где должна показываться кнопка — обычно User.
- Сними галочку с Animatable.
- Поставь галочку на Passive.
- В поле Input Ctrl выбери ButtonControl.
- В поле Execute впиши команду запуска браузера — для Windows:
os.execute('start "" "твоя_ссылка"') --WindowsДля Mac та же строка, но с open вместо start:
os.execute('open "" "твоя_ссылка"') --MacНажми OK — готово. Кнопка появится внизу инспектора той страницы, что ты выбрал на шаге 5. Клик — и браузер по умолчанию откроет указанный адрес. На долю секунды при этом может мелькнуть окно терминала или командной строки — это нормально, так выглядит запуск команды операционной системы со стороны.
Кросс-платформенный вариант
Если заранее не знаешь, на чьём компьютере окажется макрос — Windows или Mac, — надёжнее прописать обе команды сразу в коде узла. Автор оригинала даже встречал утверждение, что open срабатывает и на Mac, и на Windows, но полагаться на это не стоит — лучше прописать явно.
Правишь тот же раздел, что интерфейс создал за тебя при добавлении кнопки, — UserControls:
UserControls = ordered() {
Button = {
LINKS_Name = "Button",
LINKID_DataType = "Number",
INPID_InputControl = "ButtonControl",
INP_Integer = false,
INP_External = false,
INP_Passive = true,
BTNCS_Execute = [[
os.execute('open "" "https://www.blackmagicdesign.com/"')
os.execute('start "" "https://www.blackmagicdesign.com/"')
]],
},
}
Строки с open и start вместе в одном BTNCS_Execute — вот и весь секрет: сработает та команда, которая понятна текущей операционной системе, вторая просто ничего не сделает.
BTNCS_Execute — мощная штука и умеет запускать почти что угодно. Ссылка не обязана быть веб-страницей: можно указать путь к файлу на компьютере — так кнопка откроет локальную html-страницу или PDF.
Если нужно две кнопки
Добавь вторую кнопку тем же способом на тот же узел, а затем в поле Width (оно прямо над Execute) выстави каждой кнопке значение 0.5 — так они встанут рядом, разделив панель пополам.
На этом всё: простая с виду кнопка, а открывает дорогу к любой команде операционной системы прямо из интерфейса Resolve — от открытия сайта до запуска стороннего скрипта.
Обсуждение
0На этой странице
Шпаргалки
Ёмкие разборы инструментов DaVinci Resolve — сохраняй, возвращайся, когда нужно быстро вспомнить деталь.
Все шпаргалки