AutoMuteUs のよくある質問と回答とかいろいろ


AutoMuteUs のサポート Discord や DM で聴かれたこと、日本語での情報が少ないことなどをまとめています。思いつきでほどほどに更新します。

Docker や Docker Compose それ自体の使い方というよりは、維持や運用の仕方とかそっちの方面が中心です。

その他の Tips 系は別エントリ Among Us 用ボット AutoMuteUs のあまり知られていない便利な機能 でも紹介しています。

目次

全利用者向けの情報

公式ボットサービスやセルフホストなどの利用形態に関わらず広く適用できる情報です。

15 人ロビーや新色に対応したい

現在の AutoMuteUs は、15 人ロビーも新色も対応済み ですが、利用形態に応じて以下の作業が必要です。

  • AutoMuteUs 公式ボットサービス を利用している場合
    • キャプチャソフト(AmongUsCapture)を 4.1.1 以降に更新します
  • セルフホスト している場合
    • キャプチャソフト(AmongUsCapture)を 4.1.1 以降に更新します
    • ボット本体 を次のいずれかに更新します
      • 公式 の Docker 版6.15.1 以降 に更新します
      • 非公式の Windows 版(後述)に更新します

セルフホストしている場合、特に新色の絵文字が表示されない例や、旧 Windows 版(2.4.3)からの乗り換え先が判然としない例が散見されます。

これらについては、後述の 新色の絵文字が表示されない旧 Windows 版(2.4.3)で 15 人ロビーや新色を使いたい でも触れているので、併せてどうぞ。

Among Us のアップデートが配信された後に AutoMuteUs が動かない

Among Us のアップデートが配信された場合、しばらくは ほぼ確実に AutoMuteUs は動かなくなります。

AutoMuteUs が動くためには、

  • キャプチャソフト(AmongUsCapture)本体
  • キャプチャソフト(AmongUsCapture)が使う オフセットファイル
  • ボット本体

の三つ すべて が正常に動作する必要があり、そしてこのうち オフセットファイル は、アップデートがどれだけ軽微であってもほぼ確実に人力で修正が必要 です。

このため、Among Us にアップデートがあれば、人力での修正対応が完了するまで AutoMuteUs は動かなくなります。アップデートの内容次第では、さらにキャプチャソフト本体やボット本体に修正が必要になることもあり、この場合はさらに時間が必要です。

現状の体制では、いずれも 開発陣のできるひとができるときにやる のが精々で、要するにベストエフォートなので、ぼくももりもりお手伝いはしているものの、対応完了予定日などは案内できません。

AutoMuteUs 関連の更新状況が知りたい

うまく動くかわかりませんが、非公式 に Twitter でこんなボットを回しています。

固定ツイートにある通り、

  • Among Us のアップデート配信
    • Steam、Epic Games、Microsoft Store 版
  • AutoMuteUs のアップデート
    • ボットサービスのバージョンアップ
    • セルフホスト用 Docker 版の新バージョンリリース
  • AmongUsCapture のアップデート
    • AmongUsCapture 本体の新バージョンリリース
    • AmongUsCapture 用のオフセットファイルのリリース

を、全自動でお知らせする…… はずです。誤報したらごめんなさい。

Mod に対応してほしい

公式には予定はなさそうで、最近の Issue #423 で Mod のサポートについての方針がコメントされています。

非公式には、TownOfUs に対応させたキャプチャソフト が有志の手で開発されていますが、それ以外は現状見当たらず、動くか試してみてダメだったら諦める、もしくは自分で作る、くらいしかなさそうです。

キャプチャソフトがクラッシュして起動できない

キャプチャソフトを起動しても即座にクラッシュしてしまう場合は、保存されている設定やキャッシュをリセットすると改善する場合があります。

エクスプローラで %AppData% を開き、AmongUsCapture フォルダを削除して、再度キャプチャを起動してください。解決しない場合は AutoMuteUs のサポート Discord へどうぞ。

人数が多いときのミュートされるまでのラグを解消したい

AutoMuteUs では、ミュートとアンミュートに Discord の API を利用しています。Discord の API には一定時間内に許容される操作の回数の制限(Rate Limits)があり、前述のラグはこの制限によるものです。

これには、利用形態に応じて、次の対策が有効です。詳細は別エントリ Among Us 用ボット AutoMuteUs のあまり知られていない便利な機能 で紹介しています。

利用形態高速化方法
公式サービス(無償またはブロンズ)キャプチャボットによる高速化
公式サービス(シルバー以上)キャプチャボットによる高速化
ワーカボットによる高速化
セルフホストキャプチャボットによる高速化(5.0.0 以上のみ)
ワーカボットによる高速化

