StreamElementsのカスタムコマンドで使える変数について解説

こんにちは。

のちたままです。

今回はStreamElementsのカスタムコマンドで使える変数について紹介します。

カスタムコマンドを作る際に使えるので、どんな機能があるか興味のある方はぜひご覧ください。

また、この記事はStreamElementsのDocument Helpを翻訳しつつ記載しています。

Chatbot Variables | StreamElements Docs
Learn how to use variables in StreamElements chat commands to enhance interaction and functionality. This guide covers s...

自分で試してから書いてる部分もありますが、誤訳等ありましたら申し訳ありません。

変数一覧

それではカスタムコマンドで使える変数についてご紹介します。

以下の表に簡単な説明を載せます。

また、各変数名から詳しい説明に飛べるようにしてあるので、使い方を見る場合はご活用ください。

変数名内容
7tvemotes利用可能な7TVエモートを表示
aiAIを使ってチャットで応答してもらう
argsコマンドの引数を取得
bttvemotes利用可能なBTTVエモートを表示
channelチャンネルに関する情報を表示
countカウンターの作成、表示、操作
customapiHTTPリクエストの応答を表示
ffzemotes利用可能なFrankerFaceZエモートを表示
gameゲームカテゴリを表示
getcountカウンターの値を取得
leagueoflegendsLoLのランクとLPを表示
mathチャット上で数学的な計算ができる
msgidメッセージIDの表示
pathescape文字列をURLの一部として使えるように変換
pointsnameロイヤリティ通貨の名称を表示
queryescape引数をURLの一部として使えるように変換
quote引用をチャットに表示
randomランダム変数の利用
repeat指定した単語を指定回数繰り返す
senderコマンドやメッセージを打ったユーザーを取得
setgameカテゴリーの変更
settitle配信タイトルの変更
stockprice指定した企業の株価を表示
time現在時刻の表示やカウントダウン
title配信タイトルの表示
touser特定のユーザーや単語を表示
twitchemotesチャンネルのTwitchエモートを表示
uptime配信時間の表示
userユーザーの情報を表示
weather指定した地点の天気などの情報を表示

各変数の説明

ここから各変数について説明します。

7tvemotes

7tvemotes変数は7TVで使えるエモートの一覧を表示する変数です。

7TVはTwitchで使える外部エモートサービスで、Chrome拡張機能の導入で使えます。

StreamElementsでは配信者が設定している7TVエモートの一覧をこの変数で表示することができます。

カスタムコマンドでの書き方の例は以下の通りです。

  • 7TVで使えるエモートはこちら:$(7tvemotes)

実際に実行すると以下のように表示されます。

7tvemotesの実行例

上の画像では7TVにエモートを設定していないので何も表示されていませんが、設定していた場合は文字列が表示されます。

表に戻る

ai

ai変数はStreamElementsにAI応答を対応させて、ユーザーの質問に対して応答させることができます。

※この機能はBETA版のため、変更される可能性があります。

書き方の例は以下の通りです。

  • ${ai <文字列>}

今回は<文字列>の部分にhelloと入れて、実際に実行してみます。

ai変数の実行例

AIに応答をもらうので、ある程度の長さで書いたり他の変数と組み合わせて使うこともできます。

以下の内容で自分がどんな配信者か聞いてみたら、答えが返ってきました。

  • ${ai Twitchで配信している${1}はどんな配信者?}
ai変数の実行例

もっと情報を与えないと正確な情報は出てこなさそうです。

表に戻る

args

args変数はコマンドの引数を入力として扱う変数です。

実際に使う時は$(1)とか$(2)とか数字を書きます。

ここでいう引数はコマンド名の後に書くもので、何番目の引数を使うか数字で指定します。

実際に書いてみると以下のようになります。

  • 引数を表示します。1個目:${1}、2個目:${2}

この内容を実行してみると以下のようになります。

ここでは、!argsの後ろに半角スペースを入れて、”のち”、”たまま”という2つの文字列をいれています。

このように、コマンド名の後ろに書いた文字列を引数として応答内容に表示することができます。


これの利用例の1つとして、シャウトアウトコマンドがあります。

レイドしてくれた人を紹介するときにargs変数を使うことで、URLや名前の表示を簡単に行えます。

