GrandMA2'de Koşullu Macro Yazımı: If/Else Kullanımı

GrandMA2 macro sisteminde koşullu ifadeler kullanarak akıllı ve dinamik otomasyon scriptleri yazmayı öğrenin.

GrandMA2 Macro Sisteminde Koşullu Mantık

GrandMA2'nin macro sistemi, yalnızca sıralı komut çalıştırmaktan çok daha fazlasını yapabilir. Koşullu ifadeler sayesinde macronuz mevcut durumu okuyabilir, karar verebilir ve farklı aksiyonlar gerçekleştirebilir. Bu, özellikle tekrar eden görevleri otomatize etmek veya sahne durumuna bağlı tepkiler vermek istediğinizde büyük kolaylık sağlar.

If/Else Yapısının Temelleri

GrandMA2 macro satırlarında koşullu akış için If, Else ve EndIf komutları kullanılır. Temel yapı şu şekildedir:

  1. Bir koşul tanımlanır
  2. Koşul doğruysa çalışacak komutlar yazılır
  3. Else bloğuna geçilir (isteğe bağlı)
  4. EndIf ile blok kapatılır

Temel If/Else Sözdizimi

Macro satır editöründe aşağıdaki yapıyı kullanırsınız:

If [koşul]
[koşul doğruysa çalışacak komut]
Else
[koşul yanlışsa çalışacak komut]
EndIf

Önemli Not: GrandMA2'de macro satırları ayrı satır nesneleri olarak girilir. If, Else ve EndIf her biri ayrı bir macro satırı olmalıdır. Girinti yalnızca okunabilirlik içindir, sistem bunu zorunlu kılmaz.

Değişkenler ve Koşul Tanımları

Koşullu ifadelerin işe yaraması için önce Global Değişkenler veya sistem fonksiyonları ile çalışmanız gerekir. GrandMA2'de değişkenlere Global komutuyla değer atanır:

Global Variable1 = 1

Daha sonra bu değişkeni koşulda kullanabilirsiniz:

If Global.Variable1 == 1

Yaygın Koşul Operatörleri

  • == : Eşittir
  • != : Eşit değildir
  • > : Büyüktür
  • < : Küçüktür
  • >= : Büyük veya eşittir

Pratik Örnek: Playback Durumuna Göre Aksiyon

Aşağıdaki örnekte, bir executor'ın aktif olup olmadığını kontrol eden ve buna göre farklı komutlar çalıştıran bir macro göreceksiniz. Executor 1'in durumuna göre farklı bir cue tetiklenmektedir:

If Executor 1 . IsActive == 1
Go+ Executor 2
Else
Go+ Executor 3
EndIf

Bu yapı sayesinde sahne üzerindeki mevcut duruma göre macro kendi kararını verir; operatörün müdahalesine gerek kalmaz.

Toggle Mantığı Oluşturmak

Koşullu macro'ların en sık kullanıldığı senaryolardan biri toggle işlevidir. Bir değişken 0 ise 1 yap, 1 ise 0 yap:

If Global.Toggle == 0
Global Toggle = 1
Go+ Executor 5
Else
Global Toggle = 0
Off Executor 5
EndIf

İpucu: Toggle macro'larını bir buton executor'a atadığınızda, tek fiziksel butonla iki farklı fonksiyonu kontrol edebilirsiniz. Özellikle sınırlı buton sayısına sahip wing kullanıcıları için çok değerlidir.

İç İçe (Nested) If Kullanımı

Daha karmaşık senaryolarda If blokları iç içe kullanılabilir. Her iç If bloğunun kendi EndIf satırı olması zorunludur. Okunabilirliği korumak için macro satırlarına açıklama (Label) eklemeyi ihmal etmeyin; bu, ileride bakım yapmanızı kolaylaştırır.

  • Her açılan If için bir EndIf yazın
  • İç içe derinlik arttıkça satır etiketleri daha kritik hale gelir
  • Mümkün olduğunda karmaşık koşulları ayrı macro'lara bölerek modüler yapı kurun