GrandMA2 Lua ile Otomatik Cue Oluşturma

GrandMA2'de Lua script kullanarak cue'ları otomatik olarak nasıl oluşturacağınızı adım adım öğrenin.

GrandMA2'de Lua ile Cue Otomasyonu

GrandMA2'nin yerleşik Lua scripting motoru, tekrarlayan cue oluşturma işlemlerini otomatikleştirmenin en etkili yollarından biridir. Özellikle büyük show dosyalarında onlarca veya yüzlerce cue'yu elle girmek hem zaman alır hem de hata riskini artırır. Lua pluginleri bu süreci dakikalar içinde tamamlamanızı sağlar.

Temel Yapı: Plugin Dosyası Oluşturma

GrandMA2'de bir Lua plugin'i çalıştırmak için önce Plugin havuzuna yeni bir plugin eklemeniz gerekir. Menu > Plugins yolunu izleyin ve boş bir slot'a tıklayarak yeni plugin oluşturun. Ardından Edit butonuyla Lua editörünü açın.

Her GrandMA2 Lua plugin'inin temel iskelet yapısı şu şekildedir:

local function main() -- kodlarınız buraya end return main

Fonksiyonun return main ile bitirilmesi zorunludur; aksi takdirde GrandMA2 plugin'i tanımaz.

Cue Oluşturma Komutları

GrandMA2 Lua'da cue oluşturmanın en pratik yolu gma.cmd() fonksiyonudur. Bu fonksiyon, konsolda elle yazacağınız herhangi bir komutu script içinden çalıştırmanıza olanak tanır.

Örneğin Executor 1'deki Sequence'a sırayla 10 cue eklemek için şu yapıyı kullanabilirsiniz:

local function main() for i = 1, 10 do gma.cmd("Store Sequence 1 Cue " .. i .. " /merge") gma.sleep(0.2) end end return main

Burada gma.sleep(0.2) çağrısı kritik öneme sahiptir. GrandMA2'nin komut işleme kuyruğunun dolmasını önlemek için komutlar arasında kısa bir bekleme süresi bırakılmalıdır.

Cue Özelliklerini Programatik Olarak Ayarlamak

Sadece cue oluşturmak değil, her cue'nun fade süresi, delay ve label bilgisini de otomatik olarak atayabilirsiniz.

local function main() local cueCount = 8 local fadeTime = 2.5 for i = 1, cueCount do gma.cmd("Store Sequence 1 Cue " .. i) gma.sleep(0.1) gma.cmd("Assign Sequence 1 Cue " .. i .. " /FadeTime=" .. fadeTime) gma.sleep(0.1) gma.cmd("Label Sequence 1 Cue " .. i .. " \"Scene " .. i .. "\"") gma.sleep(0.1) end end return main
İpucu: Label komutunda Türkçe karakter kullanmaktan kaçının. GrandMA2'nin bazı sürümlerinde özel karakterler label işleminde beklenmedik hatalara yol açabilir.

Kullanıcıdan Girdi Almak

Plugin'inizi daha esnek hale getirmek için gma.textinput() fonksiyonuyla kullanıcıdan veri alabilirsiniz. Bu sayede her çalıştırmada kaç cue oluşturulacağını dinamik olarak belirleyebilirsiniz.

local function main() local input = gma.textinput("Cue Sayisi", "10") local count = tonumber(input) if not count then gma.echo("Gecersiz sayi girdiniz.") return end for i = 1, count do gma.cmd("Store Sequence 1 Cue " .. i .. " /merge") gma.sleep(0.2) end end return main

Hata Kontrolü Neden Önemlidir?

tonumber() fonksiyonu, kullanıcının metin girdiği durumlarda nil döndürür. Bu kontrolü atlamak scriptin çökmesine neden olabilir. Profesyonel plugin yazımında her kullanıcı girdisi mutlaka doğrulanmalıdır.

Sık Yapılan Hatalar

  • gma.sleep() kullanmadan art arda çok sayıda komut göndermek — konsol komutları kaybedebilir
  • Sequence numarasını sabit kodlamak yerine değişken kullanmayı unutmak
  • Plugin'i return main olmadan kaydetmek
  • Lua'da string birleştirme için .. yerine + operatörü kullanmaya çalışmak