シャウトアウトコマンドについて詳しく知りたい場合は以下の記事をご覧ください。


少しおまけになりますが、:(コロン)を使うことで引数の範囲を指定することができます。

使い方は以下の通りです。

  • ${n:}:指定した数字以降の引数を全て取得。(例) ${1:}, ${3:}
  • ${:n}:指定した数字までの引数をすべて取得。(例) ${:1}, ${:4}
  • ${m:n}:指定した範囲の引数を取得。(例) ${1:6}, ${2:4}

実際に実行すると以下のように表示されます。

上から順に、${1:},${1:3},${:3}で指定しています。

コロンを使った引数の指定

表に戻る

bttvemotes

bttvemotesはBTTVのエモート一覧を表示する変数です。

BTTVは7TVやFFZと同じようにTwitchで使える外部エモートサービスです。


bttvemotes変数の書き方の例は以下の通りです。

  • BTTVエモート一覧はこちら:${bttvemotes}

bttvemotesの実行例

表に戻る

channel

channel変数はチャンネルに関する様々な情報を表示する変数です。

チャンネル名だけでなく、配信タイトルやカテゴリ、フォロワー数なども表示することができます。


もっと詳しく知りたい方は以下の記事にまとめてあるので、ぜひご覧ください。

表に戻る

count

count変数は配信で使うカウンターを作ることができる変数です。

ゲームで死んだ回数やコマンドが使われた回数など、回数を数えたりするのに使うことができます。

書き方の例は以下の通りです。

  • 現在のデス数:${count}

実際に実行すると以下のようになります。

countの実行例

また、count変数はカウンターの名前や数字の増減を指定することもできます。

例えば、カウンターの名前を「even」、数字の増加を「+2」とするときは以下のように書きます。

  • ${count even +2}

実際に実行すると以下のようにカウンターの値が+2ずつ増えています。

値を+2した場合

また、数字の増減に関しては以下の3種類の書き方があります。

  • +n:増やす数字を指定。+1,+5,…といった書き方ができる。
  • -n:減らす数字を指定。-1,-4…といった書き方ができる。
  • n:特定の数字を指定。例えば、0と書いたらカウンターの値を0にする。

数字の増減を指定したり、カウンター名を指定して値のリセットコマンドを作ったりと使い方はいろいろあります。

最後に、カウンターの値を直接増減したりカウンターの削除をしたい場合は、StreamElementsの左のタブから「Chat commands」→「Counters」を押してください。

Counters

すると先ほど作成したカウンターがあるので、画面右のボタンから「+」「-」「ゴミ箱」を見つけます。

+と-はそれぞれカウンターの値を1増減します。

ゴミ箱は値のリセット(Reset)かカウンターの削除(Delete)が選べるので、必要な方を選んでください。

カウンターのリセット・削除

表に戻る

customapi

customapiは外部のAPIを利用してカスタムコマンドに組み込むための変数です。

APIを使うことで、リアルタイムの情報をチャットに表示したりすることができます。

customapiの基本的な書き方は以下の通りです。

  • ${customapi URL}

