GrandMA2'de Plugin ile Fixture Kontrolü

GrandMA2 plugin sistemi ile Lua dilini kullanarak fixture'ları programatik olarak nasıl kontrol edeceğinizi öğrenin.

GrandMA2 Plugin Sistemi Nedir?

GrandMA2, sahne aydınlatma kontrolünün yanı sıra güçlü bir plugin altyapısı sunar. Bu sistem sayesinde tekrarlayan işlemleri otomatikleştirebilir, özel kullanıcı arayüzleri oluşturabilir ve fixture'larınızı doğrudan kod ile yönetebilirsiniz. GrandMA2 pluginleri Lua programlama dili ile yazılır.

Plugin Ortamını Hazırlamak

Plugin yazmaya başlamadan önce GrandMA2 içinde doğru ortamı oluşturmanız gerekir.

  1. Ana menüden Menu > Plugin yolunu izleyin.
  2. New Plugin seçeneğine tıklayın ve bir isim verin.
  3. Açılan editörde Lua kodunuzu yazmaya başlayabilirsiniz.
  4. Plugini çalıştırmak için Run butonunu veya bir executor'a atamayı kullanın.

Fixture Verilerine Erişmek

GrandMA2'nin Lua API'si, patch edilmiş fixture'lara erişmek için DataPool ve GetHandle fonksiyonlarını kullanır. Bir fixture handle'ı aldıktan sonra onun özelliklerini okuyabilir veya değiştirebilirsiniz.

Belirli bir fixture'ın handle'ını almak için şu yapıyı kullanırsınız:

local fixtureHandle = DataPool().Fixtures[1]

Bu satır, patch listenizdeki ilk fixture'ın referansını fixtureHandle değişkenine atar. Fixture'ın adını konsola yazdırmak için:

Printf("Fixture Adi: " .. fixtureHandle.Name)

Fixture Parametrelerini Kontrol Etmek

Plugin üzerinden fixture kontrolünün en yaygın yöntemi Lua komut enjeksiyonudur. GrandMA2'nin Cmd() fonksiyonu, konsolun kendi komut satırına sanki elle yazıyormuşsunuz gibi komut göndermenizi sağlar.

Temel Komut Örnekleri

Bir fixture'ı seçmek ve dimmer değerini ayarlamak:

Cmd("Fixture 1 At Full")

Birden fazla fixture'ı aynı anda kontrol etmek:

Cmd("Fixture 1 Thru 10 At 50")

Belirli bir attribute'ü hedeflemek için:

Cmd("Fixture 1 Attribute 'Pan' At 128")

Döngü ile Toplu Fixture Kontrolü

Pluginin gerçek gücü, döngüler ile ortaya çıkar. Aşağıdaki örnek 1'den 12'ye kadar olan fixture'ların dimmer değerini sırayla farklı seviyelere getirir:

for i = 1, 12 do Cmd("Fixture " .. i .. " At " .. (i * 8)) end
İpucu: Cmd() fonksiyonu ile gönderilen komutlar konsol geçmişine düşmez. Test aşamasında Printf() ile önce komutu ekrana yazdırıp doğruluğunu kontrol edin.

Plugin İçinde Kullanıcı Girdisi Almak

Daha etkileşimli pluginler için TextInput() fonksiyonunu kullanarak kullanıcıdan veri alabilirsiniz. Bu yöntem özellikle hangi fixture grubunun etkileneceğini dinamik olarak belirlemek için kullanışlıdır.

local userInput = TextInput("Hangi fixture numarasi?") Cmd("Fixture " .. userInput .. " At Full")

Sık Kullanılan GrandMA2 Lua Fonksiyonları

  • Cmd() — Konsola komut gönderir
  • Printf() — Sistem loguna mesaj yazar
  • TextInput() — Kullanıcıdan metin girdisi alır
  • GetTime() — Geçerli sistem saatini döndürür
  • DataPool() — Show data havuzuna erişim sağlar
  • Root() — Konsol nesne ağacının köküne erişir
Dikkat: Plugin kodu çalışırken konsol kilitlenebilir. Sonsuz döngülerden kaçının; döngülerinizde mutlaka bir çıkış koşulu tanımlayın.