マクロのタイミング

Edit Macro ポップアップで気付いたかもしれませんが、CMD 欄に加えて、各マクロ行に対する Wait 欄があります。

デフォルトでは、マクロはすぐに動作して次行の処理を開始します。しかし、この "Follow" の代わりに、次行のマクロの開始前に、秒単位で Wait タイムを指定したり、あるいは次の Go に対する一旦停止や待機を設定したりすることもできます。

最後のマクロ行に対する Wait は不要です。値を指定すると赤で表示されます。

タイムの設定

複雑なマクロを作成する場合、誤ったタイミングは重大な落とし穴になります。卓はマルチ・タスク動作しているため、他のコマンドがすぐに続くと、前の処理がまだ完了していないうちに2番目のコマンドの処理を開始してしまいます。

マクロ行が前行に依存している場合、正しく処理されるためには、後続コマンドの処理が早すぎないように、Wait タイムを付加する必要があります。手動で入力しても、マクロで実行したときにコマンドが動作しないような場合は、Wait タイムを追加する必要があるでしょう。

チャンネル10を50%にパークするマクロを作ってみましょう。

No. CMD Wait
1 Channel 10 At 50 Follow
2 Park Channel 10 Follow

デフォルトの "Follow" では、このマクロは動作しません。チャンネル10を50%に設定するにはいくらか時間がかかりますので、このマクロでは、最初の行が完全に処理される前にチャンネルがパークされてしまいます。

次行に進む前に、最初の行に50ミリ秒を設定することによって、この問題を解決できます。

No. CMD Wait
1 Channel 10 At 50 0.05
2 Park Channel 10 Follow

複雑なマクロを作成する場合、行毎に100ミリ秒(0.1秒)程度のタイミングで開始するとよいでしょう。コマンドが正しく実行されている場合は、Wait を短くしたり "Follow" に設定したりすることで高速化できます。

重要
必要な処理時間は決まっていません。スタンドアロンで動作しているときのタイミングは、複数のステーションやNPUをともなうセッションでは十分ではないことを経験しているでしょう。

 

Go の利用

待ち時間や "Follow" の代わりに "Go" を用いることもできます。Wait 列が "Go" の行に達すると、マクロが停止します。そして、Go コマンドを受け取った場合にのみ後続の行が実行されます。

マクロがエクゼキュータに割り当てられている場合、Go はエクゼキュータ・キーに対するデフォルトの機能です。

ここでは、sACN の入出力をオン/オフするマクロの例を示します。状態に応じて、マクロの名前や枠色も変化します。

No. CMD Wait
1 Assign Root "DMX_Protocols"."sACN" /OutActive=on /InActive=on Follow
2

Appearance Macro "sACN OFF/on" /h=100 /s=100 /br=100

Follow
3 Label Macro "sACN OFF/on" "sACN ON/off" Go
4

Assign Root "DMX_Protocols"."sACN" /OutActive=off /InActive=off

Follow
5

Appearance Macro "sACN ON/off" /h=30 /s=100 /br=100

Follow
6

Label Macro "sACN ON/off" "sACN OFF/on"

Follow

マクロを最初に実行する前に、"sACN OFF/on" という名前を付けておく必要があります。

1行目と4行目では、sACN の出力と入力に対する設定を実際に変更しています。

2行目と5行目では、枠色を変更しています(Appearance)。

3行目と6行目では、マクロの名前を変更しています。

3行目以外のすべての行では、Wait 列が "Follow" になっています。3行目 の "Go" は、"on" と "off" の部分を分けています。ここでマクロが停止し、Go コマンドを待ちます。

マクロに Top コマンドを送ると、最初の行から実行されます。

GoBack は、前のマクロ行を実行します。上の例では、3行目で Go を待っている場合、2行目が実行されます。またマクロがアクティブでない場合は、GoBack で最後のマクロ行が実行されます。

動作中のマクロは、Pause コマンドで休止できます。これは、実行が完了する前に、実際に休止するのに十分なタイミングを持つマクロに対してのみ意味があります。休止中のマクロを続行するには、Go コマンドを実行してください。