例えば、特定のYoutubeチャンネルの最新動画を取得する場合は以下のように書きます。

  • ${customapi https://decapi.me/youtube/latest_video?id=UC90OsozD0nGI3dcUUX5B6HA}

実際に実行すると以下のように表示されます。

customapiの実行例

表に戻る

ffzemotes

ffzemotesはFrankerFaceZ(FFZ)のエモート一覧を表示する変数です。

FFZは7TVやBTTVと同じく外部のエモートサービスになります。

書き方の例を以下に記載します。

  • FFZで利用可能なエモートはこちら:${ffzemotes}

実際に実行すると以下のようになります。

ffzemotesの実行例

FFZエモートを設定していないので空欄になっていますが、設定してあるとここにエモートが表示されます。

表に戻る

game

gameは配信カテゴリの表示をする変数です。

game変数の書き方の例は以下の通りです。

  • 現在の配信カテゴリはこちら:${game}

実際に実行すると以下のように表示されます。

gameの実行例

また、game変数はユーザー名を書くことで特定のユーザーの配信カテゴリを表示することができます。

書き方は${game <ユーザー名>}です。

nochitamamaのカテゴリを表示するには${game nochitamama}と書けば良いです。

表に戻る

getcount

getcountはカウンターの値を取得して表示する変数です。

count変数で作成したカウンターの値を取得してチャットメッセージ等に流します。


getcountの書き方の例は以下の通りです。

  • 現在のカウント数:${getcount <カウンターの名前>}

実際に実行すると以下のように表示されます。

getcountの実行例

今回はカウンターの値を+1してカウントの値が正しく取得されているか確認しています。

表に戻る

leagueoflegends

leagueoflegends変数は指定したLoLプレイヤーの現在のランクとLPを表示する変数です。

書き方の例は以下の通りです。

  • 現在のランクとLP:${leagueoflegends <Riot ID/サモナー名> <地域>}

例えば、サモナー名がnochitamama#NA1、地域がNAだった場合は${leagueoflegends nochitamama#na1 NA}と書きます。

実際に実行すると以下のように表示されます。

leagueoflegendsの実行例

表に戻る

math

math変数はチャットメッセージ上で数学的な演算を行うことができる変数です。

書き方の例は以下の通りです。

  • 2+2=${math “2+2”}

実行例は以下の通りです。

mathの実行例

これだけだと大した機能はありませんが、args変数と組み合わせてアクティブに計算することもできます。

例えば先ほどの2+2の足し算なら以下のように書けます。

  • ${1}+${2}=${math “${1}+${2}”}

これを実際に実行すると以下のように表示されます。

argsを組み合わせたmath変数の実行例

また、math変数はrandomやroundなどmath.jsの機能に沿って計算ができるので、気になる方は調べてみてください。

表に戻る

msgid

msgid変数はコマンドのトリガーとなったメッセージのメッセージ ID を出力する変数です。

ドキュメントによると、デバッグや高度なカスタム機能を作成したりするのに便利とあります。

僕はこの機能については詳しく理解できていないので、ここでは説明を省きます。

書き方としては、${msgid}を含めばOKです。

気になる方はドキュメントをご覧ください。

$(msgid) Variable | StreamElements Docs
Learn how to use the $(msgid) variable to retrieve unique message IDs in StreamElements Chatbot commands.

表に戻る

pathescape

pathescape変数はURLパスで安全に使用できるように文字列をエスケープする変数です。

Javascriptに詳しい方は使い道があると思いますが、それ以外の方は使うことは無いと思います。

かくいう僕もJavascriptは全く知識が無いので使い方も使い道もわかりません。


書き方の例は以下の通りです。

  • ${pathescape “Hello World!”}

実行例は以下の通りです。

pathescapeの実行例

公式のドキュメントは以下にあります。

$(pathescape) Variable | StreamElements Docs
Escape strings for URL paths in StreamElements Chatbot. Learn how to use $(pathescape) with syntax, examples, and parame...

表に戻る

pointsname

pointsname変数はロイヤリティポイントの名前を表示する変数です。

ロイヤリティポイントについて詳しく知りたい方は以下の記事をご覧ください。

pointsname変数の書き方の例は以下の通りです。

  • ポイントの名前:${pointsname}

実際の実行例は以下の通りです。

pointsnameの実行例

ロイヤリティポイントに関する情報を表示できる他の変数と組み合わせると以下のような例も作れます。

  • あなたは${pointsname}を${user.points}ポイント持っています。

${user.points}はコマンドを実行した人のロイヤリティポイント数を表示する変数です。

これを実行すると以下のように表示されます。

他の変数との組み合わせ

表に戻る

queryescape

queryescape変数はURLで安全に使用するために文字列をエンコードするために使用する変数です。

書き方の例は以下の通りです。

  • https://www.youtube.com/results?search_query=${queryescape ${1:}}

これを使うと引数をYoutubeの検索内容としてURLを生成します。

実際に実行すると以下のように表示されます。

queryescapeの実行例

表に戻る

quote

quote変数は、デフォルトコマンドにある!quoteコマンドで作られたコレクションから文章を引用してくるときに使う変数です。

quote変数の書き方の例は以下の通りです。

  • 名言:${quote}

実際に実行すると以下のように表示されます。

quoteの実行例

引用が見つからないと表示されていますが、これはコレクションに何も入っていないからです。


デフォルトコマンドの!quoteコマンドを使って名言を追加した後、もう一度先ほどの${quote}を含んだコマンドを使ってみます。

!quote add <文字列>で追加、!quote remove <番号>で削除できます。

すると以下のようになります。

!quoteでコレクションに追加後、再度実行

先ほどは何も表示されませんでしたが、今度は「名言:#1 test」と表示されています。


他にも${quote 3}のように、数字を指定することでコレクションの番号を指定することができます。

${quote 3}の実行例

表に戻る

random

random変数はその名の通りランダムな値を生成する変数です。

数値だけでなく他の値もランダムに取得して表示ができるので、チャット上でミニゲームをしたり視聴者が遊べるコマンドを作ったりすることができます。

random変数の書き方の例は以下の通りです。

  • 1~100でのランダム値:${random 1-100}

実際に実行すると以下のように表示されます。

random変数の実行例

random変数は数値以外にもチャットにいる視聴者やリスト内に書かれた単語をランダムで表示することもできます。

詳しくは以下の記事をご覧ください。

StreamElementsで使えるrandom変数について解説
こんにちは。のちたままです。今回はStreamElementsのカスタムコマンドで使えるrandom変数について解説します。random変数とは?random変数はStreamElementsのカスタムコマンドで使える変数の一つで、ランダム...

表に戻る

repeat

repeat変数はメッセージ内で指定したフレーズを繰り返すことができる変数です。

書き方は以下の通りです。

  • ${repeat <繰り返しの回数> <繰り返すフレーズ>}

例えば、”LUL”というフレーズを3回繰り返したい場合は以下のように書きます。

  • ${repeat 3 LUL}

実際に実行すると以下のように表示されます。

repeat変数の実行例

グローバルエモートに入っているものは自動的に画像に変換されるようです。

args変数や後述するuser変数と組み合わせてフレーズを作ることも可能です。

また、複数の単語を組み合わせて文章を作る場合はダブルクオーテーション(“”)で囲みます。

  • ${repeat 3 “${1}はいいぞ”}

実際に実行すると以下のように表示されます。

repeatの実行例2

これを使えば、○○はいいぞおじさんになれますね。

表に戻る

sender

sender変数はコマンドを打ったユーザーに関する情報を表示する変数です。

名前やロイヤリティポイントなどの情報を表示することができます。

user変数と似たような部分もあるので、気になる方はぜひ以下の記事をご覧ください。

表に戻る

setgame

setgame変数は配信カテゴリを変更することができる変数です。


書き方は以下の通りです。

  • ${setgame <配信カテゴリ名>}

例えば、雑談にしたい場合は以下のように書きます。

  • ${setgame “just chatting”}

実際に実行すると以下のように表示されます。

setgame変数の実行例

配信タイトルを見てみると、Just Chattingに変わっているのがわかります。

また、カテゴリ名が曖昧でも近いものを自動で設定してくれるので大丈夫です。


予め配信カテゴリが固定されていて、配信中にカテゴリを変更することがあれば予めコマンドにしておくと便利かもしれません。

表に戻る

settitle

settitle変数は配信タイトルを変更することができる変数です。


書き方は以下の通りです。

  • ${settitle <タイトル文>}

試しに以下のように書いてみます。

  • ${settitle “お話しよ~”}

これを実行すると以下のように表示されます。

settitleの実行例

配信タイトルを見てみると、設定した内容に切り替わっているのがわかります。

表に戻る

stockprice

stockprice変数は指定した企業の株価を表示する変数です。


書き方は以下の通りです。

  • ${stockprice <株式シンボル>}

株式シンボルは証券取引所で使われる1~5文字の文字列です。

例えばAppleの現在の株価を表示する場合は以下のように書きます。

  • 現在のAppleの株価:${stockprice AAPL}

実行すると以下のように表示されます。

stockpriceの実行例

表に戻る

time

time変数は指定したタイムゾーンの時刻を表示したり、カウントダウンを作成できる変数です。

time変数の使い方は以下の2つあります。

  • ${time.timezone <タイムゾーン>}:指定したタイムゾーンの時刻を表示
  • ${time.until <日時>}:指定した時刻(UTC時刻)までの残り時間を表示

タイムゾーンは書き方があります。

例えば東京の時刻は以下のように書きます。

  • ${time.timezone Asia/Tokyo}

東京の現在時刻を表示するようにコマンドを作って実行すると、以下のように表示されます。

time.timezoneの実行例

他のタイムゾーンの書き方は以下のURLからご覧ください。

Noda Time | Time zones


${time.until}はUTC時刻での基準になります。

UTCは協定世界時という時刻で日本と9時間のずれがあります。

日本の方が9時間進んでいるので、カウントダウンコマンドを作る際は+9時間するのを忘れないでください。

書き方の例は以下の通りです。

  • ${time.until 20:00}
  • ${time.until 2024-09-20T19:00:00-03:00}

実際に実行すると以下のように表示されます。

time.untilの実行例

画像のうち、上側が${time.until 20:00}、下側が${time.until 2024-09-20T19:00:00-03:00}で書いています。


日時の書き方はISO8601に則って書くので、詳しく知りたい方は調べてみてください。

表に戻る

title

title変数は現在の配信タイトルを表示する変数です。

書き方の例は以下の通りです。

  • 現在の配信タイトル:${title}

実際に実行すると以下のように表示されます。

title変数の実行例

また、${title <ユーザー名>}とすることで指定したユーザーの配信タイトルを表示することもできます。

${title nochitamama}と書くと、僕の配信タイトルが表示されます。

結果は先ほどの画像と同じなので省きます。


表に戻る

touser

touser変数は特定のユーザーや単語を取得してコマンドに組み込む変数です。

touser変数は引数の有無で対象のユーザーが変わります。

  • 引数なし:コマンドを打ったユーザーの名前
  • 引数あり:引数の1つ目に打った単語や名前

例えば、以下のようにコマンドを記述してみます。

  • 表示する文字列:${touser}

これを引数なしでそのまま実行してみます。

すると以下のように表示されます。

引数なしでの実行例

このとき、実行したユーザーの表示名が出ていることがわかります。


では続いて、引数に適当な文字列を指定してみます。

引数ありの実行例

このように引数の文字列が表示されます。


このtouser変数を使うとシャウトアウトコマンドを作ることもできます。

公式のサンプルではargs変数を使用していますが、${1}の部分を${touser}に書き換えることで使うことができます。

シャウトアウトコマンドについて詳しく知りたい方は、以下の記事をご覧ください。

表に戻る

twitchemotes

twitchemotes変数は、チャンネルのエモート一覧を表示する変数です。

書き方の例は以下の通りです。

  • コマンド名:!emotes
  • 応答内容:$(twitchemotes)

実際に実行すると以下のようにチャットに表示されます。

実行例

StreamElementsがサブスクバッジを持っているとすべてのエモートが画像で表示されます。

表に戻る

uptime

uptime変数は配信時間を表示する変数です。

書き方の例は以下の通りです。

  • コマンド名:!upt
  • 応答内容:$(uptime)

実際に実行すると以下のように表示されます。

uptime変数の実行例

また、変数の直後にユーザー名を指定することで、指定したユーザーの配信時間を表示することもできます。

  • $(uptime nochitamama)

表に戻る

user

user変数は指定したユーザーに関する情報を表示する変数です。

基本的な書き方は以下の通りです。

  • コマンド名:!user
  • 応答内容:$(user)

実行結果は以下のようになります。

user変数は$(user)だけだとユーザーの表示名を出力します。

また、応用的な書き方をすることで直近のメッセージや合計視聴時間の表示をすることができます。

詳しく知りたい方は以下の記事を参考にしてください。

表に戻る

weather

weather変数は指定した地域の天気や気温などの情報を表示する変数です。


書き方の例は以下の通りです。

  • 東京の天気:${weather “tokyo,jp”}

実際に実行すると以下のように表示されます。

weatherの実行例

表に戻る

最後に

今回はStreamElementsのカスタムコマンドで使える変数について紹介しました。

変数を自在に操って自分の作りたいコマンドを作ってみましょう。

それではまた別の記事でお会いしましょう。


Twitchにて配信活動をしています。

もし良ければチャンネルを見ていただけると嬉しいです。

www.twitch.tv

その他のリンクはこちら

lit.link

コメント

タイトルとURLをコピーしました