Skip to content
This repository has been archived by the owner on Nov 23, 2022. It is now read-only.
Yu Matsuzawa edited this page May 15, 2021 · 7 revisions

ギルド Ultimate Triage で使用しているAmong Us用のDiscord Botです。 https://www.utriage.net

せつめい

  • 実体はよく使われているAmongUsのDiscord自動ミュートbotのAutoMuteUsです
  • ドキュメントによると自分でbotをホストするなら古めの2.4.3というバージョンを使え、とのことだったので、masterを2.4.3にしてあります
  • Herokuの個人アカウントにインストールしてあります。無料枠なので、月1000時間までしか起動できません。
    • Botは起動するとDiscordサーバのGateway API(Websocket API)に接続し、Discord上のメッセージなどを監視し始めます。
    • スリープから復帰した瞬間は、.auコマンドが二重に認識されてしまったりすることがあると思いますが、復帰して1~2分したら安定して処理してくれると思います

スリープしないようにする

  • AutoMuteUs Botは起動するとDiscordサーバに自分から接続し、この接続を維持して投稿の検知やミュート・ミュート解除の司令ををやり取りしますが、Herokuサーバ上のBotは 「Webリクエスト」(たとえばブラウザでBotのURLを閲覧する)が30分間ないとスリープしてしまいます
    • Discord上でのチャットのやり取りなどはBotへのWebリクエストを発生させないので、スリープ防止にはなりません
  • つまりゲームをしている間、定期的にBotの死活監視URL: https://ut-amongus-bot.herokuapp.com/をクリックすればスリープを防げます

つかいかた

  • 【前提】Discordは、全員ブラウザ版ではなく アプリ版を使用しましょう。 ブラウザ版は高速でメンバーのMute/Unmuteが行われると他の人の声が聞こえなくなったりします。
  • このリンクをクリックすると、Botがスリープから復帰します。"Auto-Mute Us is up and running."と表示されればOK
  • ゲームに参加する誰か一人が、AmongUsCaptureというゲームの内容を監視するアプリをインストールしてください。
    • たぶんここからインストールスクリプトをダウンロードして、実行するのが早い
  • AmongUsCaptureをインストールしてる一人がホスト(代表者)になります。ホストはAmongUsを起動してゲームを作成し、ロビーに入った状態でAmongUsCaptureを起動してください。
  • そしたらDiscordのUTサーバにいって、#amongus用というチャンネルを作ってあるので、そこで.au newと入力します
    • Botがスリープしたり、無料枠を使い切ってたりしてるかもしれないので、反応しないようならGadaに聞いてください。
  • Botが反応してセッションの準備が始まると、DiscordのDMが送られてきて、aucapture://ut-amongus-bot.herokuapp.com:443で始まるBot URLが送られてくると思います
  • そのBot URLをクリックするとAmongUsCaptureがBotを認識して通信を始めてくれるので、#amongus用チャンネルの方で司会してくれると思います
  • 以下の画像のようになれば準備完了
    • ゲーム画面+AmongUsCapture
    • チャットチャンネル

しくみ

  • ホストのPC
    • AmongUsゲームアプリ - 普通にゲームを実行
    • AmongUsCapture - ↑のAmongUsゲームアプリを監視、↓のAutoMuteUs Botに「誰が何色か」などを伝達し、「誰をMuteしろ」「Muteを解除しろ」などの司令を送る
  • Herokuのサーバ(クラウドのどこかにある)
    • AutoMuteUs Bot - ↑のAmongUsCaptureからの情報を受け取って、現在のゲームセッションで「誰が何色か」などを記憶し、↓のDiscord UTサーバに「ユーザだれそれをMute」「Muteを解除」などのリクエストを送る。それ以外に、↓のDiscord UTサーバ上でのメッセージのやり取りを監視し、.au newなどのコマンドに反応する
  • Discordのサーバ(クラウドのどこかにある)
    • UTサーバ - ↑のAutoMuteUs Botからのリクエストに応じて、ユーザをMuteしたりMute解除したりするほか、メンバーのメッセージのやり取りをAutoMuteUs Botに継続的に送信する

Discordのサーバは1つのBotや連携アプリから過剰な量のリクエストを受け取ると流量制限をすることがある。 AutoMuteUsの公式Botが150ゲーム程度しか同時に開催できないのはそのため。

Clone this wiki locally