Steam 版以外の利用可否が知りたい

現状、キャプチャソフトは Steam 版、Epic Games 版、Microsoft Store 版の三種についてアップデートに追従する対応を行っています。

AutoMuteUs の動作テストをしたい

AutoMuteUs の動作をテストしたい場合、もっとも確実な方法は、実際に 4 人以上のプレイヤでゲームを遊んでみる ことです(ひとりで端末を 4 台並べるのも手です)。

が、ひとが集められない、まずはざっくり確認したい、などの場合は、次の手順で最低限の動作を確認できます。

  1. AutoMuteUs でゲームを開始してキャプチャソフトとリンクする
    • ✅ ボットがコマンドに応答し、メッセージを投稿できることを確認
    • ✅ キャプチャとリンクできることを確認
  2. Among Us でゲームをホストし、ロビーに入る
    • ✅ ボットからのメッセージが LOBBY 状態になっていることを確認
    • ✅ Discord のメッセージ上でプレイヤの色が正しく表示されていることを確認
    • ✅ リージョンやマップ、ロビーコードが正しいことを確認
  3. Discord 上の絵文字でリアクションし、Discord アカウントとリンクさせる
    • ✅ ボットがリアクションに応答することを確認
  4. Discord 上で自分を Server MuteServer Deafen にする
    • ボイスチャネルで自分を右クリックしてチェックを入れる
    • 赤いミュートアイコンと赤いスピーカミュートアイコンが自分に付く
  5. コマンド .au unmuteall を実行する
    • ✅ 自分のミュートとスピーカミュートが解除されることを確認

とくに手順 5 では、通常ではテストしにくいミュート関連の権限有無も確認できます。

その他の便利な機能が知りたい

併せてどうぞ(宣伝)。

公式ボットサービス利用者向けの情報

公式ボットサービスの利用者向けの情報です。なお、公式というのは AutoMuteUs の公式という意味であって、Among Us の公式ではありません。

契約中のプランを確認したい

公式ボットを利用しているサーバでは、現在利用しているプランを .au premium コマンドで確認できます。

  • ブロンズ、シルバー、ゴールドプランの場合
    • プラン名と残り日数が表示されます
    • 失効している場合は失効後の経過日数が表示されます
  • フリープランの場合
    • プレミアムプランの紹介が表示されます
  • セルフホストの場合
    • セルフホストである旨が表示されます

プレミアムプランを契約したのにプレミアムにならない

プレミアムプランを契約したあと、.au premium などで状況を確認しても反映されていない場合、専用の問い合わせフォームから依頼が必要です。依頼後、中の方々が手動で対応するので、実際に反映されるまでは少し時間がかかります。

フォームを開いて、“I have purchased AutoMuteUs Premium and have NOT recieved my benefits.” から手続きします。途中、支払い時のメールに含まれる トランザクション ID と、Discord の サーバ ID が必要です。

フォームから送信できない場合や、送信後しばらく経っても状況が変わらない場合は、AutoMuteUs のサポート Discord#official-bot-support などで質問してください。

ゴールドプランでサーバを追加したい

ゴールドプランでは、プレミアム機能を二つのサーバで有効化できますが、これにも専用の問い合わせフォームから依頼が必要です。依頼後、中の方々が手動で対応するので、実際に反映されるまでは少し時間がかかります。

フォームを開いて、“I would like to add another server with my Gold Subscription.” から手続きします。途中、支払い時のメールに含まれる トランザクション ID と、Discord の サーバ ID(現在のサーバと追加するサーバの 2 つ) が必要です。

フォームから送信できない場合や、送信後しばらく経っても状況が変わらない場合は、AutoMuteUs のサポート Discord#official-bot-support などで質問してください。

プレミアムプランを別のサーバに移動させたい

あるサーバで契約したプレミアムプランを別のサーバに引っ越しするにも、専用の問い合わせフォームから依頼が必要です。依頼後、中の方々が手動で対応するので、実際に反映されるまでは少し時間がかかります。

フォームを開いて、“I want to transfer my premium” から手続きします。途中、支払い時のメールに含まれる トランザクション ID と、Discord の サーバ ID(現在のサーバと移動先のサーバの 2 つ) が必要です。

フォームから送信できない場合や、送信後しばらく経っても状況が変わらない場合は、AutoMuteUs のサポート Discord#official-bot-support などで質問してください。

プレミアムプランを解約したい

