GrandMA3 Lua Plugin API'sine Giriş: Temel Kavramlar
GrandMA3'ün güçlü Lua eklenti sistemiyle kendi araçlarınızı nasıl geliştireceğinizi adım adım öğrenin.
GrandMA3 Lua Plugin API Nedir?
GrandMA3, sahne aydınlatma konsollarının en gelişmiş yazılımlarından biri olmasının yanı sıra, kullanıcıların kendi araçlarını yazmasına olanak tanıyan güçlü bir Lua tabanlı plugin sistemi sunar. Bu sistem sayesinde tekrarlayan görevleri otomatikleştirebilir, özel kullanıcı arayüzleri oluşturabilir ve konsol ile doğrudan iletişim kurabilirsiniz.
Lua, hafif ve öğrenmesi kolay bir betik dilidir. GrandMA3'ün plugin API'si bu dili temel alarak size konsolun iç yapısına erişim sağlar: fixture verileri, gruplar, sekanslar, makrolar ve daha fazlası doğrudan Lua kodu üzerinden yönetilebilir.
Plugin Ortamını Hazırlamak
GrandMA3'te yeni bir plugin oluşturmak için önce Plugin Pool'a gitmeniz gerekir. Menu > Plugins yolunu izleyerek plugin havuzuna ulaşabilirsiniz. Buradan Add butonuyla yeni bir plugin nesnesi oluşturun ve içine bir Script ekleyin.
Her plugin en az bir main() fonksiyonu içermelidir. Konsol bu fonksiyonu çalıştırmayı tetiklediğinde Lua motoru devreye girer.
local function main()
Printf("Merhaba, GrandMA3!")
end
return mainİpucu: Printf() fonksiyonu çıktıyı sistem komut satırına yazar. Geliştirme sürecinde hata ayıklamak için oldukça kullanışlıdır.Temel API Fonksiyonları
GrandMA3 Lua API'si onlarca yerleşik fonksiyon sunar. En sık kullanılan kategoriler şunlardır:
Veri Okuma
GetVar("variableName")— Konsol değişkenlerini okurDataPool()— Aktif data pool nesnesine erişim sağlarRoot()— Show dosyasının kök nesnesine ulaşır
Komut Çalıştırma
Cmd("Go+ Seq 1")— Herhangi bir konsol komutunu string olarak çalıştırırExecute()— Daha karmaşık komut dizileri için kullanılır
Kullanıcı Etkileşimi
ErrPrintf()— Hata mesajı gösterirWaitForInput()— Kullanıcıdan onay bekler
İlk Gerçek Plugin: Fixture Sayacı
Aşağıdaki örnek, sahnedeki toplam fixture sayısını ekrana yazdıran basit bir plugin göstermektedir:
local function main()
local fixturePool = Root().ShowData.DataPools.Default.Fixtures
local count = fixturePool.ElementCount
Printf("Toplam fixture sayisi: " .. tostring(count))
end
return mainBu örnekte Root() ile show dosyasının en üst nesnesine iniyoruz, ardından varsayılan data pool içindeki Fixtures nesnesine ulaşarak ElementCount özelliğini okuyoruz.
Plugin Geliştirirken Dikkat Edilmesi Gerekenler
- Hata yakalama kullanın:
pcall()ile fonksiyonlarınızı sarmalayın; beklenmedik hatalar konsolun donmasına yol açabilir. - Sürüm uyumluluğunu kontrol edin: GrandMA3 yazılım güncellemeleri API davranışını değiştirebilir, release notları takip edin.
- Performansa dikkat edin: Show sırasında çalışan pluginler döngüye girirse lighting engine'i etkileyebilir.
- Yedek alın: Plugin geliştirme yaparken show dosyanızın yedeğini düzenli olarak kaydedin.
Önemli Not: GrandMA3 Lua ortamı standart Lua 5.3 kütüphanelerinin tamamını desteklemez.ioveosgibi modüller güvenlik nedeniyle kısıtlıdır; dosya işlemleri için konsolun kendi API fonksiyonlarını kullanmanız gerekir.
Plugin API'si, GrandMA3'ü sadece bir konsol olmaktan çıkarıp programlanabilir bir otomasyon platformuna dönüştürür. Temel fonksiyonları kavradıktan sonra makro yönetimi, dinamik grup oluşturma ve hatta özel kullanıcı panelleri geliştirmek mümkün hale gelir.