2020-12-20に更新

Among Us 用超便利 Discord bot “AutoMuteUs” をセルフホストした (公式推奨簡単版)

読了目安:10分

注: この記事は、 2020年11月23日~25日 時点の話だよ。 状況は今後も刻々と変わる可能性が高いよ。  
なお 12月20日 現在、 Among Us v2020.12.9s では、 以下の手順で問題なく動いていることを確認している。

今年の夏あたりから、日本でも爆発的なブームが続いている、 宇宙人狼 こと Among Us

Discord でボイスチャットしながらやるのが面白いのだけれど、 ゲームの仕様上、ミュート管理が結構面倒だ。

そこに、 Among Us のゲーム画面に同期してミュート管理を超いい感じに自動で行ってくれる Discord bot が存在する。

それが AutoMuteUs だ。

このツールは、 以前は "AmongUs AutoMute" などとも呼ばれ、 誰か一人が Windows Steam 版 Among Us のゲームと一緒にキャプチャープログラムを立ち上げ、 公式の Discord Bot と連携させるだけで超お手軽に使える…
…はずだった。

11月下旬現在、 AutoMuteUs 公式の手順に従って、 bot の .au new コマンドでゲームを作成しようとすると、以下のような悲しいメッセージを目にするだろう。

among-us-bot-limit-000.png

I'm very sorry, but Discord is rate-limiting me and I cannot accept any new games right now :frowning:
Please try again in a few minutes.

Discord のレート制限に引っかかってるって。
Among Us は人気すぎるし仕方ないね!

そして、仮にゲームの作成が無事にできたとしても、 bot のミュート変更が遅れたり、変更しそびれたりと不安定だったり…

…何とかしたい。

ちょっと古い v2.4.3 をセルフホストするのが推奨

2020/11/14 時点の AutoMuteUs の 公式 Discord サーバー では、 このレート制限について以下のようにアナウンスされている。

Soup 2020/11/14

Hey all,

We know the Official Bot has been having some serious issues lately, and we're sorry it keeps going down.
We're looking at it right now and coming up with solutions, but we're fairly certain that the Bot is hitting the GLOBAL bot rate limit, and this is causing the outages (IP gets banned for 10 minutes upon hitting the limit). The bot is distributed across multiple IPs, but we need clever solutions to make sure we address the problem fully.

It certainly makes sense that this would be the culprit, given that Discord has no "mass mute" API request option, and thus every single game is using ~10 requests to mute players, additional requests to update the status message, etc.

We're developing solutions right now, but it might take some time. If you have some critical games coming up, we recommend self-hosting with version 2.4.3 while we get things ironed out with the official bot. The video detailing how to self-host version 2.4.3 is here: https://www.youtube.com/watch?v=LUptOv5ohNc, and the release is here: https://github.com/denverquane/automuteus/releases/tag/2.4.3

Thanks everyone for the patience, love you guys :kissing_heart:

ざっくりいうと、

  • 公式ボットが Discord のレート制限に引っかかっているが、これは根本的な仕組みの問題。
  • 完全な対処には複雑な解決策が必要なので、解決には時間がかかるかもしれない。
  • プレイしたい大事なゲームがあるなら、バージョン2.4.3でセルフホストすることをお勧めする。

という感じ。

AutoMuteUs はめっちゃアクティブに開発が進んでおり、 2020/11/14 の時点ですでに バージョン 4.0.3 までリリースされているのだが、 敢えて割と古い 2.4.3 の利用が推奨されている。
これはおそらく、 3.0.0 以降のバージョンのセルフホストでは、 docker が必須になっているなど、導入の敷居がかなり高くなっているためだろう。

技術力に自信があるなら最新版を使ってもかまわないのだが、 とにかくすぐに遊びたいだけなら、 おとなしく 2.4.3 を使っておくのがよい。
(2.4.4 も存在するけど、 x86 版 Windows で動かす分には差が無いようだ)

古いバージョンでも、 bot の機能は十二分に便利… というか、主要な機能では最新版と差が無い。

但し、あくまで古いバージョンのままであるという点は注意したい。
例えば、安定性は最新版に及ばないかも知れないし、 近くリリースされるらしい Among Us の(日本語を含めた)多言語対応などではうまく動かないかもしれない。
(後者は 後述の AmongUsCapture が吸収してくれそうではあるけど。)

v2.4.3 の導入手順

