こんにちは。
のちたままです。
今回はStreamElementsのカスタムコマンドで使える変数について紹介します。
カスタムコマンドを作る際に使えるので、どんな機能があるか興味のある方はぜひご覧ください。
また、この記事はStreamElementsのDocument Helpを翻訳しつつ記載しています。
自分で試してから書いてる部分もありますが、誤訳等ありましたら申し訳ありません。
変数一覧
それではカスタムコマンドで使える変数についてご紹介します。
以下の表に簡単な説明を載せます。
また、各変数名から詳しい説明に飛べるようにしてあるので、使い方を見る場合はご活用ください。
変数名 | 内容 |
---|---|
7tvemotes | 利用可能な7TVエモートを表示 |
ai | AIを使ってチャットで応答してもらう |
args | コマンドの引数を取得 |
bttvemotes | 利用可能なBTTVエモートを表示 |
channel | チャンネルに関する情報を表示 |
count | カウンターの作成、表示、操作 |
customapi | HTTPリクエストの応答を表示 |
ffzemotes | 利用可能なFrankerFaceZエモートを表示 |
game | ゲームカテゴリを表示 |
getcount | カウンターの値を取得 |
leagueoflegends | LoLのランクと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)
実際に実行すると以下のように表示されます。
上の画像では7TVにエモートを設定していないので何も表示されていませんが、設定していた場合は文字列が表示されます。
ai
ai変数はStreamElementsにAI応答を対応させて、ユーザーの質問に対して応答させることができます。
※この機能はBETA版のため、変更される可能性があります。
書き方の例は以下の通りです。
- ${ai <文字列>}
今回は<文字列>の部分にhelloと入れて、実際に実行してみます。
AIに応答をもらうので、ある程度の長さで書いたり他の変数と組み合わせて使うこともできます。
以下の内容で自分がどんな配信者か聞いてみたら、答えが返ってきました。
- ${ai Twitchで配信している${1}はどんな配信者?}
もっと情報を与えないと正確な情報は出てこなさそうです。
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}
channel
channel変数はチャンネルに関する様々な情報を表示する変数です。
チャンネル名だけでなく、配信タイトルやカテゴリ、フォロワー数なども表示することができます。
もっと詳しく知りたい方は以下の記事にまとめてあるので、ぜひご覧ください。
count
count変数は配信で使うカウンターを作ることができる変数です。
ゲームで死んだ回数やコマンドが使われた回数など、回数を数えたりするのに使うことができます。
書き方の例は以下の通りです。
- 現在のデス数:${count}
実際に実行すると以下のようになります。
また、count変数はカウンターの名前や数字の増減を指定することもできます。
例えば、カウンターの名前を「even」、数字の増加を「+2」とするときは以下のように書きます。
- ${count even +2}
実際に実行すると以下のようにカウンターの値が+2ずつ増えています。
また、数字の増減に関しては以下の3種類の書き方があります。
- +n:増やす数字を指定。+1,+5,…といった書き方ができる。
- -n:減らす数字を指定。-1,-4…といった書き方ができる。
- n:特定の数字を指定。例えば、0と書いたらカウンターの値を0にする。
数字の増減を指定したり、カウンター名を指定して値のリセットコマンドを作ったりと使い方はいろいろあります。
最後に、カウンターの値を直接増減したりカウンターの削除をしたい場合は、StreamElementsの左のタブから「Chat commands」→「Counters」を押してください。
すると先ほど作成したカウンターがあるので、画面右のボタンから「+」「-」「ゴミ箱」を見つけます。
+と-はそれぞれカウンターの値を1増減します。
ゴミ箱は値のリセット(Reset)かカウンターの削除(Delete)が選べるので、必要な方を選んでください。
customapi
customapiは外部のAPIを利用してカスタムコマンドに組み込むための変数です。
APIを使うことで、リアルタイムの情報をチャットに表示したりすることができます。
customapiの基本的な書き方は以下の通りです。
- ${customapi URL}
例えば、特定のYoutubeチャンネルの最新動画を取得する場合は以下のように書きます。
- ${customapi https://decapi.me/youtube/latest_video?id=UC90OsozD0nGI3dcUUX5B6HA}
実際に実行すると以下のように表示されます。
ffzemotes
ffzemotesはFrankerFaceZ(FFZ)のエモート一覧を表示する変数です。
FFZは7TVやBTTVと同じく外部のエモートサービスになります。
書き方の例を以下に記載します。
- FFZで利用可能なエモートはこちら:${ffzemotes}
実際に実行すると以下のようになります。
FFZエモートを設定していないので空欄になっていますが、設定してあるとここにエモートが表示されます。
game
gameは配信カテゴリの表示をする変数です。
game変数の書き方の例は以下の通りです。
- 現在の配信カテゴリはこちら:${game}
実際に実行すると以下のように表示されます。
また、game変数はユーザー名を書くことで特定のユーザーの配信カテゴリを表示することができます。
書き方は${game <ユーザー名>}です。
nochitamamaのカテゴリを表示するには${game nochitamama}と書けば良いです。
getcount
getcountはカウンターの値を取得して表示する変数です。
count変数で作成したカウンターの値を取得してチャットメッセージ等に流します。
getcountの書き方の例は以下の通りです。
- 現在のカウント数:${getcount <カウンターの名前>}
実際に実行すると以下のように表示されます。
今回はカウンターの値を+1してカウントの値が正しく取得されているか確認しています。
leagueoflegends
leagueoflegends変数は指定したLoLプレイヤーの現在のランクとLPを表示する変数です。
書き方の例は以下の通りです。
- 現在のランクとLP:${leagueoflegends <Riot ID/サモナー名> <地域>}
例えば、サモナー名がnochitamama#NA1、地域がNAだった場合は${leagueoflegends nochitamama#na1 NA}と書きます。
実際に実行すると以下のように表示されます。
math
math変数はチャットメッセージ上で数学的な演算を行うことができる変数です。
書き方の例は以下の通りです。
- 2+2=${math “2+2”}
実行例は以下の通りです。
これだけだと大した機能はありませんが、args変数と組み合わせてアクティブに計算することもできます。
例えば先ほどの2+2の足し算なら以下のように書けます。
- ${1}+${2}=${math “${1}+${2}”}
これを実際に実行すると以下のように表示されます。
また、math変数はrandomやroundなどmath.jsの機能に沿って計算ができるので、気になる方は調べてみてください。
msgid
msgid変数はコマンドのトリガーとなったメッセージのメッセージ ID を出力する変数です。
ドキュメントによると、デバッグや高度なカスタム機能を作成したりするのに便利とあります。
僕はこの機能については詳しく理解できていないので、ここでは説明を省きます。
書き方としては、${msgid}を含めばOKです。
気になる方はドキュメントをご覧ください。
pathescape
pathescape変数はURLパスで安全に使用できるように文字列をエスケープする変数です。
Javascriptに詳しい方は使い道があると思いますが、それ以外の方は使うことは無いと思います。
かくいう僕もJavascriptは全く知識が無いので使い方も使い道もわかりません。
書き方の例は以下の通りです。
- ${pathescape “Hello World!”}
実行例は以下の通りです。
公式のドキュメントは以下にあります。
pointsname
pointsname変数はロイヤリティポイントの名前を表示する変数です。
ロイヤリティポイントについて詳しく知りたい方は以下の記事をご覧ください。
pointsname変数の書き方の例は以下の通りです。
- ポイントの名前:${pointsname}
実際の実行例は以下の通りです。
ロイヤリティポイントに関する情報を表示できる他の変数と組み合わせると以下のような例も作れます。
- あなたは${pointsname}を${user.points}ポイント持っています。
${user.points}はコマンドを実行した人のロイヤリティポイント数を表示する変数です。
これを実行すると以下のように表示されます。
queryescape
queryescape変数はURLで安全に使用するために文字列をエンコードするために使用する変数です。
書き方の例は以下の通りです。
- https://www.youtube.com/results?search_query=${queryescape ${1:}}
これを使うと引数をYoutubeの検索内容としてURLを生成します。
実際に実行すると以下のように表示されます。
quote
quote変数は、デフォルトコマンドにある!quoteコマンドで作られたコレクションから文章を引用してくるときに使う変数です。
quote変数の書き方の例は以下の通りです。
- 名言:${quote}
実際に実行すると以下のように表示されます。
引用が見つからないと表示されていますが、これはコレクションに何も入っていないからです。
デフォルトコマンドの!quoteコマンドを使って名言を追加した後、もう一度先ほどの${quote}を含んだコマンドを使ってみます。
!quote add <文字列>で追加、!quote remove <番号>で削除できます。
すると以下のようになります。
先ほどは何も表示されませんでしたが、今度は「名言:#1 test」と表示されています。
他にも${quote 3}のように、数字を指定することでコレクションの番号を指定することができます。
random
random変数はその名の通りランダムな値を生成する変数です。
数値だけでなく他の値もランダムに取得して表示ができるので、チャット上でミニゲームをしたり視聴者が遊べるコマンドを作ったりすることができます。
random変数の書き方の例は以下の通りです。
- 1~100でのランダム値:${random 1-100}
実際に実行すると以下のように表示されます。
random変数は数値以外にもチャットにいる視聴者やリスト内に書かれた単語をランダムで表示することもできます。
詳しくは以下の記事をご覧ください。
repeat
repeat変数はメッセージ内で指定したフレーズを繰り返すことができる変数です。
書き方は以下の通りです。
- ${repeat <繰り返しの回数> <繰り返すフレーズ>}
例えば、”LUL”というフレーズを3回繰り返したい場合は以下のように書きます。
- ${repeat 3 LUL}
実際に実行すると以下のように表示されます。
グローバルエモートに入っているものは自動的に画像に変換されるようです。
args変数や後述するuser変数と組み合わせてフレーズを作ることも可能です。
また、複数の単語を組み合わせて文章を作る場合はダブルクオーテーション(“”)で囲みます。
- ${repeat 3 “${1}はいいぞ”}
実際に実行すると以下のように表示されます。
これを使えば、○○はいいぞおじさんになれますね。
sender
sender変数はコマンドを打ったユーザーに関する情報を表示する変数です。
名前やロイヤリティポイントなどの情報を表示することができます。
user変数と似たような部分もあるので、気になる方はぜひ以下の記事をご覧ください。
setgame
setgame変数は配信カテゴリを変更することができる変数です。
書き方は以下の通りです。
- ${setgame <配信カテゴリ名>}
例えば、雑談にしたい場合は以下のように書きます。
- ${setgame “just chatting”}
実際に実行すると以下のように表示されます。
配信タイトルを見てみると、Just Chattingに変わっているのがわかります。
また、カテゴリ名が曖昧でも近いものを自動で設定してくれるので大丈夫です。
予め配信カテゴリが固定されていて、配信中にカテゴリを変更することがあれば予めコマンドにしておくと便利かもしれません。
settitle
settitle変数は配信タイトルを変更することができる変数です。
書き方は以下の通りです。
- ${settitle <タイトル文>}
試しに以下のように書いてみます。
- ${settitle “お話しよ~”}
これを実行すると以下のように表示されます。
配信タイトルを見てみると、設定した内容に切り替わっているのがわかります。
stockprice
stockprice変数は指定した企業の株価を表示する変数です。
書き方は以下の通りです。
- ${stockprice <株式シンボル>}
株式シンボルは証券取引所で使われる1~5文字の文字列です。
例えばAppleの現在の株価を表示する場合は以下のように書きます。
- 現在のAppleの株価:${stockprice AAPL}
実行すると以下のように表示されます。
time
time変数は指定したタイムゾーンの時刻を表示したり、カウントダウンを作成できる変数です。
time変数の使い方は以下の2つあります。
- ${time.timezone <タイムゾーン>}:指定したタイムゾーンの時刻を表示
- ${time.until <日時>}:指定した時刻(UTC時刻)までの残り時間を表示
タイムゾーンは書き方があります。
例えば東京の時刻は以下のように書きます。
- ${time.timezone Asia/Tokyo}
東京の現在時刻を表示するようにコマンドを作って実行すると、以下のように表示されます。
他のタイムゾーンの書き方は以下のURLからご覧ください。
${time.until}はUTC時刻での基準になります。
UTCは協定世界時という時刻で日本と9時間のずれがあります。
日本の方が9時間進んでいるので、カウントダウンコマンドを作る際は+9時間するのを忘れないでください。
書き方の例は以下の通りです。
- ${time.until 20:00}
- ${time.until 2024-09-20T19:00:00-03:00}
実際に実行すると以下のように表示されます。
画像のうち、上側が${time.until 20:00}、下側が${time.until 2024-09-20T19:00:00-03:00}で書いています。
日時の書き方はISO8601に則って書くので、詳しく知りたい方は調べてみてください。
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 nochitamama)
user
user変数は指定したユーザーに関する情報を表示する変数です。
基本的な書き方は以下の通りです。
- コマンド名:!user
- 応答内容:$(user)
実行結果は以下のようになります。
user変数は$(user)だけだとユーザーの表示名を出力します。
また、応用的な書き方をすることで直近のメッセージや合計視聴時間の表示をすることができます。
詳しく知りたい方は以下の記事を参考にしてください。
weather
weather変数は指定した地域の天気や気温などの情報を表示する変数です。
書き方の例は以下の通りです。
- 東京の天気:${weather “tokyo,jp”}
実際に実行すると以下のように表示されます。
最後に
今回はStreamElementsのカスタムコマンドで使える変数について紹介しました。
変数を自在に操って自分の作りたいコマンドを作ってみましょう。
それではまた別の記事でお会いしましょう。
Twitchにて配信活動をしています。
もし良ければチャンネルを見ていただけると嬉しいです。
その他のリンクはこちら
コメント