GrandMA2 Lua Plugin Geliştirmeye Giriş | MA Academy
GrandMA2 konsolunda Lua diliyle plugin geliştirmeye başlamak için temel kavramlar, komutlar ve ilk plugin örneği.
GrandMA2'de Lua Plugin Nedir?
GrandMA2 konsolu, kullanıcıların kendi otomasyon araçlarını ve iş akışlarını oluşturabilmesi için Lua 5.1 betik dilini destekler. Bir plugin, konsolun arayüzüne entegre edilen, belirli görevleri otomatikleştiren küçük bir programdır. Tekrarlayan fixture ayarları, özel fade hesaplamaları ya da toplu cue düzenlemeleri gibi işlemler için plugin yazmak büyük zaman kazancı sağlar.
Geliştirme Ortamını Hazırlamak
Plugin geliştirmeye başlamadan önce konsolda birkaç ayarı yapmanız gerekir. GrandMA2 yazılımı plugin dosyalarını belirli bir dizinde arar.
- Plugin dosyaları .xml uzantılıyla kaydedilir ve Lua kodu bu XML içine gömülür
- Dosyalar konsolda
gma2/plugins/klasörüne yerleştirilmelidir - Harici bir metin editörü (VS Code, Notepad++ vb.) kullanarak rahatça yazabilirsiniz
- Değişikliklerin geçerli olması için konsolda Reload yapmanız yeterlidir
Plugin Dosyasının Temel Yapısı
Her GrandMA2 plugin dosyası bir XML iskeletine sahiptir. Lua kodu bu iskeletin içinde CDATA bloğu olarak yer alır.
Temel bir plugin şablonu şu şekilde görünür:
<Plugin><Name>IlkPlugin</Name><Author>Adiniz</Author><Version>1.0</Version><Execute><![CDATA[ function IlkPlugin() Printf("Merhaba MA!") end ]]></Execute></Plugin>
Execute bloğu içindeki fonksiyon, plugin çalıştırıldığında tetiklenen ana fonksiyondur. Fonksiyon adının plugin adıyla eşleşmesi zorunludur.
Temel GrandMA2 Lua Fonksiyonları
GrandMA2, standart Lua kütüphanesine ek olarak konsola özgü fonksiyonlar sunar. En sık kullanılanları şunlardır:
Printf("metin")— Sistem ekranına mesaj yazdırırCmd("komut")— Konsol komut satırına komut gönderirGetVar("degisken")— Konsol değişkenlerini okurSetVar("degisken", deger)— Konsol değişkenine değer atargma.sleep(saniye)— Belirtilen süre kadar beklergma.echo("metin")— MA komut çıktısına mesaj basar
İlk Gerçek Plugin: Sahneyi Temizle
Aşağıdaki örnek, çalıştırıldığında tüm executor'ları kapatıp programmer'ı sıfırlayan basit ama kullanışlı bir plugindir:
function SahneTemizle() Cmd("Off Executor 1 Thru 100") gma.sleep(0.5) Cmd("ClearAll") Printf("Sahne temizlendi!") end
Cmd() fonksiyonu içine yazdığınız metin, GrandMA2 komut satırına birebir gönderilir; dolayısıyla konsol komut sözdizimini bilmek büyük avantaj sağlar.
Kullanıcıdan Girdi Almak
Plugin'lerinizi daha esnek hale getirmek için kullanıcıdan değer alabilirsiniz. gma.input() fonksiyonu ekranda bir giriş kutusu açar:
function FadeAyarla() local sure = gma.input("Fade süresi (saniye):", "2", "Fade Ayarı") if sure then Cmd("Attribute Dimmer Fade " .. sure) end end
İpucu: Kullanıcı giriş kutusunu kapatırsagma.input()nil döndürür. Bu yüzden her zamanif sure thengibi bir kontrol eklemeyi alışkanlık haline getirin; aksi hâlde plugin hata verir.
Plugin'i Konsola Bağlamak
Plugin dosyasını kaydettiğinizde konsol otomatik tanımaz; aşağıdaki adımları izlemeniz gerekir:
- Plugin klasörüne dosyayı kopyalayın
- GrandMA2 menüsünden Menu > Plugins ekranını açın
- Reload butonuna basın
- Plugin listesinde adınızın göründüğünü doğrulayın
- Plugin'i bir executor butonu veya macro'ya atayarak hızlı erişim sağlayın
Lua'nın sade sözdizimi ve GrandMA2'nin güçlü komut kütüphanesi birleştiğinde konsolunuz çok daha akıllı bir araca dönüşür. Küçük ihtiyaçlardan başlayıp giderek karmaşık otomasyon senaryoları geliştirmek için bu temel yapı yeterli bir başlangıç noktasıdır.