GrandMA2 Lua Plugin Geliştirmeye Giriş: Temel Kavramlar
GrandMA2 konsolunda Lua diliyle plugin geliştirmenin temellerini öğrenin; syntax, komutlar ve ilk plugin örneğiyle başlayın.
GrandMA2'de Plugin Nedir?
GrandMA2, kendi işletim sistemi içinde Lua 5.1 programlama dilini destekler. Bu sayede tekrarlayan işlemleri otomatikleştiren, özel kullanıcı arayüzleri oluşturan veya konsol davranışını genişleten küçük programlar yazabilirsiniz. Bu programlara plugin denir ve doğrudan konsolun bellekte çalışır; harici bir bilgisayar gerekmez.
Plugin'ler özellikle büyük prodüksiyonlarda fixture resetleme rutinleri, toplu attribut değişiklikleri veya özel makro zincirleri gibi görevler için büyük zaman tasarrufu sağlar.
Geliştirme Ortamını Hazırlamak
GrandMA2 üzerinde plugin yazmak için konsolda veya MA 3D yazılımında Plugin menüsüne erişmeniz yeterlidir. Ancak kod yazmak için harici bir metin editörü kullanmak çok daha pratiktir.
- Visual Studio Code + Lua eklentisi (önerilen)
- Notepad++ ile Lua syntax vurgulama
- MA showfile yapısına USB üzerinden erişim
Plugin dosyaları .lua uzantısıyla kaydedilir ve show dosyasının içindeki gma2/plugins/ klasörüne yerleştirilir.
Temel Lua Syntax ve GrandMA2 API
Lua dilini hiç bilmeyenler için temel yapı oldukça sade ve okunabilirdir. GrandMA2, standart Lua'ya ek olarak konsola özel fonksiyonlar sunar.
Zorunlu Plugin Fonksiyonları
Her GrandMA2 plugin'i en az iki fonksiyon içermelidir:
function Startup()— Plugin yüklendiğinde bir kez çalışırfunction Main()— Plugin çağrıldığında çalışır
Konsola Komut Göndermek
GrandMA2 API'sinin en sık kullanılan fonksiyonu Cmd()'dir. Bu fonksiyon, komut satırına yazacağınız her şeyi doğrudan konsoldan çalıştırır:
Cmd('Store Cue 1.5 "Intro" /merge')Yukarıdaki örnek, 1. sekansın 5. cue'sunu "Intro" adıyla merge modunda kaydeder.
Kullanıcıya Mesaj Göstermek
Plugin çalışırken operatöre bilgi vermek için Printf() fonksiyonu kullanılır. Çıktı konsolun log ekranında görünür:
Printf('Plugin basariyla calisti!')İlk Plugin: Fixture Resetleme
Aşağıda seçili fixture'ların attribute'larını sıfırlayan basit bir plugin örneği verilmiştir:
function Startup() end function Main() Cmd('ClearAll') Cmd('Attribute "Dimmer" At 0') Cmd('Attribute "Pan" At 50') Cmd('Attribute "Tilt" At 50') Printf('Reset tamamlandi.') endİpucu: Cmd() içine yazdığınız komutları önce konsolun komut satırında test edin. Çalışan komutlar plugin içinde de sorunsuz çalışır.Plugin'i Konsola Yüklemek
- Lua dosyasını USB belleğe kopyalayın
- Konsolda Menu > Import yolunu izleyin
- Plugin'i Plugin Pool'dan bir butona atayın
- Butona basarak test edin
Hata Ayıklama İpuçları
- Syntax hatalarını bulmak için MA onPC üzerinde test edin; hata mesajları daha okunaklıdır
- Her
Cmd()çağrısından sonraPrintf()ile durum logu bırakın - Karmaşık string birleştirmelerde Lua'nın
..operatörünü kullanın:'Cue ' .. cueNumber .. ' olusturuldu'
Lua'nın hafif yapısı ve GrandMA2'nin geniş komut seti bir araya geldiğinde, sahne aydınlatmasında tekrarlayan iş yüklerini dramatik biçimde azaltacak araçlar geliştirmek mümkün hale gelir. Temel syntax'a hakim olduktan sonra döngüler, koşullar ve kullanıcı diyaloglarıyla çok daha güçlü otomasyonlar kurabilirsiniz.