Streamer Blog ソフトウェア 基本を超えたカスタムコマンド:変数の魔法と条件分岐

基本を超えたカスタムコマンド:変数の魔法と条件分岐

「Cloudbotの基本的なコマンドはもう使いこなしているけれど、もっと視聴者を惹きつけ、ストリーム運営を効率化する方法はないだろうか?」

もしあなたがそう感じているなら、それはCloudbotの真の力をまだ引き出せていない証拠かもしれません。単なる定型文の表示やタイマー機能だけでなく、高度なカスタムコマンドや外部連携を使いこなせば、あなたの配信はさらに魅力的で、記憶に残るものに変わります。今回は、一歩進んだCloudbotの活用術に焦点を当て、視聴者エンゲージメントの向上と配信ワークフローの最適化を目指しましょう。

基本を超えたカスタムコマンド:変数の魔法と条件分岐

Cloudbotのカスタムコマンドは、ただテキストを表示するだけではありません。変数と条件分岐を組み合わせることで、チャットの状況に応じて動的に変化する、賢いボットを作り出すことができます。

変数を使いこなす

視聴者の名前、コマンドが使われた回数、ランダムな数値など、様々な情報をコマンドに組み込むことができます。

  • $(user): コマンドを使用したユーザー名
  • $(target): コマンドで指定されたユーザー名 (例: !hug @Streamer の場合、Streamer)
  • $(count): コマンドが使われた合計回数
  • $(random.item ​[A],​[B],​[C]): リストからランダムな項目を選択
  • $(eval "JavaScriptコード"): JavaScriptを使って複雑な計算やロジックを実行

例:ランダムなメッセージとユーザー名を含む応援コマンド
!応援 $(user)さん、いつもありがとう!今日は$(random.item 頑張れ!, 最高の一日になりますように!, 応援してるよ!)
このコマンドは、使用したユーザー名を含み、3つの応援メッセージからランダムに1つを選んで表示します。

条件分岐で応答を変化させる

$(eval)をさらに活用すれば、特定の条件に基づいてボットの応答を変えることができます。例えば、指定されたユーザーがモデレーターかどうかでメッセージを変える、特定のキーワードが含まれているかで反応を変える、といったことが可能です。

例:モデレーターと一般視聴者で異なる挨拶
!挨拶 $(eval `$(user.is.moderator)` ? `モデレーターの$(user)さん、こんにちは!` : `$(user)さん、いらっしゃいませ!`)
このコマンドを使えば、モデレーターには特別な挨拶を、一般視聴者には通常の挨拶を返せます。これは、ロールベースの応答を考える上で非常に強力なツールです。

{}

外部サービス連携でストリームを強化

Cloudbotの真価は、その外部サービス連携能力にあります。$(urlfetch)コマンドとAPIを組み合わせることで、配信画面に表示される情報やチャットの応答を、外部のデータと連動させることができます。

ゲーム情報やウェブサイトからのデータ取得

$(urlfetch)を使えば、特定のURLからJSONデータを取得し、それを$(eval)でパースして表示できます。これは、ゲームのAPI(例:リーグ・オブ・レジェンドのプレイヤー統計、VALORANTのマッチ履歴など)からリアルタイム情報を引っ張ってきたり、天気予報や特定のニュースサイトの見出しをチャットに表示したりと、可能性は無限大です。

注意点:
APIキーが必要なサービスや、リクエストレート制限があるサービスもあります。利用規約をよく確認し、過度なリクエストは避けるようにしましょう。また、取得したJSONデータの構造を理解し、JavaScriptで適切にパースするスキルが求められます。

実践シナリオ:視聴者参加型企画をCloudbotで

「次にどんなゲームをプレイするか、視聴者に投票してもらいたい!」
このような企画をCloudbotと連携して実現してみましょう。ここでは、Cloudbotのポイントシステムとカスタムコマンドを組み合わせて、投票と結果表示を行うシンプルなシステムを構築します。

  1. 投票用コマンドの作成:
    • !vote [選択肢1]
    • !vote [選択肢2]
    • !vote [選択肢3]
    各コマンドは、使用されるたびに内部的にカウントを記録します。Cloudbotのカウンター機能(!editcounterなど)や、より高度な方法として$(eval)と外部の簡易データベース(Google Sheetsと連携するAPIなど)を利用することもできます。ここではシンプルにCloudbotの「ポイント」を使って投票に重み付けをする例を考えます。
  2. ポイントを消費して投票:
    !vote [選択肢] [投票ポイント数]
    コマンド例: !vote マリオカート 100
    このコマンドでは、$(user)が持つポイントを消費し、指定された選択肢に投票します。$(eval)を使って、ユーザーの所持ポイントを確認し、投票ポイントが足りなければエラーメッセージを返すように設定します。投票データはCloudbotの内部ストレージや、$(urlfetch)で外部に記録します。
  3. 結果表示コマンドの作成:
    !results
    このコマンドは、各選択肢の現在の投票数や合計ポイントを表示します。外部にデータを記録している場合は、$(urlfetch)でそのデータを取得し、整形して表示します。Cloudbotのカウンター機能を使っている場合は、各カウンターの値を表示するだけです。
  4. 企画の開始と終了:
    モデレーター専用コマンドで投票を開始・終了する仕組みを設けると、企画の管理がしやすくなります。例えば、!startvote!endvoteといったコマンドです。

