Discord
Macro Deck に同梱デッキから Discord でミュート、スピーカーオフ、ボイスチャンネルへの参加、音声設定の変更、Webhook でのメッセージ投稿ができます。
「クライアント ID」と「クライアントシークレット」の入力欄がある「Discord に接続」ダイアログ
- 実際の状態を表示するミュートとスピーカーオフのボタン
- ボイスチャンネルへの参加と退出、テキストチャンネルを開く操作
- マイクと出力の音量、ボイスモード、音声処理の設定
- プロフィールにカスタムのリッチプレゼンスを表示
- Webhook でチャンネルにメッセージや埋め込みを投稿
Discord 連携は、同じコンピューター上の公式 Discord デスクトップアプリに Macro Deck を接続します。Discord がクライアントを操作するアプリ向けに提供しているローカル RPC インターフェースを使うため、ボタンは自分で Discord をクリックしたときと同じように動作します。Discord はこのアクセスを自分が所有するアプリケーションにしか許可しないので、セットアップでは Discord Developer Portal で無料のアプリケーションを作成し、一度だけ認可します。
できること
- マイクのミュート と スピーカーをオフ で、自分をミュートしたりスピーカーをオフにしたりします。ボタンには、Discord 側でミュートした場合も含めて、ミュート中かどうかが表示されます。
- 自分のサーバーのボイスチャンネルに参加する、現在のチャンネルから退出する、Discord アプリでテキストチャンネルを開く。
- マイクと出力の音量を設定、上げ下げする、プッシュトゥトーク と 音声検出 を切り替える、標準のノイズ抑制、エコーキャンセレーション、自動ゲイン制御をオンまたはオフにする。
- リッチプレゼンスを設定 でプロフィールにカスタムのアクティビティを表示し、リッチプレゼンスをクリア で消す。
- Webhook を実行 で、Webhook を通じて任意のチャンネルにメッセージ (埋め込みも可) を投稿する。このアクションは、連携が有効であれば、セットアップしなくても使えます。
設定例:
- マイクのミュート を 切り替え モードにした マイク ボタン。色は
discord_is_self_muted変数に連動します。 - チームのボイスチャンネルに参加し、接続中の場合は移動する をオンにしたボタン。別のチャンネルにいるときにも使えます。
- マイクが無効 トリガーで赤いライトをオンにし、マイクが有効 トリガーでオフに戻すフロー。
- Webhook を通じて、チャンネルへのリンクを付けた「配信を開始しました」を投稿するボタン。
動作のしくみ
Macro Deck は起動時に Discord に接続し、Discord を閉じて開き直したときは自動で再接続します。失敗するたびに少しずつ待ち時間を延ばし、最大 1 分まで待ちます。このとき 接続済み と 切断 のトリガーが動作します。Discord に接続していない間は、discord_is_connected を除いて変数が利用不可になります。Discord 側での変更やモデレーターによるミュートは、すぐに変数とトリガーに反映されます。セットアップできる Discord アカウントは 1 つです。
必要なもの
- Macro Deck と同じコンピューターで動いている公式 Discord デスクトップアプリ。Linux では Flatpak 版と Snap 版も使えます。
- Discord アカウントと、Discord Developer Portal で作成した自分用の無料アプリケーション。
- Macro Deck と Discord が同じ権限で起動していること (どちらも管理者として起動していない、または両方とも管理者として起動している)。
- Webhook を実行 のみの場合: チャンネルの Webhook URL。連携を有効にする必要がありますが、セットアップは不要です。
セットアップ
ステップ 1: Discord アプリケーションを作成する
Discord Developer Portal を開き、新しいアプリケーションを作成します。名前は何でもかまいません。General Information の Application ID をコピーします。これが クライアント ID です。
ステップ 2: リダイレクト URI を追加してシークレットをコピーする
アプリケーションで OAuth2 を開きます。リダイレクトとして
http://localhost/を追加して保存します。このアドレスが実際に開かれることはなく、Discord は登録されているかどうかを確認するだけです。次に Client Secret をコピーします (Discord に表示されない場合はリセットします)。ステップ 3: Macro Deck で Discord を開く
Discord デスクトップアプリが起動していることを確認します。Macro Deck のサイドバーで 連携 をクリックし、Discord をクリックします。
ステップ 4: クライアント ID とクライアントシークレットを入力する
概要 タブの 設定 セクションで セットアップ をクリックします。右上のスイッチをオンにしても同じダイアログが開きます。Discord に接続 ダイアログで クライアント ID と クライアントシークレット を貼り付け、続行 をクリックします。
ステップ 5: Discord で認可する
Discord で認可 のステップで 続行 をクリックします。Discord にアプリケーションの認可の確認が表示されるので、承認します。Macro Deck は接続を、Discord の後ろにかっこ付きでユーザー名を付けた名前で保存し、連携を有効にします。
ステップ 6: ボタンにアクションを追加する
デッキ ページでボタンをクリックします。デッキのロックが解除されている必要があります。右上に ロック ボタンが表示されていれば解除されています。エディターが開き、短押し が選択されています。+ アクションを追加 をクリックし、アクションを追加 ダイアログの左側で Discord を選択して マイクのミュート を選び、操作 を 切り替え にします。
ステップ 7: ボタンを押す
デッキのボタンを押します。Discord がマイクをミュートし、デッキまたは Discord でミュートを解除するまで、ボタンにミュート中の状態が表示されます。
アクション14
ボタンに設定したり、フローから実行したりできます。
- マイクのミュート
- マイクをミュート、ミュート解除、または切り替えます。
- スピーカーをオフ
- スピーカーをオフ、オン、または切り替えます。
- 標準のノイズ抑制
- Discord の標準のノイズ抑制をオンまたはオフにします。Krisp は操作できません。
- エコーキャンセレーション
- Discord のエコーキャンセレーションをオンまたはオフにします。
- 自動ゲイン制御
- 自動ゲイン制御をオンまたはオフにします。
- ボイスモードを設定
- プッシュトゥトークと音声検出のどちらかに設定するか、両者を切り替えます。
- マイクの音量を設定
- Discord のマイクの音量を設定、上げる、または下げます。
- 出力音量を設定
- Discord の出力音量を最大 200% まで設定、上げる、または下げます。
- ボイスチャンネルに参加
- 自分のサーバーのボイスチャンネルに接続します。別のチャンネルから移動させることもできます。
- ボイスチャンネルを退出
- 現在のボイスチャンネルから切断します。
- テキストチャンネルを開く
- Discord アプリでテキストチャンネルを開きます。
- リッチプレゼンスを設定
- プロフィールに、詳細、画像、経過時間付きのカスタムのアクティビティ (プレイ中、再生中、視聴中、参戦中) を表示します。
- リッチプレゼンスをクリア
- Macro Deck がプロフィールに設定したアクティビティを削除します。
- Webhook を実行
- Webhook URL を通じてチャンネルにメッセージ (埋め込みも可) を送信します。セットアップなしで使えます。
トリガー18
ボタンやフローがこれらのイベントに反応できます。
- 接続済み
- Macro Deck が Discord アプリに接続しました。
- 切断
- Discord アプリが閉じられたか、接続が切れました。
- マイクをミュート
- 自分のマイクをミュートしました。
- マイクのミュートを解除
- 自分のマイクのミュートを解除しました。
- スピーカーをオフ
- 自分のスピーカーをオフにしました。
- スピーカーをオン
- 自分のスピーカーをオンに戻しました。
- サーバーでミュート
- モデレーターにミュートされました。
- サーバーでミュート解除
- モデレーターにミュートを解除されました。
- サーバーでスピーカーをオフ
- モデレーターにスピーカーをオフにされました。
- サーバーでスピーカーをオン
- モデレーターにスピーカーをオンに戻されました。
- マイクが無効
- 自分またはモデレーターによるミュートやスピーカーオフなど、理由を問わずマイクの送信が止まりました。
- マイクが有効
- ミュートもスピーカーオフも解除され、マイクが再び送信できるようになりました。
- ボイスチャンネルに参加
- ボイスチャンネルに参加しました。特定のチャンネルだけに限定することもできます。
- ボイスチャンネルから退出
- ボイスチャンネルから退出しました。特定のチャンネルだけに限定することもできます。
- ボイス接続の状態が変化
- Discord のボイス接続の状態が変わりました (例:
VOICE_CONNECTED)。平均 Ping も含まれます。 - 誰かが話し始めた
- 現在のボイスチャンネルで誰かが話し始めました。それが自分かどうかも含まれます。
- 誰かが話すのをやめた
- 現在のボイスチャンネルで誰かが話すのをやめました。それが自分かどうかも含まれます。
- 通知を受信
- Discord がデスクトップ通知を表示しました。タイトルと本文も含まれます。
変数11
これらの値をボタンやウィジェットに表示したり、条件に使ったりできます。
discord_is_connected- Macro Deck が Discord アプリに接続しているかどうかです。
discord_user_name- 接続しているアカウントの名前です。
discord_is_self_muted,discord_is_self_deafened- 自分でミュートしたかどうか、自分でスピーカーをオフにしたかどうかです。
discord_is_server_muted,discord_is_server_deafened- モデレーターにミュートされたかどうか、スピーカーをオフにされたかどうかです。
discord_is_muted,discord_is_deafened- 理由を問わず、ミュート中かどうか、スピーカーオフかどうかです。
discord_is_speaking- 今話しているかどうかです。
discord_is_in_voice_channel,discord_voice_channel,discord_voice_server- ボイスチャンネルに参加しているかどうかと、そのチャンネルとサーバーの名前です。
discord_voice_connection_state,discord_voice_ping- ボイス接続の状態と、その平均 Ping (ミリ秒) です。
discord_input_volume,discord_output_volume- Discord の入力と出力の音量 (パーセント) です。スライダーなどで設定することもできます。
discord_voice_mode- Discord がプッシュトゥトークと音声検出のどちらを使っているかです。
discord_noise_suppression,discord_echo_cancellation,discord_automatic_gain_control- ノイズ抑制、エコーキャンセル、自動ゲイン制御がそれぞれオンかどうかです。
よくある質問
なぜ自分の Discord アプリケーションが必要なのですか?
Discord は、クライアントを操作する権限を、自分がチームに所属しているアプリケーションにしか付与しません。自分のアプリケーションは無料で、Macro Deck はその クライアント ID と クライアントシークレット を Discord での認可にだけ使います。
Vesktop、Legcord などの Discord クライアントでも使えますか?
いいえ。サードパーティのクライアントはゲームのアクティビティを共有できますが、Macro Deck から操作することはできません。公式の Discord デスクトップアプリを起動してください。他のクライアントは並行して動かしたままでもかまいません。
Discord が別のコンピューターで動いていても使えますか?
いいえ。Macro Deck はローカル接続で Discord と通信するため、Discord は Macro Deck を実行しているコンピューターで動いている必要があります。Discord アプリなしで使えるのは Webhook を実行 だけです。
セットアップで Discord に接続を拒否されたと表示されます。何が問題ですか?
Macro Deck と Discord が異なる権限で動いています。たとえば、どちらか一方を 管理者として実行 で起動した場合です。両方を同じ方法で起動して、もう一度お試しください。
音声設定が変わらないのはなぜですか?
Discord に接続している別のアプリが音声設定を保持しているか、Krisp が有効な間は Discord が高度な音声設定を無視している可能性があります。Discord を操作している他のアプリを閉じ、Discord の 音声・ビデオ 設定で一度設定を変更してから、もう一度アクションを実行してください。
認証情報はどこに保存されますか?
クライアントシークレット と Discord が返すトークンは、コンピューター上に暗号化して保存され、Discord にだけ送られます。保存された認可を Discord が受け付けなくなると、連携に Discord の認可が期限切れです と 再接続 ボタンが表示されます。
チャットとボイスのその他の連携
Discord Webhook
Macro Deck に同梱Webhook を通じて、埋め込みやメンションを含むリッチなメッセージを Discord チャンネルに投稿します。ライブプレビュー付きです。
SinusBot
Macro Deck に同梱SinusBot のインスタンスの音楽を操作し、再生中の内容をデッキに表示します。