PayPal アカウントの有無によって方法が若干異なります。

PayPal アカウントを使って契約した場合

PayPal の定期決済・購読のキャンセル の手順に従います。AutoMuteUs 側では手続きは不要です。

PayPal アカウントを作らずに契約した場合

以下の専用の問い合わせフォームから依頼が必要です。依頼後、中の方々が手動で対応するので、実際に解約されるまでは少し時間がかかります。

フォームを開いて、“I would like to cancel my AutoMuteUs Premium subscription.” から “I bought premium with PayPal guest account.” を選んで手続きします。途中、支払い時に受け取ったメールに含まれる プロファイル ID と、Discord の ユーザ ID が必要です。

フォームから送信できない場合や、送信後しばらく経っても支払いが続いている場合は、AutoMuteUs のサポート Discord#official-bot-support などで質問してください。

課金単位が知りたい

課金はユーザ単位ではなく サーバ単位 で、プレミアム機能も契約すると サーバ単位 で有効化されます。つまり、サーバのうち誰かひとりが契約すれば、そのサーバの全員がプレミアム機能を利用できます。

セルフホスト利用者向けの情報

セルフホスト利用者向けの情報です。

ボットに必要なパーミッションが知りたい

公式のドキュメントAdministrator 権限の付与が案内されてしまっているため、各所の紹介もそのようになっている例が多くみられます。が、これはトークンの流出や悪用に対して非常に脆弱なため、推奨されません。

ボットの動作に最低限必要なパーミッションの情報で、現段階で最も公式に近いソースは、まだ正式版ではないものの 現在開発中の新バージョン(v7)用のドキュメント が挙げられます。

メインのボットに必要なパーミッションと、追加のワーカボットやキャプチャボットに必要なパーミッションを記載しています。

他にも、開発者自身の回答を含む GItHub の Issue #339 も参考にできます。

公式ボットとセルフホストボットを併用したい

公式ボットとセルフホストボットを同一サーバで併用したい場合、デフォルトで .au になっているコマンドプレフィックスをどちらか一方で変更するとうまく対応できます。設定コマンドは次の通りです。

  • <現在のプレフィックス> settings commandPrefix <新しいプレフィックス>

例えば、現在のプレフィックスが .au で、これを .sh に修正したい場合は、次の通りに操作します。

  • .au settings commandPrefix .sh

なお、両方のボットが参加済みの状態でこのコマンドを実行すると、当然ながら両方のボットが反応して両方とも設定が変わってしまい意味がないので、一時的にどちらかのボットをキックし一方のみが応答する状態にしてから操作するとよいでしょう。具体的には、

  1. 公式ボットをキックする(セルフホストボットだけが .au に反応する状態にする)
  2. .au settings commandPrefix .sh を実行して、セルフホストボットのプレフィックスを .sh に変更する
  3. 公式ボットを再招待する

な流れです。これで、.au が公式ボット、.sh がセルフホストボット、と併用できる状態ができあがります。

Docker 版であれば、環境変数 AUTOMUTEUS_GLOBAL_PREFIX を与えても変更できますが、これには docker-compose.yml の編集が必要で、既存ギルドに対しては状況次第で結局上記のコマンドでの変更も併せて必要になるため、積極的には案内していません。

新色の絵文字が表示されない

セルフホストの場合は、新色対応のために、Discord のサーバに 絵文字の空きスロットが 12 必要 です。新色に対応したバージョンのボットは、ボットの起動時に不足している絵文字を自動でサーバに追加する動きをしますが、この時に空きスロットが足りなければ新色は使えないままです。

サーバを Nitro でブーストしていない場合、絵文字のスロットは 50 が上限で、旧色と合わせるとAutoMuteUs だけで合計で 36(旧 2.4.3 系では 37)のスロットが必要なため、この上限にぶつかる例が多いようです。空きスロットはサーバの設定から確認できます。

.au new して新色の絵文字が表示されない場合は、

  • ボットが絵文字を追加する権限を持っていることを確認する
  • サーバの設定画面で足りていない絵文字(あるべき絵文字は GitHub を参照)を確認する
  • 不要な絵文字を削除して、足りていない絵文字の数だけの空きスロットを確保する
  • ボットを停止して起動しなおす

とよさそうです。

また、単一のボットを複数のサーバで共用している場合 は、

  • 全サーバで全絵文字が追加できるだけのスロット を確保したうえで起動する
  • または後述する 絵文字のスロットを節約したい の手順で絵文字を単一のサーバに寄せる

のどちらかが必要です(技術的な詳細は次項を参照)。

