GrandMA2 Lua ile Otomatik Cue Oluşturma

GrandMA2 üzerinde Lua scripting kullanarak otomatik cue oluşturmayı ve plugin geliştirmeyi adım adım öğrenin.

GrandMA2'de Lua Scripting ile Cue Otomasyonu

GrandMA2, yerleşik Lua scripting motoru sayesinde tekrarlayan görevleri otomatikleştirmenize olanak tanır. Özellikle büyük prodüksiyonlarda onlarca cue'yu elle girmek yerine, bir Lua scripti birkaç saniyede tüm bu işi halleder. Bu yaklaşım hem zaman kazandırır hem de insan kaynaklı hataları minimuma indirir.

Temel Yapı: Bir Plugin Nasıl Başlar?

GrandMA2 plugin'leri, konsolun Plugin Pool'una yüklenen Lua dosyalarıdır. Her plugin bir return ifadesiyle bir fonksiyon döndürmelidir. Konsolun çalıştırabileceği en basit plugin yapısı şöyledir:

local function main() gma.echo('Plugin başlatıldı') end return main

Bu yapıyı anladıktan sonra, cue oluşturma komutlarını bu fonksiyonun içine yerleştirmeye başlayabilirsiniz.

gma.cmd() ile Konsol Komutları Çalıştırma

Lua'dan GrandMA2 komut satırına erişmenin temel yolu gma.cmd() fonksiyonudur. Bu fonksiyon, konsolun komut satırına yazabileceğiniz her şeyi çalıştırabilir.

Örneğin belirli bir executor'da yeni bir cue oluşturmak için:

gma.cmd('Store Cue 1.0 Executor 1')

Birden fazla cue oluşturmak istediğinizde ise bir döngü kullanmak çok daha pratiktir:

for i = 1, 10 do gma.cmd('Store Cue ' .. i .. '.0 Executor 1') gma.sleep(0.1) end

Önemli Not: gma.sleep() çağrıları, komutlar arasına küçük gecikmeler ekler. Konsol her komutu işlemeden bir sonrakine geçmemesi için bu gecikmeleri ihmal etmeyin; aksi takdirde bazı komutlar kaybolabilir.

Cue Özelliklerini Otomatik Atamak

Sadece cue oluşturmakla kalmayıp, her cue'ya otomatik olarak fade süresi, delay ve label atayabilirsiniz. Aşağıdaki örnek, 5 cue oluşturur ve her birine artan fade süreleri uygular:

  1. Executor ve sequence numarasını belirleyin
  2. Döngü içinde cue'yu Store komutuyla kaydedin
  3. Hemen ardından Attribute veya Assign komutuyla özellik atayın
  4. Her cue için anlamlı bir label ekleyin

for i = 1, 5 do local fadeTime = i * 0.5 gma.cmd('Store Cue ' .. i .. ' Executor 1') gma.sleep(0.1) gma.cmd('Assign Cue ' .. i .. ' Executor 1 /Fade=' .. fadeTime) gma.sleep(0.1) gma.cmd('Label Cue ' .. i .. ' Executor 1 "Sahne ' .. i .. '"') gma.sleep(0.1) end

Kullanıcıdan Input Almak

Plugin'inizi daha esnek hale getirmek için gma.textinput() fonksiyonuyla kullanıcıdan değer alabilirsiniz. Bu sayede kaç cue oluşturulacağını script çalışırken belirlemek mümkün olur:

local cueSayisi = tonumber(gma.textinput('Kaç cue oluşturulsun?', '10'))

  • Kullanıcı bir sayı girmezse tonumber() nil döner; mutlaka kontrol edin
  • Maksimum cue sayısı için bir üst limit koymak scripti güvenli kılar
  • İptal durumunda nil kontrolü yaparak scripti zarif biçimde sonlandırın

Plugin'i Konsolda Test Etmek

Yazdığınız Lua dosyasını USB ile konsola aktardıktan sonra Plugin Pool penceresini açın, dosyayı import edin ve Edit modunda son kez gözden geçirin. Test sırasında gerçek bir sequence yerine boş bir executor kullanmak, mevcut programınızı korumanızı sağlar.

İpucu: gma.echo() fonksiyonunu debug aracı olarak kullanın. Konsolun sistem log ekranında mesajlarınız görünür; bu şekilde döngünün nerede olduğunu veya hangi değerin üretildiğini kolayca takip edebilirsiniz.