この記事ではLioranBoardを使用中にコマンドが重複することを防ぐQueueシステムについて解説します
LioranBoardについては以下の記事を参照してください
LioranBoardに関する記事が少しずつ増えてきたのでこの記事でまとめておきます LioranBoard できること・導入方法 LioranBoardは非常に柔軟なコマンドを使用してOBS Studioを操作することができるStr[…]
Queueシステム
使用する理由
Twitchのチャンネルポイントやチャット、サブスクライブ等のアラートをトリガーとしてコマンドを実行する際に視聴者が同タイミングでコマンドを使用すると様々な不都合が起こることがあります
- コマンドA実行中にコマンドBを実行→両コマンドは同じフィルタを使っていたためコマンド同士が干渉してうまく動作しない
- コマンドA実行中にコマンドAを実行→コマンドA実行中に同コマンドは実行できないため先に実行されたコマンドのみ実行
こういった不都合を回避するためにQueueシステムを構築します
Queueシステムを使用すると
Queueシステムを構築するとその中で動作するコマンドはコマンド動作中にトリガーが発生しても順番に動作します
構築方法
ボタンの解説
Queueシステムは基本的に2つまたは4つのそれぞれの役割を持ったボタンを作成することで1つのコマンドを完成させることができます
- トリガーボタン
実際に押すボタン
トリガーを受け取り、メインボタンにどのコマンドを実行するのかを伝える役目を担います - メインボタン
発生したトリガーはこのメインボタン経由で各コマンドの実行へと振り分けられます
このボタンがディレイ(コマンド実行時間)を持つ事によりコマンドが順番に実行されます - コマンドボタン(任意)
メインボタンから振り分けられた実際に動くコマンドです
メインボタンに直接動作するコマンドを追加する場合は必要ありません
トリガーボタンの作成
トリガーボタンにはTwitchのトリガーを設置します
実際のコマンドは以下のようになります
queue_triggersというスタックに値”1″を加えてメインボタンを押す
というボタンを作成します
スタックについてはプログラミングを触ったことがあれば馴染みだと思いますが、ロケット鉛筆を想像して頂ければわかりやすいと思います
ロケット鉛筆の上からトリガーを順番に追加していき、実行しながら順に下から抜けていくようなイメージです
ボタンのIDについてはボタンを右クリックするとメニュー内に表示されます
もし、Trigger:pullコマンドでTwtichのチャットやトリガーを発生させた人の名前等をコマンドボタン内で利用したい場合はトリガーボタン内にTrigger:pullコマンドとスタックを使用することでコマンドボタンで利用することができます
メインボタン
メインボタンはqueue_triggersスタックから1つずつ値を引き抜く事でどのコマンドを実行したらいいのかを判断し、実際にコマンドを実行します
Compare: Skip ifコマンドを使用してqueue_triggersの一番下にあった値のコマンドを実行します
実際にコマンドを入力してもよいですが、その場合メインボタンがとてつもなく長くなる可能性があるので後から編集する際に不都合が生まれる場合があります
今回は実際のコマンドを別に用意してメインボタンではそのコマンドを押すように設定していきます
その際、Overtimeコマンドで実際に動作するコマンドボタンの動作時間分のディレイを指定する必要があります
これによって上記例だとコマンド1使用後に4秒、コマンド2使用後に5秒それぞれ猶予時間(コマンドの実行時間)が設けられます
コマンドボタン
コマンドボタンへは実際にOBS Studioを操作するコマンドを作成しておくのみとなります
おわりに
サブスクライブやビッツ等の通知が重複してスキップされてしまうと配信者、視聴者ともに悲しい気持ちになるのでもしアラート関係をLioranBoardで管理していきたい場合は絶対に外せない術ですね
質問等あればコメントもしくはTwitterにてお願いします