なお、絵文字の追加や削除を短時間に多数実行すると、Discord 側の処理制限に引っかかって、それ以上の絵文字の操作が一時的に拒否されることがあります。ボットの起動後、スロットに空きがあるにもかかわらず絵文字が一部しか追加されない場合は、そのまま(ボットを起動させたまま)典型的には 30 分程度放置 するか、または時間をおいてやり直すと正常に処理されます。

技術的には、絵文字は必ずしもボットから追加させなくてもよく、リポジトリ を ZIP でダウンロードして中の assets/emojis の PNG ファイル群を手動で追加しても正常に機能します。ボットは絵文字の過不足の判定を絵文字の 名前 で行うため、名前さえ合っていれば任意の絵文字に置き換えも可能です。

絵文字の不足は、Nitro でないアカウントであれば、次の文字列を任意のテキストチャットで投稿するとよくわかります。絵文字にならずに文字のままになったものが不足分です。

:aubanana::aublack::aublue::aubrown::aucoral::aucyan::augray::augreen::aulime::aumaroon::auorange::aupink::aupurple::aured::aurose::autan::auwhite::auyellow:
:aubananadead::aublackdead::aubluedead::aubrowndead::aucoraldead::aucyandead::augraydead::augreendead::aulimedead::aumaroondead::auorangedead::aupinkdead::aupurpledead::aureddead::aurosedead::autandead::auwhitedead::auyellowdead:

絵文字のスロットを節約したい

EMOJI_GUILD_ID の話です。

前述の通り、ボットは起動時に不足している絵文字を追加する動きをします。このとき、詳しいロジックは割愛しますが、デフォルトのままでは、自身が複数のサーバに参加している場合、絵文字の不足を確認するサーバは 実質ランダム で選ばれます。

つまり、たとえ サーバ A にすべての絵文字がすでに揃っていても、過不足の確認にサーバ B が選出されれば(そしてサーバ B に絵文字がなければ)サーバ B に絵文字の追加処理が走る 可能性があるし、いちどボットを停止して再度起動すれば今度は サーバ C に絵文字が追加される可能性 もあるわけです。最終的に、起動停止を繰り返すと、全サーバに全絵文字が追加された状態に収束 します。

これが、特に何も設定しない場合のデフォルトの動きです。空きスロットが潤沢であればこれでもよいのですが、各サーバで 36 のスロットを消費するのは少し勿体ない部分です。

一方で、Discord は External Emojis と呼ばれる、あるサーバの絵文字を別のサーバで使える機能 を持っています。一般ユーザ(人間)が使うには Nitro が必要ですが、ボットアカウントからは無償 で使えるため、AutoMuteUs もこれを使えるようにデザインされています。先の例でいえば、サーバ A の絵文字だけを常に使う ように固定し、サーバ B と C には絵文字を不要にできる ということです。

この設定は、設定ファイル(.envconfig.txt)の EMOJI_GUILD_ID に、先の例でいう サーバ A に相当するサーバの ID を指定すると機能します。

なお、ややこしいことに、EMOJI_GUILD_ID が指定されていて、かつその指定したサーバに絵文字が 不足している 場合、ボットの起動時に ほかのサーバに絵文字が追加される 動きをするため、EMOJI_GUILD_ID は目的のサーバに絵文字が全部そろっている状態を作ってから設定するほうが無難です。このため、手順としては以下がお勧めです。

  • 絵文字をボット経由で追加したい場合
    1. ボットを停止する
    2. EMOJI_GUILD_ID に指定するサーバ 以外 のすべてのサーバから、ボットをキックする
    3. ボットを起動し、不足している絵文字をすべて追加させる
    4. ボットを停止する
    5. 元通りボットを全サーバに参加させる
    6. EMOJI_GUILD_ID の設定を設定ファイルに追加して、ボットを起動する
  • 絵文字を手で追加したい場合
    1. EMOJI_GUILD_ID に指定するサーバに、足りていない絵文字をすべて追加する(画像は リポジトリassets/emojis の PNG ファイル)
    2. ボットを停止する
    3. EMOJI_GUILD_ID の設定を設定ファイルに追加して、ボットを起動する

新しい絵文字に入れ替えたい

Docker 版の 6.15.2(後述の WIndows 版では 2.4.3-15.1)から、絵文字が刷新されました。

変更前がコレで、

変更後がこれです。