このシナリオは、Cloudbotのカスタムコマンド、変数、条件分岐、そして場合によっては外部連携の基本を組み合わせることで、視聴者参加型のインタラクティブな要素を簡単に導入できることを示しています。最初はシンプルな「どちらが好き?」といった二択投票から始めて、徐々に複雑なシステムに挑戦してみましょう。

コミュニティの声:よくある疑問と対処法

多くのクリエイターがCloudbotの高度な機能に挑戦する際、いくつかの共通の疑問や課題に直面しているようです。

  • $(eval)のJavaScriptが難しい: JavaScriptの基本的な構文やデータ型、条件文、ループ処理などに慣れていないと、$(eval)で複雑なロジックを組むのは確かにハードルが高いです。まずは簡単な計算や文字列操作から始め、少しずつ複雑な条件分岐に挑戦するのが良いでしょう。オンラインのJavaScriptチュートリアルを参考にしたり、既存のコマンド例を分解して理解するのも有効です。
  • $(urlfetch)でのデータ取得がうまくいかない: 外部APIからのデータ取得は、URLの正確性、APIキーの有無、JSONデータの構造理解が重要です。多くのクリエイターは、取得したJSONをどのようにパースして必要な情報を取り出すかでつまづきます。まずはブラウザで直接URLにアクセスし、JSONデータが正しく返ってくるか確認することから始めましょう。そして、JSONパスを正しく指定できるよう、ツールの利用(JSONPath Testerなど)も検討してください。
  • コマンドのデバッグが面倒: 複雑なコマンドでは、エラーが発生した際にどこに問題があるか特定するのが難しいことがあります。一つずつ機能を分解してテストする「分割統治法」が有効です。また、$(eval)内でconsole.log()のようなデバッグ出力は直接できませんが、一時的に特定の変数の値をチャットに出力するようコマンドを修正し、動作を確認する方法は使えます。
  • セキュリティへの懸念: $(urlfetch)で外部サイトにリクエストを送る際や、$(eval)でJavaScriptを実行する際、悪意のあるコードや情報漏洩のリスクを心配する声もあります。信頼できるAPIのみを利用し、$(eval)で外部から取得した文字列を直接実行するような危険なコードは避けるべきです。

これらの課題は、一つ一つ着実に知識を積み重ねることで乗り越えられます。焦らず、小さな成功体験を積み重ねていくことが重要です。

定期的な見直しと改善

Cloudbotのコマンドや連携機能は一度設定したら終わり、ではありません。配信の進化に合わせて、定期的に見直し、改善していくことが重要です。

2026-04-23

見直しのポイント

  • コマンドの利用状況: 視聴者がどのコマンドをよく使い、どのコマンドが使われていないかを確認しましょう。StreamElementsのダッシュボードで利用統計を確認できます。使われていないコマンドは削除するか、改善が必要です。
  • 応答の適切性: コマンドの応答は、常に視聴者にとって分かりやすく、楽しいものであるべきです。新しいトレンドや配信内容に合わせて、応答メッセージを更新しましょう。
  • 外部連携の健全性: 連携している外部APIが正常に動作しているか、APIキーの期限が切れていないか、仕様変更がないかなどを定期的に確認します。API側の変更によって、既存のコマンドが動かなくなることもあります。
  • パフォーマンスと効率: 複雑な$(eval)$(urlfetch)は、実行に時間がかかり、チャットの応答が遅れる原因となることがあります。より効率的なコードに改善できないか検討しましょう。
  • 新しい機能の導入: StreamElementsやCloudbotは常に進化しています。新しい機能やコマンドが追加されていないか、定期的に公式ドキュメントやコミュニティをチェックし、自身の配信に取り入れられないか検討しましょう。

Cloudbotは、あなたの配信をより豊かにするための強力なツールです。基本をマスターしたら、恐れずに高度な機能に挑戦し、自分だけのユニークな配信体験を作り上げてください。試行錯誤を楽しみながら、視聴者と共に成長していくことが、最も大切なことです。

About the author

StreamHub Editorial Team — practicing streamers and editors focused on Kick/Twitch growth, OBS setup, and monetization. Contact: Telegram.

Next steps

Explore more in ソフトウェア or see Streamer Blog.

Ready to grow faster? Get started または try for free.

Telegram