この記事ではLioranBoardを使用中にコマンドが重複することを防ぐQueueシステムについて解説します
2022年1月25日にLioranBoard 2(LB2)が正式にβリリースされました
それに伴ってLioranBoard(LB1)のダウンロードリンクがなくなり、新規でLB1を入手することは難しくなっています(Discordで開発者に頼めば入手できる可能性は有)
LB2ではコマンド作成の方法を始め様々なLBに関する知識をLB1から引き継ぐことができます
(LB1上のコマンドをLB2に機械的に変換する方法はありません)
そのためこのサイトのLB1についての記事は(しばらく?)残しておくつもりです
LB1とLB2の違いについて少しまとめた記事を書きました
ドキュメントの翻訳までに期間が空きそうなので動画を作りました
もしよろしければチャンネル登録もよろしくお願いします
LioranBoardについては以下の記事を参照してください
Queueシステム
使用する理由
Twitchのチャンネルポイントやチャット、サブスクライブ等のアラートをトリガーとしてコマンドを実行する際に視聴者が同タイミングでコマンドを使用すると様々な不都合が起こることがあります
- コマンドA実行中にコマンドBを実行→両コマンドは同じフィルタを使っていたためコマンド同士が干渉してうまく動作しない
- コマンドA実行中にコマンドAを実行→コマンドA実行中に同コマンドは実行できないため先に実行されたコマンドのみ実行
こういった不都合を回避するためにQueueシステムを構築します
Queueシステムを使用すると
Queueシステムを構築するとその中で動作するコマンドはコマンド動作中にトリガーが発生しても順番に動作します
構築方法
QueueシステムはLioranBoardのバージョン1.44で実装されたGroup IDによってより簡単に作成することが可能になりました
この記事ではGroup IDの使い方に加えて、以前までのQueueシステムの構築方法も残しておきます
バージョン1.44以降の場合
必要なボタン
Group IDを使用する場合、必要なボタンは実際にコマンドを実行するボタンのみとなります
ボタンへのトリガーの追加
ボタンのトリガーではAdd to Request Queueにチェックを入れておきます
Group IDの追加
ボタンを右クリックして表示されるGroup IDを全てのボタンで同じものに設定します
これによって同じGroup IDを設定しているボタン同士のトリガーは干渉せずにQueueに追加されます
バージョン1.44以前の場合
ボタンの解説
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で管理していきたい場合は絶対に外せない術ですね