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:

  1. GrandMA2 yazılımını (fiziksel konsol veya onPC) açın.
  2. Show dosyanızda Macro veya Plugin havuzuna gidin.
  3. Yeni bir plugin nesnesi oluşturun ve düzenleyiciyi açın.
  4. Harici bir metin editörü kullanıyorsanız (önerilir), dosyayı .xml formatı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 main

Burada 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 main

Bu ö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 1 komutuyla ç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.