ミモライブのオートメーション・レイヤーで生産を合理化する
mimoLiveのAutomationレイヤーは、当初は概念実証として開発されましたが、その後、ユーザーにとって非常に便利なツールであることが証明されました。このレイヤーは、レイヤーのオンとオフを特定の順序で、またはあらかじめ決められた時間に自動化するために使用することができます。
特に、複数のレイヤーや入力を持つ複雑なプロダクションを作成する際に、手動でのスイッチングやタイミング操作が不要になるため便利です。オートメーション・レイヤーがあれば、ユーザーは魅力的なコンテンツの制作に集中し、タイミングやシーケンスはソフトウェアに任せることができます。
例オートメーション層
警告mimoLiveの自動化スクリプトはリアルタイムで実行されません。
mimoLiveのオートメーションスクリプトのタイミングは、ビデオレンダリングエンジンによって呼び出されるHTTPリクエストの非同期性のため、正確ではない可能性があることに注意してください。これらのスクリプトは、APIへのHTTPリクエストに依存しており、これらのリクエストの長さを正確に決定することができないため、タイミングがずれる可能性があります。制作ワークフローで自動化スクリプトを使用する場合は、この点にご留意ください。
前提条件
このレイヤーを機能させるためには、次のスイッチをオンにする必要がある。 HTTP mimoLiveのサーバーでリモートコントロールを有効にする エーピーアイ.次のページへ ミモライブ -> 好み -> リモコン:Allow Remote Control Access "オプションにチェックを入れる。(現在はパスワードなしでのみ動作します)
オートメーション・レイヤーの設定
ライブに切り替わった後のレイヤーの動作には2つのオプションがある:
オプション | 振る舞い |
---|---|
レイヤーの自動オフ | このオプションで使用できるスクリプトは1つだけである。このスクリプトが処理されると、レイヤーは自動的に切り替わる。このオプションは、シーケンスが一度しか実行されない場合に使用できる。 |
手動でレイヤーをオフにする(例:オペレーターによる) | この場合、3つのスクリプトが利用できる。レイヤーがライブに切り替わると、"On Live "スクリプトが処理される。これが完了すると、"While Live "スクリプトが無限ループで処理される。レイヤーがオフになると、"Turned Off "スクリプトが処理される。 特定のフェーズを必要としない場合は、関連するスクリプトを空にしておくことができる。 |
ソースコード コメント
スクリプトの機能を覚えやすくするために、スクリプトにコメントを付けることをお勧めします:
// Now sleep for 5 seconds
sleep(5)
// Start the stopwatch layer:
layerOn(7C4665C4-0E17-4F63-BCFF-B59D68D75956)
!コメントは別の行に書く必要があり、//はその行の先頭に書く必要がある。
スクリプト・コマンド
スクリプト言語は独自のもので、ビューコマンドしかない。
レイヤーオン(エーピーアイ レイヤーID)
このコマンドを使うと、レイヤーまたはレイヤーのバリアントをオンに切り替えることができます。
// switching on a layer by its id
layerOn(234674-se5634-2w435456)
// switching on a layer variant by its id
layerOn(4E38A868-DCB5-4E9C-AC75-231764229BFA/variants/5F18C566-F59F-45B4-8D40-27EF289D47B1)
// switching on a layer by its long API Endpoint URL
layerOn(/api/v1/documents/863743527/layers/68F63C8F-2376-4CA3-9764-CC17CBFC5F8D)
// switching on a layer with a defined variable
setVariable($myLayerID, "234674-se5634-2w435456")
layerOn($myLayerID)
レイヤーオフ(エーピーアイ レイヤーID)
レイヤーまたはレイヤーバリアントをオフにする。このコマンドを使うと、レイヤーまたはレイヤーの変形をオフに切り替えることができます。
// switching off a layer by its id
layerOff(234674-se5634-2w435456)
// switching off a layer variant by its id
layerOff(4E38A868-DCB5-4E9C-AC75-231764229BFA/variants/5F18C566-F59F-45B4-8D40-27EF289D47B1)
// switching off a layer by its long API Endpoint URL
layerOff(/api/v1/documents/863743527/layers/68F63C8F-2376-4CA3-9764-CC17CBFC5F8D)
// switching off a layer with a defined variable
setVariable($myLayerID, "234674-se5634-2w435456")
layerOff($myLayerID)
layerSetRecall(エーピーアイ レイヤーセットID)
このコマンドは、特定のリコールに使用することができます。 レイヤーセット.
// recall a Layer Set by its id
layerSetRecall(E6950B7A-7457-44C5-81F7-972D9B04DBC3)
// recall a Layer Set by its long API Endpoint URL
layerSetRecall(/api/v1/documents/863743527/layer-sets/E6950B7A-7457-44C5-81F7-972D9B04DBC3)
// recall a Layer Set with a defined variable
setVariable($myLayerSetID, "E6950B7A-7457-44C5-81F7-972D9B04DBC3")
layerSetRecall($myLayerSetID)
出力オン(エーピーアイ 出力先ID)
出力先をオンにするには、このコマンドを使用する。
出力オフ(エーピーアイ 出力先ID)
出力先をオフにするには、このコマンドを使用する。
sleep(秒)
sleep()コマンドは、指定した秒数だけスクリプトの計算を一時停止する。
// pause the script computation for 12 seconds
sleep(12)
// pause the script computation for 35.6 seconds
sleep(35.6)
// pause the script computation for a time interval specified by a variable
setVariable($mySleepInterval, 17)
sleep($mySleepInterval)
sleepUntil()HH:MM:SS (24h))
sleepUntil()コマンドは、指定した時間に達するまでスクリプトを一時停止させる。
// sleep until 5:15pm
sleepUntil(17:15:00)
// sleep until 9:12am
sleepUntil(9:12)
// sleep until a time specified by a variable
setVariable($myWakeUpTime, "9:41")
sleepUntil($myWakeUpTime)
sleepOnTheMinute(1|2|3|4|5|6|10|12|15|20|30|60|90|120 …)
このスクリプトコマンドは、次の "分単位 "の摩擦が1時間に達するまで、スクリプトを一時停止する。
// go on every 20 minutes: on the hour, 20 and 40 minutes past the hour:
sleepOnTheMinute(20)
// go on "on the hour"
sleepOnTheMinute(60)
// go on every 10 minutes past the hour (specified by a variable)
setVariable($myWakeUpMinute, "10")
sleepOnTheMinute($myWakeUpMinute)
setVariable($variableName、値)
ローカル変数を定義するには setVariable コマンドを使用する。変数名($の接頭辞付き)と、この変数が持つべき値を指定する必要がある。値は数値、テキスト(引用符で囲む)、ブーリアン値 "true "と "false "を指定することができる。変数は他のコマンドのすべてのフィールドで使用できる。
setVariable($myText, "This is a text")
setVariable($myNumber, 15.73)
setVariable($myBoolValue, false)
セットグローバル($variableName、値)
グローバル変数は、現在のレイヤー、またはこのレイヤーより上のすべてのオートメーションレイヤーで使用することができます。これは、すべてのオートメーションレイヤーで同じ情報を持ちたい場合に非常に便利である(例えば エーピーアイ あるレイヤーのID)。変数の値については、説明したsetVariableコマンドと同じです。
グローバル変数は、そのレイヤーがライブである限り、他のオートメーションレイヤーにも有効であることに注意してください。このように、異なるグローバル変数定義の異なるレイヤーに切り替えることで、グローバル変数を切り替えることができます。
setGlobal($myGlobalText, "This is a text")
setGlobal($myGlobalNumber, 15.73)
setGlobal($myGlobalBoolValue, false)
ifLayerIsOn() - ifLayerIsOff() [else] endif
これらのif文は、あるレイヤーが現在ライブかどうかをテストしている。そうでなければ、elseかendifが見つかるまで、以下のコマンドはスキップされる。
setVariable($myLayerA, "D6A326CA-72E6-45E5-836D-9795F8F534F4")
setVariable($myLayerB, "8C58DEA7-CCBE-44CB-A60F-97C5BD456C68")
ifLayerIsOn($myLayerA)
// the layer is live, switch it off
layerOff($myLayerA)
else
// the layer is currently off, switch it on
layerOn($myLayerA)
endif
ifLayerIsOff($myLayerB)
// the layer is currently off, switch it on
layerOn($myLayerB)
endif
ifLayerSetIsActive() - ifLayerSetIsInactive() [else] endif
これらのif文は、特定の レイヤーセット もしそうなら、次のコマンドが処理される。そうでなければ、elseまたはendifが見つかるまで、以下のコマンドはスキップされる。
setVariable($myLayerSetA, "CEF07AFA-B552-40F8-821C-CF424EB93500")
setVariable($myLayerSetB, "E4B15B8B-EE34-4CCE-BDE7-58120A65E83A")
setVariable($myLayer, "8C58DEA7-CCBE-44CB-A60F-97C5BD456C68")
ifLayerSetIsActive($myLayerSetA)
// the layer set A is active, switch layer on
layerOn($myLayer)
else
// the layer set A is currently inactive, switch the layer off
layerOff($myLayer)
endif
ifLayerSetIsInactive($myLayerSetB)
// the layer set B is currently inactive, switch the layer off
layerOn($myLayer)
endif
ifLayerData(, , , )
この複雑なコマンドを使うと HTTP エーピーアイ を提供します。レイヤーは エーピーアイ ID、その中のキーパス JSON データ HTTP エーピーアイ は、比較子(引用符で囲んだ文字列!)(例えば"==")と値を返す。
有効なコンパレータ値は以下の通り:
"==" | イコール |
"!=" | ノットイコール |
">" | より大きい |
"<" | 未満 |
">=" | 以上 |
"<=" | 以下 |
// Example: Testing if the audio volume is turned up on a layer
setVariable($myLayerA, "D6A326CA-72E6-45E5-836D-9795F8F534F4")
setVariable($myLayerB, "8C58DEA7-CCBE-44CB-A60F-97C5BD456C68")
ifLayerData($myLayerA,"data.attributes.volume",">",0.5)
// The audio volume is bigger than 0.5 so turn layer B on
layerOn($myLayerB)
else
// The volume is lower than 0.5, lets turn layer B off
layerOff($myLayerB)
endif
loop() [break] endloop
loopコマンドを使うと、あるコードを複数回実行することができる。繰り返し回数を指定しなければ、ループはエンドレスに実行される。breakコマンドを使えば、いつでもループから抜け出すことができる。endloopは、ループさせるコマンド・ブロックの最後に必要だ。
setVariable($myLayerA, "D6A326CA-72E6-45E5-836D-9795F8F534F4")
// blink layer A 4 times
loop(4)
layerOn(setVariable(myLayerA)
sleep(1)
layerOff(setVariable(myLayerA)
sleep(1)
endloop
// wait for volume of layer A will be bigger than 0.5
loop
ifLayerData($myLayerA,"data.attributes.volume",">",0.5)
// The audio volume is bigger than 0.5 exit the loop now
break
endif
sleep(1)
endloop
httpRequest()
httpRequest()は、このスクリプトで何をトリガーするかについて、多くの柔軟性を与えてくれる。他のドキュメントやリモートのスクリプトであってもです。をお読みください。 HTTP エーピーアイ すべてのドキュメント エーピーアイ 通話が可能である。
データタイプ
エーピーアイ エンドポイント
パラメータは エーピーアイ レイヤー、レイヤー・バリアント、レイヤーセットのエンドポイントを取得することができます。 エーピーアイ mimoLiveドキュメントのオブジェクトを右クリックしてエンドポイントを選択します。コンテキストメニューが表示されます。 エーピーアイ エンドポイント "メニュー項目。
をコピーします。 エーピーアイ このオブジェクトの過去のボードへのエンドポイント。これをどこかに貼り付けると次のようになる:
/api/v1/documents/863743527/layers/D6A326CA-72E6-45E5-836D-9795F8F534F4
/api/v1/documents/863743527/layers/68F63C8F-2376-4CA3-9764-CC17CBFC5F8D/variants/3FF72CC3-AF80-4252-A879-F8AFD68DB922
/api/v1/documents/863743527/layer-sets/E6950B7A-7457-44C5-81F7-972D9B04DBC3
を減らすことができる。 エーピーアイ 終点は最後の部分のみ。こうすることで、スクリプトはこのように短くなります:
// switching on a layer:
layerOn(/api/v1/documents/863743527/layers/D6A326CA-72E6-45E5-836D-9795F8F534F4)
// OR
layerOn(D6A326CA-72E6-45E5-836D-9795F8F534F4)
// switching on a variant:
layerOn(/api/v1/documents/863743527/layers/68F63C8F-2376-4CA3-9764-CC17CBFC5F8D/variants/3FF72CC3-AF80-4252-A879-F8AFD68DB922)
// OR
layerOn(68F63C8F-2376-4CA3-9764-CC17CBFC5F8D/variants/3FF72CC3-AF80-4252-A879-F8AFD68DB922)
このパラメータは24時間表示の時間を表す。時、分、秒は": "で区切られる。
スクリプトのアイデア
10分ごとに広告を出す
と組み合わせる。ピップ ウィンドウ "レイヤーに複数の短い広告ムービークリップを含む "メディアプレイリストソース "を設定すると、10分ごとに1つの広告を再生することができます。メディア・プレイリスト・ソースの "ノンストップ "オプションのチェックを外してください。こうすることで ピップ ウィンドウがライブに設定されると、プレイリスト・ソースから1つの広告が再生され、自動的にオフになります。10分後、次の広告が再生されます。
特定のレイヤーに切り替える前にスティンガーを走らせる。
画面全体を覆うまで(例えば1秒後)イン・トランジションする短いスティンガー映像を用意する必要がある。1秒後に、公開したいレイヤーをライブに切り替えます。このレイヤーを、スティンガー映像を再生しているレイヤーの下に配置します。これで、スティンガー映像が画面を覆い尽くし、下のレイヤーの切り替えは見えなくなります。スティンガービデオは、下のレイヤーを見せながら進むはずです。スティンガービデオがProRes4444ビデオコーデックでレンダリングされ、トランジションに必要な透明度が保たれていることを確認してください。
複雑なショーのオープニングを作る
レイヤーのオン・オフを長い期間にわたって次々と切り替えることができるので、複数のテキストや注釈レイヤー、グラフィックを表示するプレーサーレイヤー、あるいは画面いっぱいのローワーサードレイヤーを使って、自分だけのアニメーションのショー・オープニングを作ることができます。クリエイティブに!
リモートのトリガー HTTP URL リモコン表面をタップする
もし HTTP ボタンでリクエスト リモートコントロール面 レイヤースタックにオートメーションレイヤーを追加し、そのレイヤーの "Switch Layer Off "オプションを "Automatically "に設定します。これで、"On Live "スクリプト・フィールドにhttpRequest()コマンドを1つ入れることができます。リモコンサーフェスで、このレイヤーのライブボタンをレイアウトに追加します。リモコンサーフェスでこのボタンを押すと HTTP リクエストが実行される。