ということで、 v2.4.3 のセルフホストの導入手順について簡単に紹介してみようと思う。

… といっても、 上記の https://www.youtube.com/watch?v=LUptOv5ohNc の動画をなぞっているだけだが。
(英語の動画ではあるけど、 YouTube の自動字幕&自動翻訳で割と簡単に理解できる内容だと思う)

実施にあたっては 自己責任 でお願いします。
状況が日々刻々とかわる話題なので、 記事のコメントで質問されても、答えるつもりはないので悪しからず。
他の方が回答してくれるのは大歓迎ですけどもね。

後述するプリコンパイル済みの exe ファイルが信用できないと感じる場合は、ソースコードの内容を確認し、自身で exe をビルドすると良いだろう。
私は面倒くさかったので、プリコンパイル済みの exe 使うけど。

1. Among Us の 公式 Steam版 を用意する

まず、 Among Us の Steam版 を買おう。
Andoroid版 や iOS版 の Among Us では AutoMuteUs は動作ないので。

なお、 プレイヤーのうち誰か一人だけが AutoMuteUs を動かしていれば良く、 クロスプラットフォームで対戦もできるので、 全員 Steam版 である必要は無い。

2. GitHub から automuteus_windows と AmongUsCapture を DL

開発者の GitHub リポジトリのリリースページから、以下の二つのファイルを、適当なフォルダに DL しよう。

一度アプリを起動したら保存フォルダを移動しないほうが良いので、どこか固定のフォルダを決めてそこへ移動させておくとよい。

ネットワークからダウンロードした exe ファイルは ZoneId が付与されていて、実行時に Windowns による制限がかかるので、 それぞれの exe ファイルを右クリックしてプロパティを開き、「ブロックの解除」をしておこう。

among-us-bot-limit-050.png

なお、 AmongUsCapture の Readme には、 .NET Core 3.1 系ランタイム のインストールが別途必要と書かれているが、 AmongUsCapture 2.4 系以上であれば不要だと思う。 多分。
そもそも、 2.4.5 以降 TargetFramework が net5.0-windows に設定されてて、 .NET 5 のランタイムで動いてるし。 ランタイムは exe に同梱されているから別途インストールは不要なはず。

3. Discord の bot を作成する

https://discord.com/developers/applications

上記の Discord の開発者ページに移動して、 bot を作成しよう。

among-us-bot-limit-010.png
among-us-bot-limit-011.png

まず、 New Application ボタンから Discord アプリを作成して、 Bot タブから Add Bot をクリックして、 bot を作成する。

among-us-bot-limit-012.png

PUBLIC BOT のスイッチを OFF にして、 変更点を保存する。

among-us-bot-limit-013.png

Token の Copy ボタンをクリックして、 bot のトークンコードをメモ帳など適当なところに控えておく。

among-us-bot-limit-014.png

OAuth タブに移動して、
SCOPES から bot をチェック
BOT PERMISSIONS から Administrator をチェック
Copy ボタンで 認可 リンクをコピー
の順に実行。

そして ③ でコピーしたリンクをブラウザで開き、 Discord にログインしてどのサーバーに bot を追加するかを選択する。

…とここまでで、 bot の作成は完了。

4. AutoMuteUs の設定

先ほどダウンロードした automuteus_windows.exe を一度起動させよう。

すると、以下のようなエラーが表示され、 10秒後にプログラムが勝手に終了するはずだ。

Program exited with the following error:
no DISCORD_BOT_TOKEN provided
This window will automatically terminate in 10 seconds

すると、 その代わりに同じフォルダに config.txt というファイルが作成される。

そのファイルを メモ帳 などで開くと

DISCORD_BOT_TOKEN=

と書かれているはずだ。

その = の後ろに、 (3.) で控えておいた、 bot のトークンコードを貼り付けて保存しよう。

そして改めて automuteus_windows.exe を起動する。

今度は Windows からファイアウォールの通信の許可ウィンドウが出るので、現在のネットワークでアクセスを許可してやる。

among-us-bot-limit-051.png

ここまで来れば、 automuteus_windows.exe のコンソールウィンドウで "Bot is now running." などと表示されるはずだ。

5. AmongUsCapture をリンクさせる

Steam版 Among Us を起動した状態で、 先ほどダウンロードした AmongUsCapture.exe を起動させる。