が、単に利用するコンテナイメージ(Docker 版)や EXE ファイル(Windows 版)を差し替えるだけでは、自動では絵文字は更新されません。これは、ボット起動時のサーバ上の絵文字の有無の判定が、絵文字の 名前 を基に行われるためで、すなわち、これまでの古い絵文字がサーバに残っている限り、それが継続して使われます。

ボットを単一のサーバでのみ利用している場合は、絵文字は次の手順で新しくできます。

  1. サーバの Server SettingsEmoji から絵文字をいちどすべて削除する
  2. ボットを再起動する

一連の操作中、Discord の絵文字の操作回数制限に引っかかって、高い確率で一時的に絵文字の削除や追加ができない状態になりますが、しばらく(典型的には 30 分以上)時間をあければ再度操作できるようになります。

ボットを複数のサーバで共用している場合も基本的な考え方は同じですが、諸々考慮事項があり、環境によっては上記手順では意図しない状態になる可能性があります。できるだけ前述の 新色の絵文字が表示されない絵文字のスロットを節約したい も併せて参照し、仕様を把握したうえで状態の遷移に留意しつつ作業するとよいでしょう。

例えば、EMOJI_GUILD_ID を設定済みの環境であれば、絵文字はボットには追加させず、上記 1 と 2 の間で手動で追加(リポジトリ を ZIP でダウンロードして assets/emojis の PNG ファイル群を絵文字としてアップロード)してしまうのが個人的にはおすすめです。

旧 Windows 版(2.4.3)で 15 人ロビーや新色を使いたい

Docker を使わずにセルフホストできる手段として、これまでは各所で旧バージョンである 2.4.3 が紹介されていました。しかしながら、今後 2.4.3 が公式に更新されて新色に対応する予定はおそらくない ため、次のいずれかの対応が必要です。

  • セルフホストをやめて、公式サービスを利用 する
  • Windows 版ではなく、公式の Docker 版を利用 したセルフホストに変更する
  • 有志が作成した非公式版 を利用する

第三案である 有志が作成した非公式版 は、現状では以下が選択肢です。

全部初期化してやり直したい

内部で利用しているデータベース(PostgreSQL、Redis)のデータが永続ボリューム上にあるため、AutoMuteUs の初期化にはこのボリュームを含めたコンテナの削除が必要です。

Docker Compose の通常の停止コマンド docker-compose down では永続ボリュームは削除されませんが、これに --volumes(または -v)を追加すると、永続ボリュームごと削除できます。

docker-compose down --volumes

いろいろいじくってよくわからなくなったときや、統計も設定も含め何もかも消して初期化したいときなどには便利です。

データをバックアップしたい・リストアしたい・移行したい

次の四つのバックアップとリストアを考えれば要件は満足できます。

  • .env
  • .docker-compose.yml(カスタマイズしている場合)
  • PostgreSQL のダンプ
  • Redis のダンプ

具体的なバックアップとリストアの手順は、ぼくのリポジトリでガイドを載せています。

環境間の移行などでも応用可能です。

負荷を監視したい

AutoMuteUs は組み込みで Prometheus のコレクタ(!)を持っているので、それど Galactus のエンドポイントが返す JSON などを使うと、こういうモニタリング画面が作れます。

実装サンプルはぼくのリポジトリでガイドしています。

Raspberry Pi で動かしたい

32 ビットの Raspberry Pi OS(旧 Raspbian)で動かそうとすると、PostgreSQL と Redis がうまく動かないことがあります。Alpine 由来のトラブルで、一部のパッケージ更新で対応できます。

こちらもリポジトリでガイドしています。

Ubuntu の場合はとくに気にしないでも動くはずです。

正規の証明書で HTTPS 化したい

以前のエントリで書いています。

GitHub から資材をダウンロードしたい

セルフホスト向けの手順で、GitHub から Docker Compose 用のファイルをダウンロードするために GitHub のアカウント作成や SSH の鍵登録を紹介している例があるようですが、過剰に難しくなってしまいもったいないので、補足です。

  • git コマンドを使わずに対応する
    • リポジトリのページ から Download ZIP で ZIP ファイルをダウンロードして、解凍すると取り出せます
  • git コマンドを使って対応する
    • git コマンドが使えるようにインストールして、以下のコマンドを実行するだけで大丈夫です
      • git clone https://github.com/denverquane/automuteus.git
    • GitHub のアカウントや SSH の鍵登録は不要です

@kurokobo

くろいです。ギターアンサンブルやら音響やらがフィールドの IT やさんなアルトギター弾き。たまこう 48 期ぎたさん、SFC '07 おんぞう、新日本ギターアンサンブル、Rubinetto。今は野良気味。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です