GrandMA2 Lua Plugin Geliştirmeye Giriş | MA Academy
GrandMA2 konsolunda Lua diliyle plugin yazmayı öğrenin: temel sözdizimi, API fonksiyonları ve ilk eklentinizi adım adım oluşturun.
GrandMA2 ve Lua: Neden Plugin Yazmalısınız?
GrandMA2, sahne aydınlatma dünyasının en güçlü konsollarından biridir. Ancak asıl gücü yalnızca yerleşik özelliklerden değil, Lua tabanlı plugin sisteminden gelir. Tekrar eden görevleri otomatikleştirmek, özel kullanıcı arayüzleri oluşturmak veya show dosyanıza özgü araçlar geliştirmek için Lua scriptleri yazabilirsiniz.
Lua, hafif ve öğrenmesi kolay bir betik dilidir. GrandMA2'nin Lua 5.1 motorunu kullandığını unutmayın; bu nedenle daha yeni Lua sürümlerine özgü bazı fonksiyonlar mevcut olmayabilir.
Geliştirme Ortamını Hazırlamak
Plugin yazmaya başlamadan önce birkaç temel adımı tamamlamanız gerekir:
- GrandMA2 yazılımını (fiziksel konsol veya onPC) açın.
- Show dosyanızda Macro veya Plugin havuzuna gidin.
- Yeni bir plugin nesnesi oluşturun ve düzenleyiciyi açın.
- Harici bir metin editörü kullanıyorsanız (önerilir), dosyayı
.xmlformatında dışa aktarıp düzenleyebilirsiniz.
İpucu: Geliştirme sürecinde GrandMA2 onPC kullanmak, gerçek konsolunuzu riske atmadan test yapmanızı sağlar. Ayrıca Notepad++ veya VS Code gibi editörler Lua sözdizimi renklendirmesini destekler.
İlk Plugin: Temel Yapı
Her GrandMA2 Lua plugini bir ana fonksiyon içermelidir. Konsol bu fonksiyonu çağırarak scripti çalıştırır:
local function main() Printf("Merhaba MA Dünyası!") end return mainBurada Printf, GrandMA2'nin kendi komut satırı çıktı fonksiyonudur. Lua'nın standart print() fonksiyonu konsolda çalışmaz; her zaman MA API fonksiyonlarını kullanmalısınız.
Temel MA API Fonksiyonları
GrandMA2, Lua ortamına özel bir API sunar. En sık kullanılan fonksiyonlar şunlardır:
- Printf(metin) — Konsolun komut satırına mesaj yazar.
- Cmd(komut) — MA komut satırı komutlarını programatik olarak çalıştırır. Örnek:
Cmd("Go+ Cue 1 Executor 101") - GetVar(degisken_adi) — Konsol değişkenlerini okur.
- SetVar(degisken_adi, deger) — Konsol değişkenlerine değer yazar.
- gma.sleep(saniye) — Scripti belirtilen süre bekletir.
- gma.gui.msgbox(baslik, mesaj) — Kullanıcıya açılır mesaj penceresi gösterir.
Kullanıcıdan Girdi Almak
Daha etkileşimli pluginler için kullanıcıdan veri alabilirsiniz:
local function main() local deger = gma.gui.input("Executor numarası girin", "101") if deger ~= nil then Cmd("Go+ Executor " .. deger) end end return mainBu örnekte gma.gui.input fonksiyonu bir diyalog kutusu açar. Kullanıcı iptal ederse fonksiyon nil döner, bu yüzden nil kontrolü yapmak iyi bir alışkanlıktır.
Hata Yönetimi ve Debug
Plugin geliştirirken hatalar kaçınılmazdır. GrandMA2'de hata ayıklamak için şu yöntemleri kullanın:
- Kritik kod bloklarını
pcall()ile sararak çökmeleri yakalayın. - Değişken değerlerini
Printf(tostring(degisken))ile konsola yazdırın. - Konsol System Monitor ekranını açık tutun; Lua hataları burada görünür.
Dikkat: gma.sleep() kullanırken konsolun diğer işlemlerini bloke etmemeye özen gösterin. Uzun döngülerde kısa uyku süreleri tercih edin.Plugin'i Kaydetmek ve Çalıştırmak
Kodunuzu tamamladıktan sonra plugin nesnesini kaydedin. Plugini çalıştırmak için birkaç yöntem mevcuttur:
- Plugin havuzundaki nesneye çift tıklamak
- Bir executor butonuna atayarak tetiklemek
- Komut satırından
Plugin 1komutuyla çağırmak - Bir macro içinde çalıştırmak
Bu temel yapıyı kavradıktan sonra daha ileri konulara geçebilirsiniz: fixture parametrelerine erişim, özel GUI panelleri oluşturma ve show verilerini okuma/yazma gibi konular GrandMA2 Lua ekosisteminin gerçek gücünü ortaya koyar.