AmongUsCapture が Among Us のプログラムを見つけて反応するはずだ。

その状態で、 Discord の bot が入っているテキストチャンネル に、以下のコマンドを入力する。
(コマンドと言っても、ドットから始まるメッセージを入力するだけだが)

.au new

すると、 BOT から以下のような ダイレクトメッセージ が届く。
(サーバー内のチャンネルのメッセージではないので注意)

among-us-bot-limit-030.png

ここに書かれている aucapture:// で始まるリンクをクリックすると、 AmongUsCapture にフォーカスが移って、 連係動作が開始される。

ちなみに、 上手く AmongUsCapture が反応しない場合、 このメッセージ右下の URL, Code の内容を、 手動で AmongUsCapture へ入力しても OK だ。

among-us-bot-limit-031.png
among-us-bot-limit-032.png

ここまで行い、 チャンネル内の bot の表示が右下のようにグリーンになれば、 全ての準備は完了だ。

among-us-bot-limit-055.png

もし、 automuteus_windows.exe のコンソールウィンドウで meet error: websocket: close 1000 (normal) のようなエラーが出て bot と Capture のリンクが上手くいかない場合、前述のファイアウォールのアクセスの許可ができていない可能性がある。

その場合、以下の手順で許可設定をした上で、 automuteus_windows.exe を再起動してみよう。

  1. Winキー+R でファイル名を指定して実行ダイアログを開く
  2. Firewall.cpl を実行して、 Windows Defender ファイアウォール ウィンドウを開く
    among-us-bot-limit-052.png among-us-bot-limit-053.png
  3. 「ファイアウォールを介したアプリまたは機能を許可」 をクリック
  4. 一覧から automuteus_windows.exe を探し、 設定の変更 → チェック → OK と設定して、アプリの通信を許可する。
    among-us-bot-limit-054.png

遊び方

Among Us で部屋を立て、参加者に部屋に入ってもらう。

すると、 Among Us 上のプレイヤー名とキャラクターの色が、 チャンネルのテキストメッセージに表示される。

among-us-bot-limit-040.png

各プレイヤーが Discord 上で、 自分の色と同じリアクションの絵文字 をクリックすると、 Among Us のプレイヤーと Discord ユーザーがリンクされる。

この状態でゲームを開始すると、 プレイヤーの生存状態や会議のシーンにあわせて、自動的にボイスとスピーカーのミュートが変化するようになる。

なお、ゲーム内で死んだプレイヤーは、 探索中にミュートが解除される一方で、死んでいないプレイヤーは探索中はスピーカーもミュートになって聞こえない状態となる。
このため、死者同士の いわゆる霊界チャット も行える。

その他、細かい使い方は、 bot の .au help コマンドなどで確認して欲しい。

例えば、 bot が task と discuss のステージ変更を取りこぼしてしまった場合も、 .au force コマンドを使って手動でステータスを変更することも可能だ。

以上が簡単な紹介だ。

快適な Among Us ライフを!

メモ

AutoMuteUs とは直接関係ないけど、 気づいたことなど。

  • Among Us は Alt+Enter で フルスクリーンとウィンドウを切り替えられる。 AmongUsCapture はどちらでも OK。
  • Among Us のプレイヤー名と、 Discord の名前は揃っていた方がわかりやすい。 Discord の名前はサーバー毎に「ニックネーム」として名前が変更できるので、 Discord の名前を Among Us の名前に揃えておくと良い。
    among-us-bot-limit-041.png
  • ストアで購入できる Among Us だけでなく、 AutoMuteUs のほうも https://www.patreon.com/automuteus にて $1/月~ 課金できるぞ。 $5/月 以上支援すれば 公式bot の 優先ミュートbotが貰えて快適にプレイできるはずだ。 公式bot の維持にはだいぶコストがかかっていることが明らかなので、気に入ったら支援してあげよう。
Originally published at aquasoftware.net
ツイッターでシェア
みんなに共有、忘れないようにメモ

advanceboy

Crieitは誰でも投稿できるサービスです。 是非記事の投稿をお願いします。どんな軽い内容でも投稿できます。

また、「こんな記事が読みたいけど見つからない!」という方は是非記事投稿リクエストボードへ!

有料記事を販売できるようになりました!

こじんまりと作業ログやメモ、進捗を書き残しておきたい方はボード機能をご利用ください。
ボードとは?

コメント