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ır
  • Cmd("komut") — Konsol komut satırına komut gönderir
  • GetVar("degisken") — Konsol değişkenlerini okur
  • SetVar("degisken", deger) — Konsol değişkenine değer atar
  • gma.sleep(saniye) — Belirtilen süre kadar bekler
  • gma.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ırsa gma.input() nil döndürür. Bu yüzden her zaman if sure then gibi 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:

  1. Plugin klasörüne dosyayı kopyalayın
  2. GrandMA2 menüsünden Menu > Plugins ekranını açın
  3. Reload butonuna basın
  4. Plugin listesinde adınızın göründüğünü doğrulayın
  5. 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.